如何理解完美測試
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2012/4/9 9:42:41 ] 推薦標簽:
如何理解什么是完美的測試?然后又如何把測試工作做得完美?于是在微博上發(fā)出帖子,問大家如何理解什么是完美測試,但得到的答案也是不一樣的。
@張定勇_darren:值得思考的問題。我的理解,軟件測試是建立對產品信心的過程,將產品引發(fā)終用戶損失的風險降低到一個“可接受”的程度。因此,“完美”只能是相對的,或者說測試永達不到完美的程度(這也是測試的魅力所在)。比如我們都知道的一個基本事實是,產品的缺陷是不可能100%消除的。
@小馬老矣:簡單地講,滿足用戶需要可以了。從實踐來看,重在測試需求分析。根據(jù)軟件需求,先從功能角度,分析所有的功能點及非功能需求,并根據(jù)實際應用分級;其次是從技術角度,分析可能對功能產生影響的因素,根據(jù)風險高低分級。以此產生測試用例,并妥善安排測試計劃。
@Eagle_Yu:我心中“完美測試”的結果是產品推出之后,所有使用該產品的客戶都認為它是一款設計合理、性能穩(wěn)定并且沒有什么Bug被發(fā)現(xiàn)的產品。(從實現(xiàn)完美測試角度看)我們測試人員希望產品初期PM、RD、QA、UED能通力合作:即產品經(jīng)理能明確規(guī)劃出用戶的需求,用戶體驗設計能設計出符合用戶操作習慣的用戶界面和性能,開發(fā)人員能分析出將要做的產品技術上是否可行、減少正式開發(fā)過程中因為技術達不到而做的返工,品質保證能明確測試范圍。而且,測試計劃達到測試范圍明確、階段目標清楚、風險分析準確、可執(zhí)行性高。測試案例達到覆蓋面廣、優(yōu)先級權重準確、可維護性強。測試人員經(jīng)驗豐富、時間充裕。同時,開發(fā)部門開發(fā)能力強、產品高內聚、松耦合。
@狂奔的小溪流:要做到完美測試,是在規(guī)定的時間內通過各種測試方法把軟件各個方面(如功能、性能……)的質量狀態(tài)全面地體現(xiàn)出來。
@趙枚:一個自證明的系統(tǒng)!當這個系統(tǒng)交付的時侯,已經(jīng)完成了其各部分的功能驗證。
那我個人的理解又是如何呢?
我認為“完美測試”是通過有效的手段(包括方法、技術和工具)完成所有必要的測試,達到事先所要求的功能需求和非功能需求的測試覆蓋率、代碼的測試覆蓋率, 終能準確地給出軟件產品一個完整的質量評估。因此,有效的手段、必要的測試、測試覆蓋率、準確又完整的質量評估是構成“完美測試”的關鍵要素。
1)有效的手段:即以短的時間或少的資源來有效地完成給定的測試任務。自動化測試方法是一種有效的方法,但不一定是有效的,需要具體問題具體分析。自動化測試方法的投入產出比(ROI)在某些測試場合低于手工測試的ROI,例如一次性的軟件項目(而不是產品的系列開發(fā)),這時自動化測試方法往往沒有手工測試效率高。適合用自動化測試方法一定要用自動化測試,該用手工測試的(如軟件產品的易用性測試等)一定用手工測試。
2)必要的測試:沒有執(zhí)行多余的測試任務,也沒有漏掉該執(zhí)行的測試任務。不需要的測試功能模塊、不需要測試的特性、不需要測試的代碼等能被隔離出來,它們會被排除在測試范圍之外;而且能確定代碼改動的影響范圍,能夠確定測試任務的優(yōu)先級,從而根據(jù)有限的資源和時間,完成所需要執(zhí)行的測試任務。如果時間非常有限,完成優(yōu)先級高的那部分測試;如果時間稍微寬松些,完成更多的測試任務,包括優(yōu)先級較高的那部分。如果有足夠的時間,那完成所有任務的測試。
3)測試覆蓋率:沒有覆蓋率的衡量,不能確定測試的效果、不能確定完成了多少應有的測試任務;沒有覆蓋率的衡量,很難知道測試什么時候可以結束;沒有覆蓋率的衡量,難以對測試工作進行評估,甚至難以控制測試的進度。測試覆蓋率包括兩方面:實際用戶需求驗證的覆蓋度和被測試代碼的覆蓋度。
4)準確又完整的質量評估:在完成必要的測試之后,并有能力發(fā)現(xiàn)測試范圍中的軟件缺陷,然后根據(jù)所發(fā)現(xiàn)的缺陷,以及前面所參與的需求評審、設計評審和代碼評審的結果,針對待發(fā)布軟件的各種質量特性做出準確的評估,從而能夠全面地、準確地了解軟件產品的質量,從而能快速地對軟件產品能否發(fā)布做出正確的判斷,對如何持續(xù)改進軟件質量也能提出明確的舉措。
那么,又如何將測試工作做到完美的程度呢?不外乎從人、流程、技術等方面去考慮。人是決定的因素,又是不夠穩(wěn)定的因素,把每個測試工程師都打造成的測試工程師,幾乎不可能。但是,我們打造一支的測試團隊是完全可能的。即團隊的每個成員都有特長,在某個方面有很強的能力、形成互補,這樣,從團隊來看沒有弱項;谝恢У臏y試團隊,我們能建立或引入良好的測試流程,擁有良好的測試方法、技能,終交出一份滿意的答卷。
談到測試流程,首先還得考慮整個組織的研發(fā)流程,測試流程也只能算研發(fā)流程的一部分,需要和產品開發(fā)、項目管理流程和諧共處。如果開發(fā)采用IBM的統(tǒng)一過程模型(RUP),測試流程可以采用迭代的W模型;如果開發(fā)采用敏捷開發(fā),測試也得采用敏捷測試的流程。即使選用W模型或敏捷測試模型,如何細化流程、如何引入佳實踐等問題還是需要仔細考量的,針對不同的團隊、不同的項目類型需要定制、剪裁軟件測試流程。例如,互聯(lián)網(wǎng)創(chuàng)新產品的開發(fā),對軟件缺陷有一定的容忍度,軟件測試強調協(xié)作、靈活和效率,比如某些對于缺陷零容忍度的關鍵系統(tǒng)(如金融系統(tǒng)、交通自動控制系統(tǒng)等)對缺陷是零容忍度,在測試流程上要嚴格、規(guī)范得多。
從技術上看,構建覆蓋整個測試流程的自動化測試框架是重中之重?傮w上看,基于自動化測試的方法能夠提高測試的效率,也能更好地衡量測試覆蓋率,但是自動化測試工具只是工具,很難進行測試需求的分析和設計,測試人員自身的智慧、技術能力依舊是重要的。他們需要理解軟件系統(tǒng)架構的設計、深刻了解軟件實現(xiàn)的技術環(huán)節(jié),包括如何讓開發(fā)人員保證軟件的可測試性,從而找到有效的測試方法,并能在技術上保證測試的順利進行,獲得高效的生產力。
相關推薦

最新發(fā)布
性能測試之測試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項目適合做自動化?自動化測試人員應具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機器人能夠快速響應企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10