本文章轉載于搜狗測試
場景介紹
最近,小明所參與的某項目正在緊鑼密鼓的開發測試中,但是對于項目的排期,他與產品同學產生較大分歧。
產品同學:這次的1.1版本希望能夠在3周后完成開發和測試,快速上線收集用戶的反饋并迭代,以便在下月底能夠快速搶占市場。
小明:但是這個版本增加了7-8個大的功能改動,參考以前的測試經驗,測試時間至少就需要2個月的時間。
產品同學:2個月的話太久了,能不能只測試基本功能保證不崩潰,兩周之后上線呢?
小明:這次功能改動很大,除了設計用例,執行用例,還要寫Gtest單元用例以及隨機測試、凍結測試等,整個測試加起來至少也要1個半月時間。
產品同學:這個項目現在是初始階段,正是快速搶占市場階段,能否在測試的范圍進行縮減,只保證功能正確使用,不會發生基本路徑的崩潰問題。
小明:這個…..
經過1小時的討論,雙方對于時間排期仍然沒有達成一致。
場景回顧
作為測試工程師的小明,心中只有質量二字,大熊也是這么教導和要求小明的。所以他不論大小項目,謹慎再謹慎,生怕上線后產品出現質量問題影響用戶口碑。然而保證產品質量的終極目標是希望產品成功,在不同的產品目標情況下,應該選擇與之對應的測試策略(如下圖)。
回顧以上場景,小明是復制其他產品項目的測試策略,測試的類型涵蓋功能性測試、關聯性測試、健壯性測試、穩定性測試、性能測試等類型。而他目前正在做的這個項目用戶量目前只有幾千人,相比其他產品線上千萬級別的用戶量而言,是非常小的。所以,將千萬級別用戶的產品的測試策略,原封不動地在這個新項目來開展,其實是不合時宜的。
如何制定測試策略
1.明確產品目標和質量要求:與項目組產品、開發等其他成員,明確本次上線的目標和質量要求。
如果是產品創建初期,用戶量不大快速發展擴張期,測試可以選擇更為激進的測試策略。
如果是產品穩定上升期,用戶量已經形成一個很大的規模,產品口碑是第一考慮的,那么可以選擇保守的測試策略。
如果是介于以上兩者之間,則根據產品發布目標在激進和保守策略中求得平衡。
2.列舉測試的覆蓋類型
功能性:
業務邏輯測試:功能正??捎谩?/p>
關聯性測試:與業務相關的其他功能的。
健壯性:在功能使用過程中,對于網絡異常、文件數據庫IO異常、第三方數據(如json數據異常)異常等特殊情況進行考慮,保證程序不會出現崩潰。
穩定性:長時間使用被測軟件各項功能,保證軟件不會出現崩潰異常問題。
性能:
大數據量測試:程序在大數據、大量用戶的使用情況下,功能或服務正常。
基準性能測試:關鍵性影響用戶體驗的性能指標的對比評測,例如:app的啟動性能。
易用性:操作及交互方面用戶體驗測試,符合常見的交互規范。
兼容性:在不同設備、不同分辨率等要素下的兼容性測試。
…等等其他類型。
附:Android手機客戶端的測試類型。
3.根據實際情況選擇與之對應的測試覆蓋類型。
根據產品目標選擇。
例如:在前文舉例的場景中,小明所測試的產品主要保證業務功能測試和穩定性測試兩類,其他的測試并不涉及。
根據產品特點選擇。
例如:被測的測試系統的業務是網上支付,那么在測試覆蓋類型中應加入安全性測試,而與之無關的流量測試則不必加入其中。
4.評估可能的風險和補救措施。
例如:小明所做的這個項目,在兼容性方面并不做過多要求,當得到兼容性問題的反饋后,case by case地進行修改即可。
5.綜合評估進行決策。
6.公示策略和風險。將溝通過的測試策略,公示給項目中的其他成員,以便大家理解對本次上線的目標、策略和風險隱患。
“測試永無止境,我們應根據實際情況和目標,在質量與進度中尋找最適宜的測試策略。