【软件工程】软件测试

来源:互联网 发布:蓝宝石 知乎 编辑:程序博客网 时间:2024/06/15 19:36

【前言】

        讲到这里,一个软件的设计之路基本上算是走完一半了——真正考验人意志的时候到了。为什么这么评价这个阶段呢? 下面我来分享下我对软件测试的看法。

【正文】

        先来看下软件测试在整个软件工程中所在的位置。



  在程序编制之后进行测试,单元测试——集成测试——确认测试。每一个测试阶段又对应之前软工中的一个阶段。

【导图概览】

        接下来我们来一起看一下软件测试这部分的导图:


 

【目的】

      为什么在最开始的时候说,最考验人的阶段来了呢? 因为这个的阶段的目的在于——挑自己的错。变着办法的找出编程阶段自己存在的问题。当然多数情况下我们都无法发现自己的问题,所以最好编程人员自己不要同时兼职测试人员。

【过程】

      软件测试是怎么样一个流程呢? 大概是这个样子的。


代码测试: 

       检查代码正确性,通常由开发人员自己完成

单元测试:

  就是单独功能模块的测试, 但是由于模块间通常存在着调用关系,所以做单元测试的时候除了被测试模块还需要用到另外两种模块——桩模块和驱动模块。通常由测试人员完成。

 

桩模块:

       对测试模块所调用模块的模拟。例如:整个系统是  张三 命令 王五 打李四, 王五接受到命令后,开始打李四。  现在我只测试王五这部分能不能成功,但是李四不在怎么证明王五能打李四呢 ? 所以我搞了个木桩让王五打一下  (这个木桩就是桩模块)

 

驱动模块:

      调用测试模块的模块的模拟。 还是上边那个例子:张三不在,我怎么知道王五能接收到命令呢? 所以,我模仿张三来对王五发号命令。 我就是驱动模块。

集成测试:

      就是把所有的模块集成在一起进行测试,检验是否完成了设计中规定的预期功能。通常由测试人员完成。

确认测试:

       就是将新系统与需求分析说明书对照,检验是否与需求一致(软件配置与软件有效性)。 通常由用户与系统开发人员合作完成, 由用户来检验需求。

系统测试:

       对整个系统软硬件在实际数据环境下进行测试,确认新系统在实际运行环境下达到预期效果。 通常由用户进行检验,记录问题。(阿尔法测试(单用户开发环境),贝塔测试(多用户实际环境))

【用例设计】

1.设计方法:

 黑盒设计(功能测试,接口测试):

 

 

  

 

 

 

(等边错因)

       等价类分析方法 :以一组数据代替更多数据以减少数据量, 有效(正常情况下的数据)无效(不合理情况下的)


       边界值分析方法


       错误推测法


       因果推测法(判定表)


黑盒测试常用方法——穷举法

        白盒设计(结构测试)

        语句覆盖 

        判定   判定节点(嵌套 N+1 连锁 2^n

        条件

        条件组合

        路径

2.设计内容:

   输入数据 预期结果 对照

   合理输入与不合理输入

【程序调试】

回溯法 

错误征兆归纳法  3W1H  what when where How

【总结】

就是为了发现未发现的错误,纵向从用户和开发者角度来对分别对程序进行测试。横向分支撑软件,系统软件,硬件,网络环境等方面进行测试。

 

0 0
原创粉丝点击