一个“好的”测试用例必须具备的特征有:
一、整体完备性
一个“好”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全涵盖测试需求
二、等价类划分的准确性
对于每一个等价类都能够保证只要其中一个输入测试通过,其他输入也一定测试通过
三、等价类集合的完备性
需要保证所有可能的边界值和边界条件都已经正确识别
只有真正理解了原始业务需求之后,才有可能从业务需求的角度去设计针对性明确、从终端用户使用场景考虑的端到端(End-2-End)的测试用例集。这个阶段的测试用例设计,主要目的是验证各个业务需求是否被满足,主要采用基于黑盒的测试设计方法。
想要深入理解被测软件需求的最好方法是,测试工程师在需求分析和设计阶段就开始介入(测试左移),因为这个阶段是理解和掌握软件的原始业务需求的最好时机。
在具体的用例设计时,首先需要搞清楚每一个业务需求所对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,最后再针对每个测试需求点设计测试用例。
-------还有以下几点需要知道-------
一、只有深入理解被测试软件的架构,你才能设计出“有的放矢”的测试用例集,去发现系统边界以及系统集成上的潜在缺陷。作为测试工程师,切忌不能把整个被测系统看作一个大黑盒,你必须对内部的架构有清楚的认识,比如数据库连接方式、数据库的读写分离、消息中间件 Kafka 的配置、缓存系统的层级分布、第三方系统的集成等等。
二、必须深入理解被测软件的设计与实现细节,深入理解软件内部的处理逻辑。单单根据测试需求点设计的用例,只能覆盖“表面”的一层,往往会覆盖不到内部的处理流程、分支处理,而没有覆盖到的部分就很可能出现缺陷遗漏。在具体实践中,你可以通过代码覆盖率指标找出可能的测试遗漏点。
三、切忌不要以开发代码的实现为依据设计测试用例。因为开发代码实现的错误会导致测试用例也出错,所以你应该根据原始需求设计测试用例。需要引入需求覆盖率和代码覆盖率来衡量测试执行的完备性,并以此为依据来找出遗漏的测试点。
(ps:以上学习笔记,整理自茹炳晟“软件测试52讲”)
网友评论