黑盒测试:通过软件的外部表现来发现错误
黑盒测试方法主要有:
1、等价类划分
把大量的输入数据划分成一系列的等价类,并注意区分有效等价类和无效等价类;
2、边界值分析
使用最小值、略低于最小值、正常值、略高于最大值和最大值作为输入变量值;
3、错误推测
根据直觉和经验,列举出程序中可能出现的错误,依据这些错误来选择测试用例;
4、因果图
描述对于多种条件的组合相应产生多个动作的形式来设计测试用例。
白盒测试:分析程序内部的逻辑与程序执行路线来设计测试用例
白盒测试的主要方法有:
1、程序结构分析
了解程序的结构:控制流分析(控制流图代替程序流图)、数据流分析;
2、逻辑覆盖
有选择地执行程序中某些代表性的通路;
覆盖分类:语句、判定、条件、判定/条件、条件组合、路径
覆盖准则:错误敏感测试用例分析(ESTCA)、线性代码序列与跳转覆盖(LCSAJ)
3、程序插装
向被测程序中插入操作(语句)来达到测试的目的;
4、符号测试
允许程序的输入不仅是数值数据,也可以是符号值,很容易地确定所给的一组测试用例是否覆盖了程序的各条路径;
5、程序变异
把目标集中在对软件危害最大的可能错误上。
黑盒测试与白盒测试比较
黑盒测试 | 白盒测试 | |
测试依据 | 根据软件规格说明设计测试用例 | 根据程序内部结构测试 |
优点 | 1.效率比白盒高 2.测试员不需要了解实现细节,包括特定的编程语言 3.测试人员与编码人员彼此独立 4.从用户视角测试,很容易理解和接受 | 1能仔细考虑软件的实现 2.可以检测代码中的每条分支和路径 3.对代码的测试比较彻底 4.揭示隐藏的错误 |
缺点 | 1.只有一小部分输入被测试到 2.测试用例难设计 3.很多路径没被测到 4.不能直接针对特定的程序段测试 | 1.成本高 2.不验证规格说明的正确性 3.无法检测代码中遗漏的路径和数据敏感性错误 |