常見的測試用例設計方法都有哪些?請分別以具體的例子來說明這些方法在測試用例設計工作中的應用。
1. 等價類劃分
常見的軟件測試面試題劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的.并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試.因此,可以把全部輸入數據合理劃分為若干等價類,在每一個等價類中取一個數據作為測試的輸入條件,就可以用少量代表性的測試數據.取得較好的測試結果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類.
2. 邊界值分析法
邊界值分析方法是對等價類劃分方法的補充。測試工作經驗告訴我,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內部.因此針對各種邊界情況設計測試用例,可以查出更多的錯誤.
使用邊界值分析方法設計測試用例,首先應確定邊界情況.通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況.應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據.
3. 錯誤推測法
基于經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法.
錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產品測試中曾經發(fā)現的錯誤等, 這些就是經驗的總結。還有, 輸入數據和輸出數據為0的情況。輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯誤的情況?蛇x擇這些情況下的例子作為測試用例.
4. 因果圖方法
前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯系, 相互組合等. 考慮輸入條件之間的相互組合,可能會產生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當多. 因此必須考慮采用一種適合于描述對于多種條件的組合,相應產生多個動作的形式來考慮設計測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況.
5. 正交表分析法
有時候,可能因為大量的參數的組合而引起測試用例數量上的激增,同時,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數量的測試,就可以通過正交表來進行縮減一些用例,從而達到盡量少的用例覆蓋盡量大的范圍的可能性。
6. 場景分析方法
指根據用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執(zhí)行的深度和可行性更好。
您認為做好測試用例設計工作的關鍵是什么?
白盒測試用例設計的關鍵是以較少的用例覆蓋盡可能多的內部程序邏輯結果
黑盒法用例設計的關鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。不可能做到完全測試,以最少的用例在合理的時間內發(fā)現最多的問題
詳細的描述一個測試活動完整的過程:
1. 項目經理通過和客戶的交流,完成需求文檔,由開發(fā)人員和測試人員共同完成需求文檔的評審,評審的內容包括:需求描述不清楚的地方和可能有明顯沖突或者無法實現的功能的地方。項目經理通過綜合開發(fā)人員,測試人員以及客戶的意見,完成項目計劃。然后sqa進入項目,開始進行統計和跟蹤
2. 開發(fā)人員根據需求文檔完成需求分析文檔,測試人員進行評審,評審的主要內容包括是否有遺漏或者雙方理解不同的地方。測試人員完成測試計劃文檔,測試計劃包括的內容上面有描述。
3. 測試人員根據修改好的需求分析文檔開始寫測試用例,同時開發(fā)人員完成概要設計文檔,詳細設計文檔。此兩份文檔成為測試人員撰寫測試用例的補充材料。
4. 測試用例完成后,測試和開發(fā)需要進行評審。
5. 測試人員搭建環(huán)境
6. 開發(fā)人員提交第一個版本,可能存在未完成功能,需要說明。測試人員進行測試,發(fā)現bug后提交給bugzilla。
7. 開發(fā)提交第二個版本,包括bug fix以及增加了部分功能,測試人員進行測試。
8. 重復上面的工作,一般是3-4個版本后bug數量減少,達到出貨的要求。
9. 如果有客戶反饋的問題,需要測試人員協助重現以及回歸測試。
以往是否曾經從事過性能測試工作?請盡可能的詳細描述您以往的性能測試工作的完整過程。
曾經做過一套網管系統的性能測試,主要測試該軟件在同時管理大量終端的情況下,在響應時間,cpu/磁盤/內存等參數是否滿足要求。
也曾經做過軟交換系統的呼叫性能測試,主要是測試軟交換系統在有大量呼叫的情況下,響應時間,呼叫成功率,cpu/磁盤/內存等參數是否滿足設計要求。
您在從事性能測試工作時,是否使用過一些測試工具?如果有,請試述該工具的工作原理,并以一個具體的工作中的例子描述該工具是如何在實際工作中應用的。
測試網管系統中,使用的mimic來模擬終端,能夠大量的節(jié)省成本。
測試軟交換系統的時候,使用的prolab來模擬終端并發(fā)送呼叫軟交換,他完成了同時數百人才能完成的摘機撥號工作,主要工作原理是產生一些符合要求的ip包并發(fā)送給軟交換系統,同時對軟交換系統的回應進行處理,決定下一步動作。
您認為性能測試工作的目的是什么?做好性能測試工作的關鍵是什么?
主要是保障在大量用戶的情況下,服務能正常使用。
在您以往的工作中,一條軟件缺陷(或者叫bug)記錄都包含了哪些內容?如何提交高質量的軟件缺陷(bug)記錄?
1. 在傳統的bugzilla中,bug描述應該包括以下的信息
2. 和bug產生對應的軟件版本
3. 開發(fā)的接口人員
4. bug的優(yōu)先級
5. bug的嚴重程度
6. bug可能屬于的模塊,如果不能確認,可以用開發(fā)人員來判斷
7. bug標題,需要清晰的描述現象
8. bug描述,需要盡量給出重新bug的步驟
9. bug附件中能給出相關的日志和截圖。
高質量的bug記錄就是指很容易理解的bug記錄,所以,對于描述的要求高,能提供的信息多且準確,很好的幫助開發(fā)人員定位。