目前流行的軟件測試有八項(xiàng)基本原則,這八項(xiàng)基本原則可以指導(dǎo)我們更有效的執(zhí)行軟件測試。

1、應(yīng)當(dāng)把“盡早和不斷的測試”作為開發(fā)者的座右銘

測試應(yīng)該盡早進(jìn)行,好在需求階段開始介入,不要等到軟件產(chǎn)品做完了才開始。

2、程序員應(yīng)該避免檢查自己的程序,軟件測試應(yīng)該由第三方構(gòu)造。程序員對自己的程序已經(jīng)產(chǎn)生抗體,所以測試自己的程序無法測試深層次的缺陷。

3、設(shè)計(jì)測試用例時(shí)應(yīng)該考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要制造極端狀態(tài)和意外狀態(tài),比如網(wǎng)絡(luò)異常中斷,電源斷電等。

4、一定要注意測試中的錯(cuò)誤集中發(fā)生現(xiàn)象,這和程序員的編程水平和習(xí)慣有很大的關(guān)系。測試中存在群集現(xiàn)象,錯(cuò)誤喜歡發(fā)現(xiàn)在相同的模塊以及相關(guān)的開發(fā)人員編寫的程序。

5、對測試錯(cuò)誤結(jié)果一定要有一個(gè)確認(rèn)過程。一般由A測試出來的錯(cuò)誤,一定要有一個(gè)B來確認(rèn)。嚴(yán)重的錯(cuò)誤可以召開評審會(huì)議進(jìn)行討論和分析,對測試的結(jié)果要進(jìn)行嚴(yán)格的確認(rèn),是否真的存在這個(gè)問題,問題的嚴(yán)重程度是否正確等。

6、制定嚴(yán)格的測試計(jì)劃,并把測試時(shí)間安排的盡量寬松。不要希望在極短的時(shí)間內(nèi)完成一個(gè)高水平的測試。一定要制定測試計(jì)劃,但不要為了做測試計(jì)劃文檔而制定測試計(jì)劃,測試計(jì)劃一定要有指導(dǎo)性。

7、回歸測試的關(guān)聯(lián)性一定要引起充分注意。修改一個(gè)錯(cuò)誤而引起更多錯(cuò)誤出現(xiàn)的現(xiàn)象并不少見。

8、妥善保存一切測試過程文檔。測試的重現(xiàn)性往往要靠測試文檔來體現(xiàn)。軟件測試過程中產(chǎn)生的文檔要納入配置管理庫,進(jìn)行嚴(yán)格的版本控制,不能隨意的修改測試文檔,需要制定變更測試文檔的流程。

軟件測試經(jīng)驗(yàn):

1、測試的Good Enough原則。對于相對復(fù)雜的產(chǎn)品或系統(tǒng)來說,zero-bug是一種理想,good-enough則是我們的原則。Good-enough原則是一種權(quán)衡投入/產(chǎn)出比的原則:不充分的測試是不負(fù)責(zé)任的,而過分的測試是一種資源的浪費(fèi),同樣也是一種不負(fù)責(zé)任的表現(xiàn)。我們的操作困難在于,如何界定什么樣的測試是不充分的,什么樣的測試是過分的。針對這種情況,測試人員好制定低測試通過標(biāo)準(zhǔn)和測試內(nèi)容,然后具體問題具體分析。

2、測試的木桶原理和80-20原則。

1)依據(jù)軟件產(chǎn)品全面質(zhì)量管理的概念,產(chǎn)品質(zhì)量的關(guān)鍵因素是分析、設(shè)計(jì)和實(shí)現(xiàn),測試應(yīng)該是融于其中的補(bǔ)充的檢查手段,是提高產(chǎn)品質(zhì)量的必要條件,也是提高產(chǎn)品質(zhì)量直接、uaijie的手段,但決不是一種根本手段。反過來說,如果把提高產(chǎn)品質(zhì)量的砝碼全部押在測試上,那將是一個(gè)漫長而恐怖的災(zāi)難。

2)Bug的80-20原則。一般情況下,在分析、設(shè)計(jì)、實(shí)現(xiàn)階段的復(fù)審和測試工作能夠發(fā)現(xiàn)和避免80%的Bug,而系統(tǒng)測試又能找出其余Bug中的80%,后的4%的Bug可能只有在用戶的大范圍、長時(shí)間的使用之后才會(huì)暴露出來。因?yàn)闇y試只能盡可能多的發(fā)現(xiàn)缺陷,無法保證能發(fā)現(xiàn)所有錯(cuò)誤。

3、測試人員永遠(yuǎn)不要保證什么。在任何時(shí)候都不要表露出有了測試人員或者有了像你一樣的測試人員,產(chǎn)品沒有任何問題了。這是在自己打自己的嘴,測試人員要給自己留個(gè)退路,要表露出謙虛的一面,“盡量少在用戶使用時(shí)發(fā)現(xiàn)問題”,“我會(huì)竭盡全力做好測試工作”。

4、測試人員編寫的文檔是代表自己。測試人員的任何文檔代表的是你本人,所以文檔一定要寫的漂亮,所謂漂亮是要求格式、版面整齊,沒有錯(cuò)別字,語言通順,表達(dá)清楚,沒有歧義,一般的技術(shù)人員都能讀懂你的文檔。

5、測試人員要學(xué)會(huì)逆向思維。開發(fā)人員一般都是從正面滿足需求,比較少去考慮不滿足需求的部分,測試人員要從逆向思維考慮,有哪些是開發(fā)人員沒有考慮到的、不滿足需求的部分。

6、編寫缺陷一定要保證重現(xiàn)。在保證重現(xiàn)缺陷的時(shí)候,要注意缺陷不要描述太?嗦,一般在3-個(gè)步驟要完成操作。

7、測試一定要依據(jù)需求。離開了需求,叫做你根本沒有真正測試被測項(xiàng)目。

8、關(guān)注對用戶不利的缺陷。要更多的考慮用戶能否正確、完整的使用被測軟件,用戶使用這套軟件能夠給他們的工作帶來好處。不要過多考慮用戶不在意的問題。

9、適當(dāng)?shù)囊霚y試工具提高測試效率。完全的手工測試過程是非常浪費(fèi)時(shí)間和資源的,所以測試人員應(yīng)該根據(jù)公司的實(shí)際情況適當(dāng)?shù)囊霚y試工具。一般情況首先引入的是測試管理工具,把整個(gè)測試過程管理起來,然后考慮其他測試工具。

10、測試人員是服務(wù)人員。整個(gè)項(xiàng)目組的人都是測試人員服務(wù)的對象,針對不同的人,我們應(yīng)該提供不同的幫助與協(xié)助。