一個測試工程師走進一家酒吧


本文地址: 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM