最近重讀《Google軟體測驗之道》,其中有一道面向軟體測驗工程師的面試題非常考驗測驗人員的思維,拿來與你們分享,看看這樣一道題,你能想到多少個測驗點,
題目:
在一個Web測驗頁面上,有一個輸入框,一個計數器(count)按鈕,用于計算一個文本字串中字母a出現的個數,這里的問題是,請設計一系列字串用以測驗這個Web頁面,
題目非常簡單,看到這個題目不要上來就開始設計用例,最好能有一些思考,這樣看起來更加“專業”,
(題外話,我在參加產品需求評審的時候也會問許多問題,尤其是產品需求并沒完全確定下來的時候,站在用戶的角度,我也是用戶啊,我是否喜歡這個功能?)
所以,我第一個想到的是設計這個功能的背景,因為同樣一個功能,在不同的背景下,測驗需要考慮的點可能是不一樣的,例如,同樣是一個搜索功能,百度的搜索和淘寶的搜索就有很大不同,因為用戶的使用場景完全不同,輸入搜索的關鍵字和預期結果也不一樣,
當然,這只是一道題,你根據題目回答就好了,
不過,我們仍然可以就題目本身來提一些問題:大寫還是小寫?只是英文么?計算完成后文本會被清除碼?多次按下按鈕會發生什么事情?…..
接下來你假裝有條不紊的設計用例(思考一會兒,然后再輸入一串字符,然后再思考…),而不是看起來像monkey試圖破壞軟體(拼命的敲擊鍵盤…),
“banana”:3(一個合法的英文字),
“A” 和“a”:1(一個簡單有正常結果的合法輸入),
“”:0(一個簡單的結果為0的合法輸入),
Null:0(簡單的錯誤輸入),
“AA” 和“aa”:2(個數大于1并且所有字符都為a/A的輸入),
“b”:0(一個簡單的非空合法輸入,結果為0),
“aba”:2(目標字符出現在開頭和結尾,以尋找回圈邊界錯誤),
“bab”:1(目標字符出現在中間),
space/tabs:N(空白字符與N個a的混合),
不包含a的長字串:N(N大于0),
包含a的長字串:N(N是a的倍數),
{java/C/HTML/JavaScript}:N是a出現的個數(可執行字符,或錯誤,或代碼解釋),
...
更優秀的測驗工程師,應該跳出輸入本身,設計以下用例,
質疑界面的外觀、調色板和對比度(這與相關應用風格一致么?)
文本框太小了,建議加長以便顯示更長的輸入字串
這個應用能否在同一臺服務器上運行多個實體,多個用戶同時使用是否會有問題,
是否會根據用戶的輸入自動匹配內容?
建議使用真實的資料,如從詞典或書中選擇輸入內容,
提出疑問:“輸入的資料是否會被保存”,輸入字串可能包含地址或其他身份資訊,
輸入HTML和JavaScrip,看是否會破壞頁面渲染,
嘗試復制/粘貼字串,
提出疑問:“計算足夠快么?在大并發下使用”,
提出提問:“用戶怎么找到該頁面?”
還有一些測驗點,只有經驗豐富的測驗工程師才會想到,
意識到計算會通過URL-encodedHTTP GET請求傳遞到服務器,字串可能會在網路傳輸時被截斷,因此,無法保證支持多長的URL,
建議將此功能引數化,為什么只對字母a計算呢?
考慮計算其它語言中的a(α,Alpha),
考慮到該應用是否應該國際化,
考慮撰寫腳本或者手工采樣來探知字串長度的上限,然后確保在此區間內功能正常,
考慮背后的實作和代碼,也許已經有一個計數器遍歷該字串,
提出疑問:“HTTP POST方法和引數會被黑掉碼?也許有安全漏洞?”
用腳本創建各種有趣的排列組合和字串特性,如長度、a的個數等,自動生成測驗輸入和驗證
最后:
歡迎關注公眾號:程式員一凡,領取一份216頁pdf檔案的Python自動化測驗工程師核心知識點總結!
這些資料的內容都是面試時面試官必問的知識點,篇章包括了很多知識點,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/463.html
標籤:其他
下一篇:軟體測驗_筆記
