目录:导读
前言
好的测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能否发现缺陷无关
好的测试用例必须具备哪些特征
整体完备性:一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求
等价类划分的准确性:对于每个等价类都能保证只要其中一个输入测试通过,其他输入页一定测试通过
等价类集合的完备性:需要保证所有可能的边界值和边界条件都已经正确识别
三种最常用的测试用例设计方法
等价类划分:
将所有可能的输入数据划分成若干个子集;
任意一个输入数据若是有效的则构成有效等价类;
输入数据对于揭露程序中潜在错误都具有同等效果则构成无效等价类;
后续只要从每个等价类中年任意选取一个值进行测试, 就可以用少量具有代表性的测试输入取得较好的测试覆盖结果;
边界值分析:
选取输入、输出的边界值进行测试;
边界值分析师对等价类划分的补充;
错误推断法:
基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例方法。强调的是对被测软件的需求理解以及设计实现的细节把握
错误推断法的例子
如何设计出好的测试用例
例子:测试面向终端用户的GUI测试
最核心的测试点:验证软件对需求的满足程度
如何做到:在需求分析阶段和技术设计阶段就开始介入
成效:设计出从终端用户使用场景考虑的端到端的测试用例集,主要验证各个业务需求是否被满足,基于黑盒的测试设计方法
重点:在具体的用例设计时,首先要搞清楚每一个业务需求所对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,最后再针对每个测试需求点设计测试用例
以"用户登录"功能设计测试用例
【用户登录】功能的映射关系图
关键点:
从软件功能需求出发,全面地、无遗漏地识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率。 比如,如果你没有识别出用户登录功能的安全性测试需求,那么后续设计的测试用例就完全不会涉及安全性,最终造成重要测试漏洞。
对于识别出每个测试需求点,需要综合运用等价类划分、边界值分析和错误推测方法来全面设计测试用例。
以用户登录的功能性需求为例
首先对"用户名"和"密码"两个输入框分别进行等价类划分,对于无效等价类的识别可采用错误推测法(如:用户名包含特殊字符);
然后补充输入框的边界值用例,如:为空、用户名长度刚刚大于限定长度;
设计测试用例的高级经验
深入理解被测试软件的架构,发现系统边界以及系统集成上的潜在错误
必须对内部的架构有清楚的认识,比如:数据库连接方式、数据库的读写分离、消息中间件的配置、缓存系统的层级分布、第三方系统的集成
必须深入理解被测软件的设计与实现细节、内部处理逻辑
只根据测试点设计测试用例只能覆盖"表面"一层,往往内部处理流程、分支处理无法覆盖完全;在具体实践中,可以通过代码覆盖率指标找出可能的测试遗漏点
测试用例设计
一般分为两种
显性功能性需求:指的就是软件本身需要实现的具体功能,比如"登录成功","密码错误"等
非功能性需求:主要涉及【安全性】【性能】【兼容性】三大维度,往往非功能性需求是决定软件质量的关键因素
用户登录的测试用例
|-------------------------------------|
| 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有经历艰辛的岁月,才能绽放出坚强的花朵;只有付出不懈的努力,才能迎来辉煌的明天。努力奋斗,为了成就自己的人生传奇,让每一份汗水都成为你成功的养料!
只有奋斗才能使生命绽放出属于自己的光彩,不断努力,才能实现心中的梦想,勇敢面对困难与挑战,每一次努力都是进步的开始,坚持不懈,终将收获辉煌的人生。
只有坚持不懈的努力,才能在人生的舞台上绽放出耀眼的光芒。无论遇到多少困难,都要永不言弃,相信自己的能力,勇往直前,追逐梦想的脚步永不停歇。