沒有總結(jié)薇芝,就不能認(rèn)識自己,就不知成功在哪里丰嘉,失敗在哪里夯到;沒有思考,就沒有提高饮亏,沒有進(jìn)步耍贾。
1. 軟件測試的現(xiàn)實(shí)和原則
1.1 測試的現(xiàn)實(shí)
(1).測試始終是一個具有風(fēng)險的工作;
(2).測試不能提高質(zhì)量克滴;
(3).測試人員的素質(zhì)和待遇;
(4).測試時間往往被壓縮优床。
1.2 測試的原則
軟件測試的基本原則是站在用戶的角度劝赔,對產(chǎn)品進(jìn)行全面測試,盡早胆敞、盡可能多地發(fā)現(xiàn)缺陷着帽,并跟蹤和分析產(chǎn)品中的問題杂伟,對不足之處提出質(zhì)疑和改進(jìn)意見。
(1).想用戶所想仍翰。在需求評審和測試階段赫粥,應(yīng)該摒棄產(chǎn)品思想,而從用戶角度去審視當(dāng)前所做的產(chǎn)品予借,是否是用戶迫切需要的越平,實(shí)現(xiàn)方式是否是用戶喜聞樂見的。
(2).盡早和不斷地測試
(3).質(zhì)量第一
可以為時間犧牲質(zhì)量灵迫,但這絕不是長遠(yuǎn)之計(jì)秦叛,質(zhì)量是決定企業(yè)生存的最關(guān)鍵因素
(4).有據(jù)可依
事先定義好產(chǎn)品的質(zhì)量特性指標(biāo),測試時才能有據(jù)可依瀑粥,所以特地的質(zhì)量要求極其指標(biāo)挣跋,都應(yīng)該在產(chǎn)品的需求文檔、設(shè)計(jì)規(guī)格說明書中明確定義狞换,所以需要做需求測試避咆,對于需求不明確的低檔需要產(chǎn)品明確。
(5).測試計(jì)劃是過程修噪,不是一份文檔
(6).測試用例是設(shè)計(jì)出來查库,不是寫出來的
要確保測試用例的質(zhì)量,就需要思考割按,需要畫出工作流圖膨报、數(shù)據(jù)流圖,全面理解產(chǎn)品的特性及其實(shí)現(xiàn)機(jī)制适荣。
(7).窮舉測試是不可能的
(8).發(fā)現(xiàn)缺陷更多的地方现柠,其風(fēng)險更大
(9).重視回歸測試
1.3 軟件測試的多維空間
1.4 軟件測試方法的應(yīng)用之道
軟件測試的眾多方法是辯證統(tǒng)一,相互依賴弛矛、相互獨(dú)立又相互補(bǔ)充够吩,每一種測試方法都有其優(yōu)勢,有其適用的特定環(huán)境丈氓。
1.4.1 白盒測試和黑盒測試
白盒測試適用于獨(dú)立單元周循,耦合性低的模塊,黑盒測試偏重流程万俗,端到端的功能邏輯測試湾笛;
白盒測試可以對程序的每一行語句、每一個條件或分支進(jìn)行測試闰歪,針對性強(qiáng)嚎研,能清楚知道已測試的覆蓋程度;
白盒測試可以檢查代碼程序沒有問題库倘,但不能保證軟件的行為是否完全符合用戶的需要临扮。
1.4.2 ?靜態(tài)測試和動態(tài)測試
靜態(tài)測試時對程序源代碼和各類階段性文檔的成果采用走查论矾、同行評審、會審等方法發(fā)現(xiàn)其中的錯誤杆勇,不運(yùn)行程序贪壳;
動態(tài)測試通過觀察程序運(yùn)行時所表現(xiàn)出來的狀態(tài)、行為等發(fā)現(xiàn)缺陷蚜退;
靜態(tài)測試比動態(tài)測試早闰靴,而且發(fā)現(xiàn)問題時修復(fù)成本低。
1.4.3 手工測試和自動化測試
手工測試發(fā)現(xiàn)的缺陷占比在70%~85%关霸,自動化測試只能發(fā)現(xiàn)15%~30%传黄;
手工測試靈活性強(qiáng),舉一反三能力強(qiáng)队寇,可以設(shè)想出其他一些測試用例膘掰,且執(zhí)行效率高;
自動化測試只能按照事先設(shè)定的測試用例執(zhí)行測試佳遣,其運(yùn)行效率高识埋;
所以實(shí)際中二者是相輔相成的:
新功能、穩(wěn)定性低零渐、變化頻繁的系統(tǒng)適用于手工測試窒舟,而回歸測試、已固化诵盼、的部分則適用于自動化測試惠豺。
1.4.4 有計(jì)劃測試和隨機(jī)測試
計(jì)劃測試是按照測試計(jì)劃設(shè)計(jì)的測試用例,是測試的主旋律风宁,但其受規(guī)格說明書等影響頗大洁墙,設(shè)計(jì)的用例思路有所局限,所以需要隨機(jī)測試來補(bǔ)強(qiáng)戒财;
隨機(jī)測試是一種重要的測試輔助手段热监,在測試中,要留出一定的時間饮寞,且較早安排孝扛;
隨機(jī)測試應(yīng)該是全員參與、全員測試幽崩,鼓勵和調(diào)動各部門積極性苦始,參與測試。
1.4.5 新功能測試和回歸測試
調(diào)查顯示慌申,95%的用戶喜歡功能穩(wěn)定陌选,不要經(jīng)常變化的軟件,只有5%的用戶喜新厭舊,所以從這個意義上說柠贤,回歸測試顯得更為重要。
1.5 測試計(jì)劃的最佳實(shí)踐
(1).在確定測試項(xiàng)目的任務(wù)之前类缤,應(yīng)清楚測試的范圍和測試目標(biāo)臼勉;
(2).讓所有合適的相關(guān)人員參與測試項(xiàng)目的計(jì)劃制定,合格的相關(guān)人員包括產(chǎn)品經(jīng)理餐弱、開發(fā)人員宴霸、技術(shù)支持人員、運(yùn)維和市場膏蚓;
(3).對測試各階段所需要的時間瓢谢、人力及其他資源進(jìn)行預(yù)估,要留有余地驮瞧,一般在10%~15%;
(4).制定測試項(xiàng)目的輸入氓扛、輸出和質(zhì)量標(biāo)準(zhǔn),并和有關(guān)方面達(dá)成一致论笔;
(5).建立變化處理的流程規(guī)范采郎,識別風(fēng)險以及如何控制。
1.6 測試用例設(shè)計(jì)中的最佳實(shí)踐
(1).責(zé)任到人狂魔。資深的測試人員往往更適合測試用例的設(shè)計(jì)工作蒜埋,對模塊熟悉的人更適合測試用例的設(shè)計(jì)工作;
(2).持續(xù)改進(jìn)測試用例最楷;
(3).測試用例設(shè)計(jì)不能局限于輸入數(shù)據(jù)整份。測試用例的設(shè)計(jì)需要綜合考慮軟件的功能特性、測試目標(biāo)籽孙、風(fēng)險等烈评,以及如何根據(jù)測試需求等確定測試用例的結(jié)構(gòu)和設(shè)計(jì)策略、設(shè)計(jì)思路等蚯撩;
(4).盡量避免含糊的础倍、冗長的貨復(fù)雜的測試用例。測試用例需要明確胎挎、準(zhǔn)確沟启;
(5).類似功能的用例抽象并歸類。好的測試用例應(yīng)該能代表一組同類的數(shù)據(jù)或相似的數(shù)據(jù)處理邏輯,此處可以借助測試用例思路設(shè)計(jì)來做叛本。
1.7 測試自動化中的最佳實(shí)踐
(1).準(zhǔn)確的認(rèn)識野哭、切合實(shí)際的目標(biāo)和切入點(diǎn)
自動化測試知識手工測試的一種補(bǔ)充,自動化測試宜先易后難胳搞,從最基本的模塊、最基本的功能推進(jìn),有足夠的時間進(jìn)行測試腳本的開發(fā)肌毅;
(2). 把測試腳本開發(fā)納入整個軟件開發(fā)體系
流程上筷转,自動化測試工作在想媽媽啟動時就開始介入;
白盒測試工具需要開發(fā)使用后有對應(yīng)的測試報告悬而;
自動化測試工具測試的測試用例不需要再進(jìn)行手工測試呜舒,將自動測試與手工測試有效的結(jié)合,并在最終的測試報告中體現(xiàn)自動化測試結(jié)果笨奠;
測試腳本需要積極創(chuàng)造條件構(gòu)造數(shù)據(jù)驅(qū)動的腳本和結(jié)構(gòu)化腳本袭蝗,并通過關(guān)鍵詞驅(qū)動將測試的邏輯層分離出來。同時將測試用例和測試腳本寫入數(shù)據(jù)庫般婆,并進(jìn)行動態(tài)管理到腥;
(3).降低測試自動化的投入、提高其產(chǎn)出
可自動化測試模塊選擇上有講究蔚袍;
測試腳本數(shù)據(jù)驅(qū)動乡范、關(guān)鍵字驅(qū)動;
測試和腳本開發(fā)合二為一啤咽;