很多測試從業(yè)者可能都會有這么個疑問:怎樣才能做好產(chǎn)品測試?對于這個問題,可能是仁者見仁智者見智,沒有放之四海而皆準的標準。在筆者看來,要做好測試管理工作首先得有測試理念,也可以說是產(chǎn)品測試要遵循的一些基本原則,這些原則為各級測試人員提供了總體思路和方向,基于這些原則開展測試工作不會差到哪去,筆者根據(jù)多年產(chǎn)品測試工作經(jīng)驗,總結(jié)出的測試基本原則如下:
原則1: 測試是否通過的依據(jù)是客戶需求、規(guī)格及各種標準
產(chǎn)品測試的目的主要是檢驗開發(fā)出來的產(chǎn)品是否滿足客戶的需求、各種標準,產(chǎn)品測試的很多工作,包括產(chǎn)品測試策略、測試方案、測試用例設(shè)計都必須以此作為設(shè)計輸入,其中需求是客戶化的定性描述,規(guī)格是客戶需求的定量描述,標準是產(chǎn)品必須遵循的各種標準,比如行業(yè)標準、國標等,產(chǎn)品測試是否通過的判斷依據(jù)是客戶需求及規(guī)格,或者是產(chǎn)品必須遵循的各種標準及規(guī)范,而不是內(nèi)部的技術(shù)要求或限制。
原則2: 完全測試基本不可能,應制定合理的測試策略
產(chǎn)品完全測試是不可能做到的,特別是軟件類測試更是如此,各種輸入條件組合將是一個天文數(shù)字,我們不可能進行窮盡測試,所以需要基于客戶需求和規(guī)格分析基礎(chǔ)上制定相應的測試策略,在測試策略中要權(quán)衡投入/產(chǎn)出比的原則,測試既要充分也不要過分。當滿足一定的測試出口準則時測試就應當終止。
那么在編制產(chǎn)品測試策略時,對測試內(nèi)容如何進行考慮呢?一般來說要結(jié)合客戶需求、質(zhì)量目標來考慮,每個新產(chǎn)品開發(fā)時會確定一個質(zhì)量目標,這個質(zhì)量目標是基于客戶需求來定的,以飛機為例,飛機的引擎控制、飛行技術(shù)、導航處理等質(zhì)量要求是最高等級,而飛機上的娛樂措施質(zhì)量等級相對來說可以降低一個等級,這樣在測試內(nèi)容深度和廣度上可以差別考慮;另外針對一些系統(tǒng)增強型產(chǎn)品考慮繼承性功能測試策略時,重點要考慮產(chǎn)品新修改的影響分析,可以重點對修改影響比較大的繼承性功能進行測試,而對于其它繼承性功能進行抽測即可。
原則3: 為了減少投入成本,測試應該盡早介入
根據(jù)統(tǒng)計表明,在產(chǎn)品開發(fā)早期引入的缺陷占產(chǎn)品開發(fā)過程中出現(xiàn)所有缺陷數(shù)量的50%~60%。此外,IBM的一份研究結(jié)果表明,缺陷成本存在放大趨勢。如需求分析階段的一個錯誤可能會導致N個設(shè)計錯誤,越是測試后期,為修復缺陷所付出的代價就會越大。因此在產(chǎn)品需求分析和設(shè)計階段,測試人員應進行測試需求分析和測試策略制定;在產(chǎn)品功能模塊開發(fā)完成時協(xié)助開發(fā)人員進行自測,產(chǎn)品研發(fā)樣機出來測試進行系統(tǒng)測試等,以提高產(chǎn)品質(zhì)量,降低產(chǎn)品開發(fā)成本。
原則4: 由第三方測試團隊進行測試,必要時組織客戶化測試
由于心理因素,人們潛意識都不希望找到自己的錯誤?;谶@種思維定勢,人們難于發(fā)現(xiàn)自己的錯誤。因此,由獨立測試部門或者第三方測試機構(gòu)進行產(chǎn)品測試將更客觀、公正,測試活動也會達到更好效果。
第三方或者獨立的測試團隊進行測試的這個原則,并不是認為所有的測試完全由他們來完成。在測試人員進行測試之前開發(fā)人員也需要通過自測來發(fā)現(xiàn)自己開發(fā)過程中的問題,開發(fā)人員對自己的工作產(chǎn)品進行認真的測試,這也是開發(fā)人員的一個職責之一。
另外有些產(chǎn)品應用場景比較復雜,研發(fā)過程中限于測試環(huán)境和應用環(huán)境的差異性,有些測試內(nèi)容可能無法很好進行測試,此時要考慮進行客戶化測試,比如在產(chǎn)品經(jīng)過公司內(nèi)部嚴格測試后,再找一些關(guān)系比較好的客戶,在客戶實際的應用環(huán)境中,邀請客戶參與對產(chǎn)品的測試,這樣往往能發(fā)現(xiàn)一些深層次的問題,有助于提升產(chǎn)品的質(zhì)量。
原則5: 根據(jù)缺陷的集群性,適時開展專項測試
Pareto(排列圖)原則表明“80%的錯誤集中在20%的產(chǎn)品模塊中”。實際經(jīng)驗也證明了這一點,通常情況下,大多數(shù)的缺陷只是存在測試對象的極小部分。缺陷并不是平均而是集群分布的。因此,測試過程中要充分注意錯誤集群現(xiàn)象,對發(fā)現(xiàn)問題較多的模塊,應該引起重點關(guān)注,必要時要組織專項分析和測試。
當然要做好測試工作僅僅有一定測試原則還是不夠的,還需要在產(chǎn)品測試流程指引下在產(chǎn)品開發(fā)不同階段進行相應的測試活動,確保產(chǎn)品測試工作的充分性、有效性,支撐產(chǎn)品開發(fā)整體上按計劃高質(zhì)量的成功上市。