如何设计一个"好的"测试用例

如何理解一个“好的”测试用例?

“好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能够发现缺陷无关。

举例子:

被测软件 --- 鱼塘

软件缺陷 --- 鱼

测试用例集 --- 渔网

“好的”测试用例集就是一张能够覆盖整个鱼塘的大鱼网,只要鱼塘里有鱼,就能给捞上来。

如果渔网本身是完整合格的,那么捞不到鱼就证明鱼塘中没有鱼,而渔网的好坏与鱼塘是否有鱼无关。

 

“好的”测试用例必须具备哪些特征:

(1)整体完备性:一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求;

(2)等价类划分的准确性:对于每个等价类都能保证只要其中一个输入测试通过,其他输入页一定测试通过;

(3)等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别;

 

最常用的测试用例设计方法:

(1)等价类划分

(2)边界值分析

(3)错误推测法:基于对被测软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例方法。强调对被测软件的需求理解以及设计实现的细节把握。

(4)场景法:

  ① 根据规则说明,描述出程序的基本流以及各项备选流

  ② 根据基本流和备选流确定场景

  ③ 对每一个场景生成相应的测试用例,可以采用矩阵或决策表来确定和管理测试用例

  ④ 对生成的测试用例进行复审,去掉多余或等价的测试用例,然后确定实际测试数据

 

(5)判定表:

  ① 依据软件规格说明,确定规则个数

  ② 列出所有的条件桩和动作桩

  ③ 输入条件桩

  ④ 输入动作桩,指定判定表

  ⑤ 合并相似规则

 

 如何设计出 “好的” 测试用例:

举例:测试面向终端用户的 GUI 测试

核心测试点:验证软件对需求的满足程度

如何做到:在需求分析阶段和技术设计阶段开始介入

成效:设计出从终端用户使用场景考虑的端到端的测试用例集,主要验证各个业务需求是否被满足,基于黑盒的测试设计方法。

重点:在具体的用例设计时,首先要搞清楚每一个业务需求所对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,最后再针对每个测试需求点设计测试用例。

 两个关键点:

  (1)从软件功能需求出发,全面地、无遗漏地识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率。

  (2)对于识别出每个测试需求点,需要综合运用等价类划分、边界值分析和错误推测法来全面设计测试用例。

 

设计测试用例的高级经验:

(1)深入理解被测软件的架构,发现系统边界以及系统集成上的潜在错误。

  必须对内部的结构有清楚的认识,比如:数据库的连接方式、数据库的读写分离、消息中间件的配置、缓存系统的层级分布、第三方系统的集成。

(2)深入理解被测软件的设计与实现细节、内部处理逻辑:

  根据测试点设计测试用例只能覆盖“表面”一层,往往内部处理流程、分支处理无法覆盖完全;在具体实践中,通过代码覆盖率指标找出可能的测试遗漏点。

(3)引入需求覆盖率和代码覆盖率来衡量测试执行的完备性。

(4)需求合理性测试,即用户体验测试也是很重要的一点。

 

链接测试的测试点:

(1)内部链接,外向链接,发送 Email,页面中链接跳转

(2)链接的页面是否存在

(3)点击链接是否能跳转到对应页面

(4)是否存在孤立页面,即只有通过特定URL才能访问到的页面

 

图形测试的测试点:

(1)颜色饱和度、对比度是否合适

(2)需要突出链接的颜色是否容易识别

(3)是否正确加载所有图形

(4)数据变化时,图形是否实时变化

(5)不同数据类型,图形是否加以区分

 

兼容性测试矩阵:

浏览器兼容性、操作系统兼容性、移动端浏览器兼容性、打印测试、硬件兼容、数据兼容性

 

表单测试的测试点:

(1)字段验证

(2)字段缺省值

(3)输入验证

(4)提交验证

 

 参考:https://www.cnblogs.com/poloyy/p/12189655.html

posted @ 2024-06-27 17:46  努力的小测试  阅读(3)  评论(0编辑  收藏  举报