作为一名软件测试人员,测试用例是基础,也是工作中必不可少的基本功,怎样设计出测试用例并且用例可以发现更多的bug呢? 写测试用例时,不能只关注正向流程,还需要关注逆向,异常,特殊逻辑; 测试用例必须包含的内容:用例编号,用例标题,前提条件,操作步骤,预期结果,优先级,实际结果,是否通过,备注(测试数据可选)
拿个三角形的的测试场景; 题目: 给你三个输入框,分别输入三角形的3条边,判断三角形的形状,不规则三角形,等腰三角形,等边三角形;
正向用例:
- 2,3,4 不规则三角形;
- 3,3,5 等腰三角形;
- 6,6,6 等边三角形;
所有的测试都不可能做到穷举测试,所以挑选出一条来代表不规则,等腰和等边三角形;
逆向用例: 1.输入框中输入非数字,中文,英文,特殊字符; 2.输入框中输入负数,0,不可以组成三角形; 4. 0,0,0; 非等边三角形; 5. 2,A,2;非等腰三角形; 6. 2,3,1;非不规则三角形; (三角形两边之和大于第三边)
对于一些常识性的隐性需求,需求文档中不会明确的表示,我们需要根据生活常识来判断; eg: 1.手机号码输入框,必须输入数字,且要符合正则表达式; 2.金额输入框,必须输入数字,且最多为2位小数; 3.购物车数量框,除了点击加减按钮,数据对应变更,减按钮,最小减到0,点击无效,输入数据只能为正整数; 4.身份证输入框,要有身份证格式校验;
通过有限的测试用例,最大限度的提高发现问题的数量; 穷举路径测试,不可能;即使穷举也不代表没错误,eg:逻辑错误,倒序误写为升序
软件测试的重要原则: 1.测试用例中一个必需的部分是对预期输出或结果的定义; 避免所见即所想 2.程序员应当避免测试自己编写的程序;(破坏性眼光审查程序) 3.编写软件的组织不应当测试自己编写的软件; 4.彻底检查每个测试的执行结果; 5.测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况; 6.检查程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的” 7.应避免测试用例用后即弃,除非软件本身就是一个一次性软件; 8.计划测试工作时不应默许假定不会发现错误; 测试:为发现错误而执行的测试 9.程序某部分存在更多错误的可能性,于该部分已发现的错误数量成正比; 10.软件测试是一项极富创造性,极具智力挑战性的工作;
软件测试是为发现错误而执行程序的过程; 一个好的测试用例具有较高发现某个尚未发现的错误的可能性; 一个成功的测试用例能够发现某个尚未发现的错误;
|