软考 系统架构设计师系列知识点 —— 黑盒测试与白盒测试(1)
本文内容参考:
黑盒测试和白盒测试详解-CSDN博客
软件测试中的各种覆盖(Coverage)详解-CSDN博客
特此致谢!
零、概述
黑盒测试又名为功能测试,主要目的是发现软件设计的需求或者是软件设计规格说明书中的错误缺陷。软件的开发具有特定性,一般都是为了某种具体特定功能开发的,软件功能的描述依赖于在软件需求阶段的需求规格说明书的分析,软件在设计过程中被分成了一个或者是多个功能,保证这些功能能够正常运行的就是软件测试,从而进一步满足用户的需求与需要。黑盒测试与白盒测试相反,软件设计程序被看做一个打不开的盒子,盒子里的程序代码测试人员不能看到,只能看到软件或者是某些模块的简单功能描述,这种测试方法主要是验证软件或者是功能的实现度。
一、黑盒测试
1. 基本介绍
黑盒测试也称功能测试或数据驱动测试,它是已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试过程中,将程序看成不能打开的黑盒子,在不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。
黑盒测试一般遵循以下原则:
- 根据相应的、正确的需求设计测试用例。配置项测试依据需求规格说明,系统测试依据软件研制任务书,验收测试依据软件研制任务书或合同/协议。
- 正确地定义等价类。等价类方法是黑盒测试的主要方法,设计测试用例时应根据输入的数据范围,正确地划分有效等价类和无效等价类。
- 覆盖所有的功能需求。 根据测试风险来确定测试重点和优先级,确保软件的常用功能和重要功能得到充分的测试。
- 加强接口测试。
- 站在用户角度进行测试。尽量模拟用户的使用环境,那些对用户有价值的功能要优先、充分地测试。
2. 优缺点
(1)优点
- 对于较大的代码单元来说,黑盒测试比白盒测试效率较高。
- 测试人员不需要了解细节,包括特定的编程语言。
- 测试人员和开发人员彼此独立。
- 从用户的角度测试,很容易理解和接受。
(2)缺点
- 测试的只有一小部分,不可能测试全部输入。
- 没有简明的需求规格说明书,测试用例很难设计。
- 不能直接对程序段进行测试,该程序段可能隐藏更多错误。
3. 方法
(1)等价类划分
所谓等价类,是指输入域的某个互不相交的子集,所有等价类的并集便是整个输入域。目的在于测试用例的无冗余性。
该方法是一种重要的、常用的黑盒测试用例设计方法。等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的。其主要分为:
- 有效等价类
是有意义的、合理的输入数据构成的集合。可检查程序是否实现了规格说明中所规定的功能和性能。
- 无效等价类
是无意义的、不合理的输入数据构成的集合。检查软件功能和性能的实现是否有不符合规格说明要求的地方。
(2)边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。目的是针对各种边界情况设计测试用例,可以查出更多的错误。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
边界值分析与等价类划分的区别:
- 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
- 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
边界值分析设计方法:
1)确定边界情况(输入或输出等价类的边界);
2)选取正好等于、刚刚大于或刚刚小于边界值作为测试数据。
(3)判定表方法
判定表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。利用判定表能够设计出完整的测试用例集合。
在实际应用中,许多输入是由多个因素构成,而不是单一因素,这时就需要多因素组合分析。对于多因素,有时可以直接对输入条件进行组合设计,不需要进行因果分析,即直接采用判定表方法。一个判定表由“条件和活动”两部分组成,也就是列出了一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而测试活动需要考虑每一个选择。
判定表方法步骤:
1)列出所有的条件桩和动作桩;
2)填入条件项;
3)填入动作项,制定初始判定表;
4)简化、合并相似规则或者相同动作。
(4)因果图法
多种输入条件的组合,产生多种结果设计测试用例。
因果图法方法步骤:
1)分析软件规格说明文档描述的哪些是原因(输入条件)、哪些是结果(输出条件),给每个原因和结果赋予一个标识符;
2)找出原因与结果、原因与原因之间的对应关系,划出因果图;
3)在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件;
4)根据因果图创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来;
5)把判定表的每一列作为依据设计测试用例。
(5)场景法
用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。
根据不同的场景设计测试用例,例如:用户操作ATM机,就有查询、取款等操作。
(6)正交实验法
正交测试法使用已经构造好了的正交表格来安排试验并进行数据分析。
正交表的两大优越性,即“均匀分散,整齐可比”。
(7)功能图法
功能图法就是为了解决动态说明问题的一种测试用例的设计方法。
每个程序的功能通常由静态说明和动态说明组成:
- 静态说明描述了输入条件和输出条件之间的对应关系;
- 动态说明描述了输入数据的次序或者转移的次序。
(8)错误推测法
测试者根据经验、知识和直觉来发现软件的错误,来推测程序中可能存在的各种错误,从而有针对性地进行测试。
此种方法没有依据,单纯依靠测试者自身实力。优点:快速切入体会到程序易用与否;缺点:难以准确知道测试覆盖率。
关于白盒测试的详细介绍请看下回。