zoukankan      html  css  js  c++  java
  • 一个测试工程师走进一家酒吧,怎么做测试?

    • 一个测试工程师走进一家酒吧,要了一杯啤酒;
    • 一个测试工程师走进一家酒吧,要了一杯咖啡;
    • 一个测试工程师走进一家酒吧,要了0.7杯啤酒;
    • 一个测试工程师走进一家酒吧,要了-1杯啤酒;
    • 一个测试工程师走进一家酒吧,要了232杯啤酒;
    • 一个测试工程师走进一家酒吧,要了一杯洗脚水;
    • 一个测试工程师走进一家酒吧,要了一杯蜥蜴;
    • 一个测试工程师走进一家酒吧,要了一份asdfQwer@24dg!&*(@;
    • 一个测试工程师走进一家酒吧,什么也没要;
    • 一个测试工程师走进一家酒吧,又走出去又从窗户进来又从后门出去从下水道钻进来;
    • 一个测试工程师走进一家酒吧,又走出去又进来又出去又进来又出去,最后在外面把老板打了一顿;
    • 一个测试工程师走进一家酒吧,要了一杯烫烫烫的锟斤拷;
    • 一个测试工程师走进一家酒吧,要了NaN杯Null;
    • 一个测试工程师冲进一家酒吧,要了500T啤酒咖啡洗脚水野猫狼牙棒奶茶;
    • 一个测试工程师把酒吧拆了;
    • 一个测试工程师化装成老板走进一家酒吧,要了500杯啤酒并且不付钱;
    • 一万个测试工程师在酒吧门外呼啸而过;
    •  一个测试工程师走进一家酒吧,"< script >alert("要了一杯酒");< /script >"
    • 一个测试工程师走进一家酒吧,要了一杯啤酒';DROP TABLE 酒吧;

    测试工程师们满意地离开了酒吧。

    然后一名顾客点了一份炒饭,酒吧炸了。

    其实比较专业了,包含了:

    功能测试

    反向测试用例

    脏数据/非法字符测试

    边界值测试

    容量测试

    性能测试

    安全测试,甚至尝试了sql注入

    在网络上看到这样一个笑话 计算机领域有哪些经典的典故或笑话? - 知乎。一个测试工程师走进一家酒吧,要了一杯啤酒/一杯咖啡/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的最大值等值,接下来用等价类划分法对酒吧数量进行划分。

    InputExpected 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
      

    所以不要以为这是个笑话,其实挺专业的,只是表达比较喜感

    没有错,测试的日常工作就是需要这么有喜感,以及想象力

  • 相关阅读:
    转 C#接收邮件
    WebApi的windows服务之路
    自动化升级工具之客户端升级工具之windows服务升级操作
    自动化升级工具之客户端升级工具之数据库升级操作
    GoJs实现流程管理图
    MvcForum作者称该项目进入缓慢更新
    生鲜蔬菜生产称重管理系统
    MvcForum中文版+PostgreSql源码下载
    Asp.Net MVC开源论坛中文版
    HTML5+Activex+Singr+ABP+MongoDB
  • 原文地址:https://www.cnblogs.com/zgq123456/p/12865235.html
Copyright © 2011-2022 走看看