如何设计一个"好的"测试用例
如何理解一个“好的”测试用例?
“好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能够发现缺陷无关。
举例子:
被测软件 --- 鱼塘
软件缺陷 --- 鱼
测试用例集 --- 渔网
“好的”测试用例集就是一张能够覆盖整个鱼塘的大鱼网,只要鱼塘里有鱼,就能给捞上来。
如果渔网本身是完整合格的,那么捞不到鱼就证明鱼塘中没有鱼,而渔网的好坏与鱼塘是否有鱼无关。
“好的”测试用例必须具备哪些特征:
(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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix