本文地址: https://www.cnblogs.com/hchengmx/p/12554939.html
在网络上看到这样一个笑话 计算机领域有哪些经典的典故或笑话? - 知乎。一个测试工程师走进一家酒吧,要了一杯啤酒/一杯咖啡/0.7杯啤酒/-1杯啤酒/一杯洗脚水。
从测试工程师的角度来说,来尝试着对这个问题进行测试用例的设计。
要是分析这个问题的话,首先必须明确需求。
"一个测试工程师走进一家酒吧,点了一杯啤酒。"
我们就假定我们是来测试一个酒吧管理系统,这个酒吧管理可以实现顾客从入店到买啤酒结账的整个过程。首先酒吧肯定不是24小时营业的,假定酒吧的营业时间是 14:00 - 次日02::00,酒吧不允许未成年人进入,酒吧堂食的顾客不能超过100,只能点一种啤酒,且啤酒的数量只能是正整数,酒吧支持刷卡或者现金。
然后分析,整个点啤酒的过程有哪几个步骤。酒吧在营业时间内 -> 一个成年人走进酒吧 -> 酒吧有座位 -> 点啤酒 -> 刷卡或者现金 -> 酒吧给顾客找钱 -> 酒吧给顾客想要的数量的啤酒。
接着就可以根据分析的步骤来画出整个点单的流程图。如下:
可以看到,整个流程图一共有13个判定,根据最简单的判定覆盖的概念,一共至少有14个测试用例才能达到判定覆盖。
判定覆盖: 判定覆盖是设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。
于是功能测试的用例如下(编号代表走哪个分支):
接着可以对一些特殊的判定做更细的划分,比如图中的8,只说明了正整数/非正整数。非正整数又包括小数/0/π,正整数也包括当前的最大值/int的最大值等值,接下来用等价类划分法对酒吧数量进行划分。
Input | Expected Result |
---|---|
-1杯啤酒 | 拒绝 |
0杯啤酒 | 拒绝 |
π杯啤酒 | 拒绝 |
3杯啤酒 | 成功 |
100杯啤酒 | 成功 |
101杯啤酒 | 拒绝 |
2^31杯啤酒 | 拒绝 |
NULL杯啤酒 | 拒绝 |
负载测试:有若干个测试工程师一直在酒吧喝酒;
疲劳性测试:一家酒吧连续经营 30天,且每天都是从14:00经营到次日02:00。
参考:
原文:https://www.cnblogs.com/hchengmx/p/12554939.html