软件测试基础(一)

1 1 软件测试的目的软件测试的最终目的是检验产品软件是否满足用户需求。一般包含以下内容:①验证软件是否满足开发合同、开发计划、需求规格说明和设计说明等规定的

1.1 软件测试的目的

  软件测试的最终目的是检验产品软件是否满足用户需求。一般包含以下内容:

    ①验证软件是否满足开发合同、开发计划、需求规格说明和设计说明等规定的软件质量要求

    ②由于难以消除软件中的所有错误,因此软件测试的目的就是发现更多的软件缺陷,消除他们,提高软件质量

    ③软件测试不仅仅是为了发现软件缺陷,还是对软件质量评估的过程。测试结果数据可以未软件产品质量测量和评估提供依据

    ④通过分析如阿健缺陷产生的原因,可以有针对性地进行软件过程改进

1.2 软件测试过程

  制定测试计划→测试设计→测试准备→测试执行→测试评估→整体项目测试总结

1.3 软件测试分类

  ①按测试执行阶段划分:单元测试、集成测试、系统测试、验收测试

  ②按测试技术划分:黑盒测试、白盒测试

  ③按测试状态划分:静态测试、动态测试

  ④按用户需求划分:功能测试、非功能测试

  ⑤其他:回归测试、冒烟测试、随机测试

1.4 软件测试的过程模型

  ① V模型

   

  V模型是软件开发瀑布模型的变形,是最基础的测试模型。V模型的测试策略包含低层和高层测试,低层测试是为了保证代码和设计的正确性,高层是为了保证系统满足用户需求。单元测试和集成测试主要验证软件是否满足设计要求,系统测试是为了验证系统功能和性能是否达到质量要求的指标,验收测试是确定最终的软件产品是否满足用户的需求。

  V模型的明显局限性:他只是将测试看作编码之后的一个阶段,主要针对程序寻找错误的活动,从而忽视了测试活动对需求分析和系统设计等前期开发活动的验证和确认功能。

  ② W模型

       

 

  W模型相对V模型增加了软件开发阶段中应同步进行的软件测试验证和确认活动。W模型由两个V模型组成,代表开发过程和测试过程,明确表明测试和开发之间的并行关系。W模型还强调测试的对象不仅仅是程序,还应当包括软件需求和软件设计。

  W模型优点:有利于尽早和群面地发现软件缺陷。

  W模型局限性:将需求、设计、编码等开发工作都看成串行活动,测试和开发也保持一种线性关系,前面的一个阶段完成后,才可以开始下一个阶段的工作。

        

    TODO    //H模型、X模型、前置测试模型  

 1.5 软件测试用例

  ①是为了某个特殊目标二编制的一组测试输入、执行条件,以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。

  ②设计原则:Ⅰ测试用例最小化原则

          例如有一个功能FUNC需要被测试,他还有3个子功能F1、F2、F3,以两种方法来设计测试用例:

            (1)使用一个覆盖3个子功能点的测试用例TEST_F1_F2_F3

            (2)使用3个单独的测试用例,分别覆盖三个子功能——Tset_F1、Tset_F2、Tset_F3

          对于规模较小的工程来说,方法1更适宜;但对于规模较大的或者质量要求更高的项目,方法2显得更为合适,因为它具有以下优点:

            A.测试用例的覆盖边界更清晰;B.测试结果对陈品缺陷的指向性更强;C.测试用例之间的耦合度最低,因此彼此间的干扰也最低。

        Ⅱ 经济性

          避免设计出测试效果相同的的多个重复性测试计划。

        Ⅲ 正确性

          数据的正确性和操作的正确性。

        Ⅳ 可判定性

          测试执行的结果的正确性是可以判定的,每一个测试用例都要有相应期望结果。

        Ⅴ 可再现性

          对同样的测试用例,系统执行的结果应当是相同的。