软件测试基础知识03—软件测试方法[中]
白盒测试、黑盒测试、灰盒测试(测试技术和设计测试用例方法的角度划分)
白盒测试
别称:结构测试、逻辑驱动测试、程序测试、覆盖率测试、程序员测试
定义:基于软件程序的内部逻辑结构,忽略软件程序外部特性进行的测试。
检查内部结构操作是否按规定执行,程序中的每条通路是否都能按预定要求正确工作,软件各个部分功能是否得到充分利用。
测试方法:
语句覆盖:设计若干个测试用例,使被测程序的每个语句都至少被执行一次。
判断覆盖:设计若干个测试用例,使被测程序的每个判定的真、假分支都至少被执行一次。
条件覆盖:当判定含有多个条件时,可以要求设计若干个测试用例,使被测程序的每个条件的真、假分支都至少被执行一次。
判断/条件覆盖、条件组合覆盖、路径覆盖。
黑盒测试
别称:功能测试、数据驱动测试、规格说明测试、用户测试
定义:基于产品的功能测试,忽略程序的内部结构,关注外部特性的测试。
测试员仅关注程序输入和输出之间的关系或程序功能的情况下,依靠能够反映这一关系和程序功能需求规格的说明书,来
确定测试用例和推断测试结果的正确性来检查软件各个功能是否实现,并检查其中的功能错误。
基本思路:
1..通过测试:验证软件的基本功能是否都已正确实现。
2.失败测试:软件基本功能正确运行之后,采取各种手段通过搞垮软件来找出缺陷。(纯粹为了破坏软件而设计和执行的测试)
黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试。
主要是为了发现以下错误:
1.是否有不正确的功能,是否有遗漏的功能;
2.在接口上,是否能够正确地接收输入数据并产生正确的输出结果;
3.是否有数据结构错误或外部信息访问错误;
4.性能上是否能够满足要求;
5.是否有程序初始化和终止方面的错误。
主要技术方法:
等价类分析法、边界值分析法、因果图法、决策表法、正交试验法、错误推测法、场景法
优点:
1.适用各个阶段测试
2.从软件功能角度进行测试
3.容易入手生成数据
缺点:
1.某些代码得不到测试
2.若规格说明有误,测试无法发现
3.不易进行充分性测试
白盒测试和黑盒测试的比较:
白盒测试:
——只根据程序的内部结构进行测试。
——测试用例的设计要保证测试时程序的所有语句至少执行一次,而且要检查所有的逻辑条件。
——如果程序的结构本身有问题,比如说程序逻辑有错误或者有遗漏,那也是无法发现的。
黑盒测试:
——以用户的观点,从输入数据与输出数据的对应关系,即根据程序外部特性进行测试,而不考虑内部结构及工作情况。
——黑盒测试技术注重于软件的信息域(范围),通过划分程序的输入和输出域来确定测试用例。
——若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。

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