這個需求很簡單,怎麼實現我不管,明天上線...
一句話、或者簡單描述的需求,需要你設計測試用例,我相信大家或多或少都見到過吧?
我想起上一次面試某廠,面試官也出了個這種題。我覺得這種需求作爲面試題出現還是可以接受的,如果作爲真正的生產需求,我不知道提需求的人會不會被打?
今天就不聊生產場景下的,就以面試題的角度,梳理總結一下應對這種題目的套路。
參考題目
借用一個網上看到的題目,支付場景下的:
微信支持餘額支付時,不足的部分可以信用卡補充一起支付,但針對使用餘額支付的部分給予 3% 的優惠(直接用於本次支付中)
考察點
看到題目,內心是不是一萬隻草泥馬奔過?好想直接打回需求,但是這畢竟是在面試,首先我們要知道面試官的考察點在哪裏。
我覺得最重要的是這 2 點:
- 考察遇到這種不合理需求時的處理方式
- 考察測試基本功,設計測試時候是否足夠發散
解題套路
1. 處理方式
拿到這種需求,內心肯定是拒絕的,我覺得可以向面試官詢問一些更多的需求信息,比如應用場景等來讓你有更多的瞭解。
當然了,就算面試官繼續補充了點信息給你,肯定還是不夠的。
那麼我覺得可以說:這個需求不夠明確,有不少的信息還需要補充,通常我們一般是打回處理的。
但是到這裏還沒結束。畢竟是在面試,你肯定還是要設計測試用例的。
我會繼續說:不過基於當前的信息,我來說一下我考慮到的點,相關疑問點之後也會提給產品,讓其確認。
到了 show 基本功的時候了。
2. 設計用例
設計用例是我們測試人的基本能力,也是最重要的能力。需要我們可以足夠發散,既能跳進去扣細節,也可以跳出去考慮上下文。
因爲題目沒有給出上下文,所以我們可以把想到的問題也羅列出來,作爲待確認即可。
剩下的就可以站在多維度:功能、性能、安全、易用、兼容等角度,運用:場景法、等價類、邊界值等手段來進行設計了。
參考:
* 適用微信版本?(海外版\國內版\Android\IOS)
* 適用的微信支付方式?(掃碼\被掃)
* 是否有存在支付優惠?(紅包\直減)
* 支付狀態不同,對應的後端處理、和前端交互提示?(超時支付、不支付、支付但金額不足、支付超額)
* 支持的貨幣有哪些?
* 支付同時的臨時動作(首次開通微信支付、支付時開通免密、支付時查看消息後再支付等等),
* 不進行判定的方式、餘額精度?比如需要餘額大於 1 元?
* 支持的信用卡種類
* 信用卡額度限制
* 測試 3% 優惠的精度
* 信用卡扣費失敗,第三方的異常返回碼處理
* 優惠支付後是否可退可改?
* 優惠有沒有使用次數限制?
* 是否優惠只針對定向用戶?
* 交易是否可追溯、可覈查
* 高併發場景,性能測試
* 調用請求是否有 鑑權判斷。用戶敏感信息是否是密文
* 是否有風控能力、能識別異常支付、非法支付、危險支付
... ...
其實還有很多的地方需要考慮,但是面試時候只要表現出你的發散能力足夠就可以了。
反思
最後,對話題進行一些延伸。
很多人喜歡自嘲自己是“點工”,沒什麼技術含量。確實,我覺得對於“點”來說,技術含量確實不大,重要的還是測試思維。
但是仔細思考一下,其實點點點也並不是那麼容易的。
點點點是測試過程中的一項重要手段,但是想要做好絕對不是無腦的點,一定是有計劃、有思路、有條理的點。
而且,隨着當下環境對測試人的要求越來越高,測試人不能只侷限於點點點表象。在你點的過程中,很多問題值得去深入研究一下:
- 測試的功能背後的邏輯是怎麼實現的?
- 開發爲什麼要這麼寫?
- 對於這種場景一般的實現方式時哪些?
- 背後涉及到的中間件特點是什麼?使用場景都哪些?
- 這種場景的測試是否有可以提煉出來的方法論?
- 如何更高效的做好這類的測試
... ...
現在圈子裏對於測試開發趨之若鶩,搞得業務測試就該被鄙視一樣。
其實我覺得做業務測試沒關係,怕的是自己把自己侷限在業務裏,縱向、橫向的思考一下?是不是還有很多要學習的呢?
把羅列出的知識都學一下,你肯定不是現在的你了。
共勉一下!