第十章

软件测试

       软件测试是软件质量保证的一项关键活动。

       通过对需求规格说明、软件设计说明和程序代码等进行复审,以保证在软件产品交付前,尽可能发现软件中潜伏的问题。

1.验证和确认

  (1)软件验证:是为了证明软件在生命周期的各个时期的逻辑协调性、完整性、正确性。

(2)软件确认:目的:保证软件产品能符合其描述要求。

2.软件测试基础;

         (1)基本原则:

               1.尽早的和不断地进行软件测试;

               2.程序员避免检查自己的程序;

               3.在设计测试用例时,应当包括合理的以及不合理的输入条件;

               4.测试用例应由测试输入数据和与之对应的预期结果组成;

               5.充分注意测试中的群集现象;

               6.严格执行测试计划,排除测试的随意性;

               7.应当对每一个测试结果做全面检查;

               8.妥善保存一切测试文档,为软件维护提供方便。

(2)测试文档:描述要进行的软件测试以及测试结果。

        包括:1.测试计划2.测试规范3.测试用例4.缺陷报告。

(3)软件测试信息流:

1.软件配置:需求规格说明书、软件设计说明书、源程序等;

2.测试配置:测试方案、测试用例、测试驱动程序等;

3.测试工具:计算机辅助测试的有关工具。

3.软件测试策略:

      (1)单元测试:

           1.模块接口测试:

                是单元测试的基础,检查数据能否正确地通过模块。

           2.局部数据结构测试

             保证临时存储在模块内的数据在程序执行过程中完整、正确。

           3.重要执行路径测试

             在模块中应对每一条独立执行的路径进行测试;

             单元测试的基本任务:保证模块中每条语句至少执行一次。

           4.错误处理测试:出错处理通路同样需要认真测试。

           5.边界条件测试:

                 采用边界值分析技术,针对边界值及其左右设计测试用例,有可能发现新的错误。

           6.单元测试方法

              驱动模块作用:模拟被测模块的上级,调用模块;

              桩模块作用:代替被测模块调用的模块,用以返回被测模块所需的信息。

(2)集成测试:1.自顶向下2.自底向上。

(3)确认测试:1.一系列黑盒测试2.配置复审。

(4)系统测试:

         1.前期准备(软件工程师的工作):

          (1)为测试软件系统的输入信息,设计出错处理通路。

          (2)设计测试用例,模拟错误数据和软件界面可能发生的错误,记录测,试结果,为系统测试提供经验和帮助。

          (3)参与系统测试的规划和设计,保证软件测试的合理性。

         2.测试任务

           (1)恢复测试:测试其容错能力。

           (2)安全测试:对非法访问的防范能力。

           (3)强度测试:对异常情况的抵抗能力。

           (4)想能测试:需要软硬件的配套支持。

(5)软件调试:1.简单的调试2.归纳法3.演绎法4.回溯法

4.软件测试方法:

      (1)静态测试:人工分析检测和计算机辅助静态分析;

(2)动态测试:通过运行程序发现错误;

(3)黑盒测试:也称功能测试或数据驱动测试;

         在已知产品应具有的功能的情况下,通过测试来检测每个功能是否都能正常使用。

          方法:等价类划分、边界值分析、因—果图、错误推测。

          用于软件确认。

(4)白盒测试:也称结果测试或逻辑驱动测试

       已知产品内部工作过程,通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序中的每条通路是否都能按预定要求正确工作。

5.面向对象测试类型:

  1.模型测试2.类测试3.交互测试4.系统(子系统)测试5.验收测试6.发布测试

图形化用户界面的应用程序大部分是以事件驱动的,GUI测试侧重以按钮为基本操作的单元测试。

6.软件测试工具

      (1)功能测试工具(2)性能测试工具(3)缺陷管理工具(4)测试管理工具

     1.JUNIT   支持白盒测试

             使用步骤:

                  (1)创建,从junit.framework.TestCase派生需要的test case 类。

(2)编写测试方法,提供类似如下函数签名的测试方法:public void testXXX();

(3)编译;

(4)运行,启动junit test runner 运行该类。

Junit提供了两个基本的test runner:

  图形界面:java.junit.swingui.TestRunner  XXXXX;

  字符界面:java.junit.textui.TestRunner  XXXXX;

2.LoadRunner

     一种预测系统行为和性能的工业标准级负载测试工具。

     作用:能最大限度地缩短测试时间,优化性能以及加速应用系统的发布周期。

原文地址:https://www.cnblogs.com/yuntianblog/p/4289881.html