软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

按照测试手段来分类:黑盒测试、白盒测试

                                  静态测试、动态测试

                                  手工测试、自动化测试

黑盒测试:对内部不可见

软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

优点:1、容易实施,不需要关注内部的实现。

          2、更贴近用户的使用角度。

缺点:1、测试覆盖率较低,一般只能覆盖到代码量的不到40%。

          2、针对黑盒测试的自动化测试,复用率较低,维护成本较高。

黑盒测试主要测试什么?

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

一般系统测试使用较多。

黑盒测试的主要设计方法

软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

等价类划分法:针对程序有很多的输入条件,等价类划分就是把所有的输入当中等价的归成一类,这样最后形成若干典型的代表性的输入,通过这些典型的数据来进行测试用例的设计。

边界值分析法:是一种特殊的等价类划分,关注的是各种各样的边界条件。

错误推测法:是基于经验、或者直觉来判断程序中可能出现错误的地方,从而针对性的设计用例的方法。

因果图法:指拿到程序的需求规格说明书,针对每种输入和输出在因果图里,会把输入和输出看做是原因和结果,对输入和输出赋以特殊的标识符,然后将这些情况形成一个叫因果图,最终根据规格的语义说明形成一个判定表,根据判定表编写测试用例。

正交试验分析法:是通过正交性,从一组数据当中筛选出典型的代表性的数据的设计方法,主要用于筛选输入数据,然后再来设计测试用例的输入输出。

状态迁移图法:通过梳理软件功能点里面的状态迁移关系来设计测试用例。

流程分析法:通过梳理程序的逻辑执行的路径来设计测试用例。

白盒测试:机构化测试或透明化测试,内部结构对测试人员是透明的。

软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

主要的逻辑单位

软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

优点:1、迫使测试人员去仔细思考软件的实现,理解原理。

          2、可以检测代码中的每条分支和路径。

          3、揭示隐藏在代码中的错误。

          4、对代码的测试比较彻底。

缺点:1、昂贵。(较高覆盖,工作量大)

          2、无法检测代码中遗漏的路径和数据敏感性错误。

          3、不能直接验证需求的正确性。

白盒测试的主要测试方法:

软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

代码检测法:主要包括多面检查、代码审查和走查,主要检查代码和设计的一致性。

静态结构分析法:测试者通过采用测试工具来分析源代码的系统结构、数据结构、内部的控制逻辑,通过内部结构的分析来设计测试用例。

静态质量度量法:根据标准的质量模型作为基准,然后来构造质量的度量模型,用来评估软件的各个方面的要素。

逻辑覆盖法:语句覆盖、条件覆盖、条件组合覆盖、分支覆盖||判定覆盖、路径覆盖、条件&判定组合覆盖

基本路径测试法:在程序控制流图的基础上,通过分析控制构造的圈复杂度,导出基本可执行的路径的集合,进而设计测试用例的方法。

灰盒测试:介于黑、白测试之间的,关注输出对于输入的正确性,同时也关注内部表现

更多的在系统组件来评价软件设计符合要求的情况

静态测试:是指无须执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序不足之处,减少错误出现的概率。

软件测试的分类--按测试手段分类:黑盒测试、白盒测试 、静态测试、动态测试、手工测试、自动化测试

 

动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。

手工测试:由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。

                 众包测试、探索式测试

自动化测试:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。

                     单元测试、接口测试、性能测试

手工测试 VS 自动化测试

 

                               手工测试

                       自动化测试

·易发现缺陷

·容易实施

·创造性、灵活性

·覆盖量化难

·重复测试效率低

·不一致性、可靠性低

·人力资源依赖

·高效率、速度快

·高复用性

·覆盖率容易度量

·准确、可靠

·不知疲劳

·机械、发现缺陷率低

·一次性投入较大

按测试手段来分类:

黑盒测试:把测试的对象看成一个黑盒,不了解内部的逻辑和结构,从用户的角度来对软件进行测试

白盒测试:测试人员是完全的了解内部的结构和设计逻辑,通过逻辑的覆盖来保证测试的完健性

静态测试:不运行被测软件,通过静态的检查代码文档来进行测试

动态测试:运行被测软件,通过软件运行的表现来判断软件运行的功能是否正常

手工测试:由专门的测试人员根据测试用例来实施的测试

自动化测试:指借助第三方测试工具来自动化的运行检查的测试