随笔 - 49  文章 - 0  评论 - 20  阅读 - 12万

一个测试工程师走进一家酒吧

本文地址: https://www.cnblogs.com/hchengmx/p/12554939.html

在网络上看到这样一个笑话 计算机领域有哪些经典的典故或笑话? - 知乎。一个测试工程师走进一家酒吧,要了一杯啤酒/一杯咖啡/0.7杯啤酒/-1杯啤酒/一杯洗脚水。

从测试工程师的角度来说,来尝试着对这个问题进行测试用例的设计。

功能测试

要是分析这个问题的话,首先必须明确需求。

"一个测试工程师走进一家酒吧,点了一杯啤酒。"

我们就假定我们是来测试一个酒吧管理系统,这个酒吧管理可以实现顾客从入店到买啤酒结账的整个过程。首先酒吧肯定不是24小时营业的,假定酒吧的营业时间是 14:00 - 次日02::00,酒吧不允许未成年人进入,酒吧堂食的顾客不能超过100,只能点一种啤酒,且啤酒的数量只能是正整数,酒吧支持刷卡或者现金。

然后分析,整个点啤酒的过程有哪几个步骤。酒吧在营业时间内 -> 一个成年人走进酒吧 -> 酒吧有座位 -> 点啤酒 -> 刷卡或者现金 -> 酒吧给顾客找钱 -> 酒吧给顾客想要的数量的啤酒。

接着就可以根据分析的步骤来画出整个点单的流程图。如下:

流程图.png

可以看到,整个流程图一共有13个判定,根据最简单的判定覆盖的概念,一共至少有14个测试用例才能达到判定覆盖。

判定覆盖: 判定覆盖是设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。

于是功能测试的用例如下(编号代表走哪个分支):

  • 1,2,3,17;
  • 1,2,4,17;
  • 1,2,3,4,17;
  • 1,2,4,5,17;
  • 1,2,4,5,6,17;
  • 1,2,4,5,6,7,17;
  • 1,2,4,5,6,7,8,17;
  • 1,2,4,5,6,7,8,9,17;
  • 1,2,4,5,6,7,8,9,10,12,17;
  • 1,2,4,5,6,7,8,9,10,11,16,17;
  • 1,2,4,5,6,7,8,9,10,11,10,11,16,17;
  • 1,2,4,5,6,7,8,9,10,12,13,16,17;
  • 1,2,4,5,6,7,8,9,10,12,13,14,17;
  • 1,2,4,5,6,7,8,9,10,12,13,14,15,16,17;

接着可以对一些特殊的判定做更细的划分,比如图中的8,只说明了正整数/非正整数。非正整数又包括小数/0/π,正整数也包括当前的最大值/int的最大值等值,接下来用等价类划分法对酒吧数量进行划分。

Input Expected Result
-1杯啤酒 拒绝
0杯啤酒 拒绝
π杯啤酒 拒绝
3杯啤酒 成功
100杯啤酒 成功
101杯啤酒 拒绝
2^31杯啤酒 拒绝
NULL杯啤酒 拒绝

性能测试

负载测试:有若干个测试工程师一直在酒吧喝酒;
疲劳性测试:一家酒吧连续经营 30天,且每天都是从14:00经营到次日02:00。

安全测试

  • 一个测试工程师走进一家酒吧,要了一杯啤酒';DROP TABLE 酒吧;
  • 一个测试工程师走进一家酒吧,"< script >alert("要了一杯酒");< /script >"

本地化测试

  • 一个西班牙籍的测试工程师走进一家酒吧,点了一杯啤酒;
  • 一个东北籍的测试工程师走进一家酒吧,用东北话点了一杯啤酒;

参考:

  1. Bill Sempf on Twitter: "QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers. Orders a sfdeljknesv." / Twitter
  2. 计算机领域有哪些经典的典故或笑话? - 知乎
  3. 测试工程师的梗,你了解多少? | 博客 | Powered by skywalker_z
  4. 判定覆盖_百度百科
  5. A QA tester walks into a bar... : ProgrammerHumor
  6. A test engineer walks into a bar... : ProgrammerHumor
  7. A Tester Walks into a Bar: Reviewing Test Techniques | StickyMinds
posted on   hchengmx  阅读(6577)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示