黑盒测试在百度百科中这样描述【该词条通过“科普中国”科学百科词条编写与应用工作项目审核 】。
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
根据以上描述,黑盒测试意味着产品内部知识在测试中不起重要的作用。在实际测试中,大部分测试人员都是基于黑盒进行测试的。黑盒测试的优势在于测试人员可能与程序员的思考方式不同,因此有可能预测出程序员所遗漏的风险。
黑盒测试强调基于用户和用户场景的相关的测试,这一点并不是被所有人理解,有很多人以为黑盒测试就是“点点点”,甚至把黑盒测试描述为基于无知的测试,因为测试人员始终都不了解产品的内部代码。这反映出对测试团队角色的根本误解。ish如果在测试人员主要关注的是源代码,以及能够从源代码导出的测试,则测试人员所做的工作也许就是程序员已经做过的,并且测试人员关于这些代码的知识要少于程序员。那是不是说测试人员不需要了解这些知识呢?当然不是,在实际过程中,鼓励测试人员去了解产品的工作原理,甚至更多产品相关的信息。
测试专家James Bach提出的启发式测试策略模型(Heuristic Test Strategy Model,简称HTSM)是一组帮助测试设计的指南(guideline)。
HTSM的概要描述,测试人员利用质量标准(Quality Criteria)、项目环境(Project Environment)、产品元素(Product Element),指导测试技术(Test Techniques)的选择与应用,并产生观察到的质量(Perceived Quality)。如下图所示。

HTSM是层次结构,其顶层元素(质量标准、项目环境、产品元素、测试技术)可以分解为次层元素,而次层元素可进一步分解为第三层元素。本文只概要介绍次层元素,更多的细节请参考James Bach的文档。
测试技术:生成测试的策略。有效地选择和实施测试技术,需要综合分析项目环境、产品元素和质量标准。
功能测试(Function Testing)
域测试(Domain Testing)
压力测试(Stress Testing)
流测试(Flow Testing)
情景测试(Scenario Testing)
声明测试(Claims Testing)
用户测试(User Testing)
风险测试(Risk Testing)
自动测试(Automatic Testing)
项目环境:资源、约束和其他影响测试的项目元素。测试总是受到项目环境的约束。在某个团队运转良好的策略不一定适合另一个相似的团队,以往富有成效的方法未必适应当前的项目。有经验的测试人员会根据当前语境(Context),在约束条件下充分运用资源,以高效地测试。
用户(Customers):理解产品的用户
信息(Information):发现测试所需的信息
开发者关系(Developer Relations):与开发者协作加速开发
测试团队(Test Team):利用团队的力量支持测试
设备与工具(Equipment & Tools):可利用的硬件、软件、文档等
进度(Schedule):项目实施的流程
测试条目(Test Items):测试范围和重点
交付品(Deliverables):测试的产出
产品元素:需要测试的对象
结构(Structure):产品的物理(physical)元素(如代码、接口、配置文件、可执行文件等)
功能(Functions):产品的功能
数据(Data):产品所操作的数据
平台(Platform):产品所依赖的外部元素
操作(Operations):产品将被如何使用
时序(Time):影响产品的时间因素
质量标准之操作性标准(Operational Criteria):面向用户和运营团队
能力(Capability)
可靠性(Reliability)
可用性(Usability)
安全性(Security)
可伸缩性(Scalability)
性能(Performance)
可安装性(Installability)
兼容性(Compatibility)
质量标准之开发标准(Development Criteria):面向开发团队
可支持性(Supportability)
可测试性(Testability)
可维护性(Maintainability)
可移植性(Portability)
本地化(Localizability)
由以上介绍可知,HTSM由一组指导性词语(guide word)组成,它们构成一个层次结构,让测试人员从高层抽象到底层细节对产品和测试进行思考。这些指导性词汇是测试的指南,其作用不是教导如何具体地测试,而是启发测试人员的思维,发掘测试对象和测试策略。
网友评论