轉自:http://www.51testing.com/html/54/n-247254.htmlhtml
摘要:本文介紹了咱們公司內部的一種測試方法——衝突測試的含義,並就衝突測試在我司使用範圍、衝突測試用例的設計方法等作了簡單的介紹。網絡
關鍵詞:衝突測試多線程
1、什麼是衝突測試測試
衝突測試是咱們公司內部的一種叫法,可能不一樣的公司叫法不一樣。咱們公司所謂的衝突測試是指,在運行某一程序的功能時被第三方功能或者軟件給干擾的測試。該測試方法模擬的是一種基於軟件狀態場景的測試。從軟件的運行狀態來看,咱們認爲軟件狀態通常只有開始、掛起、結束,這三種狀態。衝突測試即爲模擬干擾軟件運行「開始」、「掛起」、「結束」狀態的測試。線程
2、衝突測試的應用範圍和一些應用場景設計
衝突測試這種測試方法,常見於手機軟件測試、移動通訊類嵌入式軟件測試等領域。但在一些桌面軟件或者Web系統測試領域當中也可應用,只是應用的場景並不如移動通訊類軟件這麼普遍。視頻
下面簡單介紹一下其不一樣軟件類型中的典型應用場景:htm
手機軟件:進程
好比在收短信時,來個電話的場景;table
在播放視頻過程當中,插入了USB;
在通話過程當中,收到了一個短信等等。
移動通訊類嵌入式軟件:
移動通訊類嵌入式軟件,大可能是基於3G網絡應用的軟件。好比一些車載軟件,將此類終端裝在汽車上,就能夠實現相似基於手機功能,並整合互聯網娛樂的功能的軟件。典型軟件類型,如豐田公司的「G-BOOK」、比亞迪的「i」系統等。
其測試場景好比:
在下載導航的過程當中,來了一個即時消息;
在播放音樂的過程當中,來了一個電話;
在藍牙鏈接的過程當中,又接收到了一個新的藍牙鏈接請求等等。
桌面軟件或者Web系統:
桌面軟件或Web系統的衝突測試,常見於多線程程序、具備多系統合做程序、多權限管理的程序。
多線程程序:
好比某查詢功能,因爲數據量不少,查詢後有一個等待加載完成的狀態線程。這時咱們就能夠經過關閉標籤或者頁面,結束這個等待的狀態線程;
有某導出數據的功能,在導出數據等待過程當中,關閉標籤或者頁面,結束這個等待的狀態線程。
……………………
3、衝突測試應該在整個測試中的地位
衝突測試在整個測試中的地位應該與邊界值測試中的地位相同。在設計測試用例時,也應較多的考慮這類測試。根據以往採用這種測試方法進行測試的經驗來看,此類測試每每會引發一些較嚴重的問題。好比上文中提示到「在播放視頻過程當中,插入了USB」,就引發過手機軟件黑屏,且不能恢復的p1級問題;「在下載導航的過程當中,來了一個即時消息」,引發車載導航功能在界面中卡死,只有重啓才能恢復軟件運行的問題;「查詢功能,因爲數據量不少,查詢後有一個等待加載完成的狀態線程。這時咱們就經過關閉標籤結束這個等待的狀態線程」,引發桌面軟件完全崩潰,只有經過進程結束才能恢復的問題;多系統合做程序那個例子,在咱們作過的論壇系統中,引發過文章被髮表經過的問題。
爲何說衝突測試跟邊界值測試法的地位相同呢?
由於說白了其實衝突測試就是邊界值法測試方法的一種具體體現。對邊界值法有一個小小的誤區,不管是書上仍是網絡上一般說到邊界值法的時候,舉的例子每每是數量邊界,即某個輸入框只能爲20位字符時,咱們測試其21位字符的狀況,這固然也沒有錯,只是常此以往,不少測試人員認爲邊界值法就是數據邊界了。其實我認爲邊界值法,包括三種:輸入動做的邊界,數量的邊界,以及狀態的邊界。所謂輸入動做的邊界,好比查詢有三個輸入框,一個框都不輸入去查詢,這就是一個輸入動做的邊界。數量邊界,即一個值的最小和最大數量。狀態邊界,即「開始」、「掛起」、「結束」這三種狀態。因爲本文重點是介紹衝突測試這種方法,關於邊界值就不繼續禪述了。
四、衝突測試用例的設計方法和執行策略
此類測試用例設計的方法與其它類型的用例設計方法基本上相同。不過,不一樣的軟件類型其用例設計方法的偏重點也略有不一樣。咱們先來看看手機和移動通訊類嵌入式系統的用例設計大致方法和執行策略:
A)肯定可打斷其它功能狀態的功能。
好比手機功能:通常通話、藍牙、短信、彩信、鬧鐘、USB、充電等功能,都會彈出一個提示信息層。因此衝突測試用例,都必須考慮這種功能打斷其它程序時會不會引發一些異常等。
B)遍歷全部功能模塊
分析功能模塊的使用頻率,將不一樣的使用頻率的模塊按不一樣的級別劃分,以便有利於測試策略的安排。
C)執行策略
此類測試在手機等移動通訊軟件中的一個難點就是,找準測試時間點。由於在執行某個功能時,發生的速度很是快,而要打斷這個狀態就得算好時間。這一點,我想作過手機軟件測試的同志是很是清楚的。我所採用的方法,通常是在這個功能使用手機秒錶功能計算並統計時間後取出平均時間來執行的。另外,此類用例在前期應執行級別最高的用例,到中後期按照多個版本遍歷全部級別的原則進行組合策略按排。
五、衝突測試用例的實例
手機軟件,如短信模塊的一些用例:
模塊 |
用例概要 |
測試步驟 |
期待結果 |
短信模塊 |
來電話 |
1.從主菜單界面進入短信界面過程當中,有電話呼入 |
1.電話正常呼入,仍處於主菜單界面 |
短信模塊 |
來電話 |
1.進入寫短信界面過程當中,有電話呼入 |
1.電話正常呼入,仍高亮於寫短信菜單 |
短信模塊 |
來電話 |
1.在發送短信過程當中,有電話呼入 |
1.電話正常呼入,該短信發送失敗,保留在收件箱內 |
短信模塊 |
來鬧鐘 |
1.從主菜單界面進入短信界面過程當中,鬧鐘時間到 |
1.正常彈出鬧鐘,關閉鬧鐘後,仍處於主菜單界面 |
短信模塊 |
來鬧鐘 |
1.進入寫短信界面過程當中,鬧鐘時間到 |
1.正常彈出鬧鐘,關閉鬧鐘後,仍高亮於寫短信菜單 |
短信模塊 |
來鬧鐘 |
1.在發送短信過程當中,鬧鐘時間到 |
1.正常彈出鬧鐘,關閉鬧鐘後,該短信發送失敗,保留在收件箱內 |
....