您的位置:首页 > 其它

软件测试方法与分类

2016-10-06 21:26 239 查看
    我们知道,开发软件在不同的阶段,使用的测试方法以及测试的目的各不相同,这也是想要在测试领域发展所必须要知道的。下面我们也是像上一篇博客一样,先大概了解一下测试的方法与分类,然后对每个阶段的测试了解一下其目的与侧重点等等。

    对于测试方法的选取来说,大概有等价类划分法、边界值法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法。按照详细分类来说,从是否关心软件内部结构和具体实现的角度划分,分为黑盒测试,白盒测试,灰盒测试;从是否执行程序的角度,分为静态测试,动态测试;从软件开发的过程按阶段划分,分为单元测试,集成测试,确认测试,系统测试,验收测试,回归测试,a测试,b测试。下面我们具体来学习一下。

一、等价类

1、定义:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。

等价类一般划分为有效等价类与无效等价类。具体就不多说了,具体可以参考百度百科。

二、边界值

1、定义:顾名思义,边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。   

2、与等价划分的区别
1) 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2) 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

   
从是否关心软件内部结构和具体实现的角度划分,分为黑盒测试,白盒测试,灰盒测试

一、黑盒测试

1、定义:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

2、作用:黑盒测试注重程序的功能,主要视图发现以下错误

1)功能不正确或遗漏;
2)界面错误;
3)输入和输出错误;
4)数据库访问错误;
5)初始化和终止错误等。

3、优点:

1)对于较大的代码单元来说,黑盒测试比白盒测试效率较高。

2)测试人员不需要了解细节,包括特定的编程语言。

3)测试人员和开发人员是彼此独立的。

4)从用户的角度测试,很容易被理解和接受。

5)有助于暴露与任务规格不一致或者有歧义的地方。

6)测试用例可以在需求规格完成之后马上执行。

4、缺点:

1)测试的只有一小部分,不可能测试全部输入。

2)没有清洁和简明的需求规格说明书,测试用例很难设计。

3)如果测试人员,不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。

4)很多测试路径没有测试到。

5)不能直接对特定程序段进行测试,改程序段可能隐藏更多错误。

6)大部分和研究相关的测试都是直接针对白盒测试的。

二、白盒测试  

1、定义:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒测试的测试方法中运用最为广泛的是基本路径测试法。基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。

2、作用目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

3、要求:

1)保证一个模块中的所有独立路径至少被使用一次。
2)对所有逻辑值均需测试 true 和 false。
3)在上下边界及可操作范围内运行所有循环。
4)检查内部数据结构以确保其有效性。

4、优点:

1)迫使测试人员去仔细思考软件的实现

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

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

4)对代码的测试比较彻底

5)可以寻找最优化

5、缺点:

1)花费比较大

2)无法检查遗漏的路径

3)不能验证规格的正确性

三、灰盒测试

1、定义:灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

2、目的:

1)确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。
2)提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。

3)保证软件开发过程是高质量的。

从是否执行程序的角度,分为静态测试,动态测试。

一、静态测试

1、定义:静态测试是指无须执行被测代码,而是借助专用的软件测试工具评审软件文档或程序,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

2、目的:通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

3、优点:其在代码编译和动态测试之前进行,发现缺陷早、降低返工成本、覆盖重点和发现缺陷的概率高。

4、缺点:耗时长、不能测试依赖和技术能力要求高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息