田麗芳 劉 栓
摘要:近幾年來(lái),人們?cè)絹?lái)越重視軟件測(cè)試,軟件測(cè)試工作也越來(lái)越“熱”,但很多人在學(xué)習(xí)軟件測(cè)試的過(guò)程當(dāng)中走了不少?gòu)澛?。本文?duì)軟件測(cè)試領(lǐng)域的現(xiàn)狀和誤區(qū)進(jìn)行了闡述,并對(duì)學(xué)習(xí)軟件測(cè)試的過(guò)程和方法進(jìn)行了深入探討,最后提供了一些軟件測(cè)試技巧以供參考。
關(guān)鍵詞:軟件測(cè)試;誤區(qū);黑盒測(cè)試;測(cè)試用例
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
隨著軟件產(chǎn)業(yè)的發(fā)展、軟件規(guī)模的逐步擴(kuò)大,軟件的質(zhì)量問(wèn)題日漸突顯,軟件測(cè)試與軟件質(zhì)量監(jiān)控也越來(lái)越受到軟件行業(yè)的重視。各類招聘信息中對(duì)軟件測(cè)試類人才的需求猛增,很多人由此而選擇了軟件測(cè)試,但其中不少人始終未能拿到軟件測(cè)試行業(yè)的“入場(chǎng)券”,原因何在?軟件測(cè)試行業(yè)是一個(gè)高速發(fā)展的新興行業(yè),盡管當(dāng)下認(rèn)知程度不高,但有著廣闊的發(fā)展前景。如何才能更有效地進(jìn)入軟件測(cè)試領(lǐng)域是本文的研究重點(diǎn)所在。
1軟件測(cè)試的誤區(qū)
軟件測(cè)試不斷受到重視,但總體上,國(guó)內(nèi)軟件項(xiàng)目過(guò)程不夠規(guī)范,對(duì)軟件測(cè)試的重要性、測(cè)試方法和流程等還存在很多錯(cuò)誤的認(rèn)識(shí),以致很多人在軟件測(cè)試領(lǐng)域走了不少?gòu)澛?。?duì)于測(cè)試人員以及準(zhǔn)備進(jìn)入軟件測(cè)試領(lǐng)域的人員來(lái)說(shuō),首先必須認(rèn)清并更正這些錯(cuò)誤觀點(diǎn)。
(1) 誤區(qū)一:軟件開(kāi)發(fā)完成后才開(kāi)始進(jìn)行軟件測(cè)試
軟件從開(kāi)始計(jì)劃、編制、測(cè)試,一直到公開(kāi)使用的過(guò)程中都可能存在軟件缺陷。事實(shí)證明,需求規(guī)格說(shuō)明書(shū)是導(dǎo)致軟件缺陷的最大原因。隨著時(shí)間的推移,修復(fù)軟件缺陷的費(fèi)用呈幾何級(jí)數(shù)增長(zhǎng)。
(2) 誤區(qū)二:軟件發(fā)布后如果發(fā)現(xiàn)質(zhì)量問(wèn)題,那是軟件測(cè)試人員的錯(cuò)
軟件測(cè)試只能確認(rèn)軟件存在錯(cuò)誤,不能保證軟件沒(méi)有錯(cuò)誤。軟件的高質(zhì)量不是軟件測(cè)試人員測(cè)出來(lái)的,是靠軟件生命周期的各個(gè)過(guò)程設(shè)計(jì)出來(lái)的。應(yīng)該分析軟件項(xiàng)目的各個(gè)過(guò)程,從過(guò)程改進(jìn)方面尋找產(chǎn)生錯(cuò)誤的原因和改進(jìn)的措施。
(3) 誤區(qū)三:軟件測(cè)試要求不高,隨便找個(gè)人都可以完成這項(xiàng)工作
軟件測(cè)試涉及很多領(lǐng)域,簡(jiǎn)單的點(diǎn)點(diǎn)鼠標(biāo)、按按鍵盤(pán)的工作根本無(wú)法達(dá)到軟件測(cè)試的目的,若想立足于軟件測(cè)試領(lǐng)域必須掌握和學(xué)習(xí)很多方面的知識(shí)。
(4) 誤區(qū)四:項(xiàng)目進(jìn)度吃緊時(shí)少做些測(cè)試,時(shí)間富裕時(shí)多做測(cè)試
縮短測(cè)試時(shí)間會(huì)導(dǎo)致測(cè)試不完整,無(wú)法達(dá)到測(cè)試的目的,測(cè)試效果也將大打折扣。軟件項(xiàng)目過(guò)程應(yīng)該是有計(jì)劃的、可控制的,若項(xiàng)目過(guò)程管理混亂必然會(huì)降低軟件測(cè)試的質(zhì)量。
(5) 誤區(qū)五:自動(dòng)測(cè)試將取代手工測(cè)試
自動(dòng)測(cè)試速度快、效率高、準(zhǔn)確度和精確度高。但動(dòng)測(cè)試只能測(cè)試某些軟件的部分特性,且無(wú)法靈活處理意外事件。手工測(cè)試可以更好地發(fā)揮人的主觀能動(dòng)性、靈活性、隨機(jī)應(yīng)變性,可以更好地適應(yīng)并處理突發(fā)事件。無(wú)論自動(dòng)測(cè)試技術(shù)多么發(fā)達(dá),自動(dòng)測(cè)試也不能取代手工測(cè)試。
2學(xué)習(xí)軟件測(cè)試的過(guò)程和方法研究
不同知識(shí)基礎(chǔ)的人,學(xué)習(xí)軟件測(cè)試技術(shù)、進(jìn)入軟件測(cè)試領(lǐng)域的感受也有所不同,很多人在學(xué)習(xí)軟件測(cè)試知識(shí)的過(guò)程中非常盲目,沒(méi)有計(jì)劃、沒(méi)有方向,學(xué)習(xí)效率低下。在此,本人對(duì)學(xué)習(xí)軟件測(cè)試的過(guò)程和方法進(jìn)行總結(jié)、研究和探討,以作交流學(xué)習(xí)之用。
2.1學(xué)習(xí)軟件測(cè)試的過(guò)程
(1) 第一步明確測(cè)試目的
有目的才有動(dòng)力,有目標(biāo)才有方向。軟件測(cè)試就是對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明、程序代碼以及軟件其他相關(guān)產(chǎn)品進(jìn)行測(cè)試的過(guò)程,是軟件質(zhì)量保證的關(guān)鍵步驟。明確軟件測(cè)試的目的和目標(biāo)才能準(zhǔn)確的定位測(cè)試并更有效的進(jìn)行測(cè)試。
(2) 第二步結(jié)合實(shí)際項(xiàng)目,學(xué)習(xí)掌握測(cè)試方法、合理設(shè)計(jì)測(cè)試用例
常用的測(cè)試方法有黑盒測(cè)試和白盒測(cè)試。黑盒測(cè)試在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,針對(duì)軟件界面和軟件功能等進(jìn)行測(cè)試,是最基本的測(cè)試方法。白盒測(cè)試允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息設(shè)計(jì)或選擇測(cè)試用例進(jìn)行測(cè)試。準(zhǔn)確的理解和掌握這些技術(shù)及其相互關(guān)系是進(jìn)行軟件測(cè)試的前提。
測(cè)試是有風(fēng)險(xiǎn)的行為,完全測(cè)試是不可能的。軟件測(cè)試用例是進(jìn)行測(cè)試的核心,是測(cè)試人員測(cè)試過(guò)程中的重要參考依據(jù),它的組織和編寫(xiě)關(guān)系到整個(gè)測(cè)試工作和思路的正確性、有效性。測(cè)試用例的組織性和條理性是軟件測(cè)試成功的一個(gè)重要因素。因此,在學(xué)習(xí)軟件測(cè)試的過(guò)程中,要準(zhǔn)確的把握測(cè)試方法并有條理的組織和設(shè)計(jì)測(cè)試用例。
同時(shí),軟件測(cè)試重在實(shí)踐。理論的掌握只能達(dá)到紙上談兵的功效,若想真正領(lǐng)悟測(cè)試技術(shù)的真諦還需進(jìn)行實(shí)際的項(xiàng)目測(cè)試。結(jié)合具體的測(cè)試項(xiàng)目,靈活運(yùn)用各種測(cè)試方法組織編寫(xiě)測(cè)試用例可以幫助初學(xué)者更好的理解和掌握這些技術(shù)。
(3) 第三步熟悉測(cè)試步驟
一個(gè)完整的軟件測(cè)試過(guò)程包括測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)、測(cè)試開(kāi)發(fā)、測(cè)試執(zhí)行、缺陷跟蹤和測(cè)試評(píng)估。軟件測(cè)試管理工具可以系統(tǒng)地控制整個(gè)測(cè)試過(guò)程,實(shí)現(xiàn)從測(cè)試需求、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行和缺陷跟蹤所有操作的全方位跟蹤管理,并為這幾個(gè)部分提供了關(guān)聯(lián)機(jī)制,使整個(gè)測(cè)試管理過(guò)程更加簡(jiǎn)單和有組織。在此,本人建議在學(xué)習(xí)軟件測(cè)試技術(shù)的過(guò)程中,以一個(gè)測(cè)試管理工具(例:TestDirector)為平臺(tái)進(jìn)行測(cè)試實(shí)踐,用心體會(huì)一個(gè)完整的測(cè)試過(guò)程。
(4) 第四步了解測(cè)試階段
軟件測(cè)試從軟件需求階段就已介入,基本貫穿軟件項(xiàng)目開(kāi)發(fā)全程,不同階段有不同的測(cè)試點(diǎn),需要不同的測(cè)試方法和技術(shù)。軟件測(cè)試可以大致分為需求評(píng)審、單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試( 測(cè)試/ 測(cè)試)這幾個(gè)階段。明確各個(gè)階段的測(cè)試目的和內(nèi)容才能選擇相對(duì)合適的方法進(jìn)行測(cè)試。
(5) 第五步測(cè)試技術(shù)的提高和升級(jí)
軟件自動(dòng)化測(cè)試是一項(xiàng)讓計(jì)算機(jī)代替測(cè)試人員進(jìn)行軟件測(cè)試的技術(shù),通常借助測(cè)試工具來(lái)執(zhí)行。自動(dòng)化測(cè)試可以模擬軟件實(shí)際運(yùn)行效果,測(cè)試效率高、準(zhǔn)確度和精確度高、可以持續(xù)測(cè)試而無(wú)須休息,彌補(bǔ)了手工測(cè)試的不足。
性能被列為系統(tǒng)質(zhì)量的重要指標(biāo),并越來(lái)越受到人們的重視。性能測(cè)試是對(duì)軟件性能的表現(xiàn)進(jìn)行測(cè)試,較功能測(cè)試更難實(shí)現(xiàn)。
在掌握基本的測(cè)試方法和技術(shù)之后,可以繼續(xù)深入研究自動(dòng)化測(cè)試和性能測(cè)試,提高測(cè)試水平和測(cè)試能力。
2.2學(xué)習(xí)軟件測(cè)試的方法
學(xué)習(xí)方法的好壞和學(xué)習(xí)習(xí)慣對(duì)學(xué)習(xí)效果的影響非常大,以下是軟件測(cè)試初學(xué)者需要注意的幾個(gè)地方:
(1) 勤學(xué)好問(wèn)、充分利用各類學(xué)習(xí)資源
問(wèn)題積累是學(xué)習(xí)的攔路虎。時(shí)間越久,問(wèn)題越多,給學(xué)習(xí)造成了很大的阻力,更甚者會(huì)讓初學(xué)者心生放棄。三人行必有我?guī)?勤學(xué)好問(wèn),不要滋生“歷史”遺留問(wèn)題。當(dāng)然,對(duì)于一個(gè)復(fù)雜問(wèn)題,如果在短時(shí)間內(nèi)無(wú)法理解透徹時(shí),可以先簡(jiǎn)單的了解,然后在之后的學(xué)習(xí)和實(shí)踐過(guò)程中慢慢體會(huì)其含義。由簡(jiǎn)入繁,勿鉆“牛角尖”。
軟件測(cè)試的學(xué)習(xí)資源非常豐富,書(shū)籍、網(wǎng)站、論壇、技術(shù)交流群等唾手可得。充分利用這些資源可以縮短學(xué)習(xí)和解決問(wèn)題的周期,使學(xué)習(xí)更加高效。
(2) 實(shí)踐出真知
實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。要想真正學(xué)會(huì)測(cè)試,必須進(jìn)行實(shí)際的測(cè)試。不要說(shuō)沒(méi)有測(cè)試環(huán)境,想學(xué)的話,完全可以自己搭建環(huán)境。有了行動(dòng)才能有收獲。
(3) 切莫“閉門(mén)造車(chē)”
軟件測(cè)試技術(shù)是解決實(shí)際軟件測(cè)試問(wèn)題的技術(shù),與現(xiàn)實(shí)世界密切相關(guān),盲目的學(xué)習(xí)可能適得其反。因此,應(yīng)多關(guān)注軟件測(cè)試行業(yè)的動(dòng)態(tài),了解軟件測(cè)試行業(yè)的真正需求,有目的的學(xué)習(xí)。
(4) 細(xì)心、耐心
軟件測(cè)試是對(duì)人技術(shù)和意志的一種考驗(yàn),不細(xì)心就有可能與缺陷擦肩而過(guò),沒(méi)有耐心就無(wú)法將枯燥的測(cè)試進(jìn)行到底。只有充分的細(xì)心和耐心才能適應(yīng)和完成軟件測(cè)試工作。
(5)“懷疑”精神
定性思維往往是發(fā)生錯(cuò)誤的根源,對(duì)于軟件測(cè)試人員來(lái)說(shuō),更應(yīng)該具有“懷疑”精神,要考慮每個(gè)細(xì)節(jié),不要想當(dāng)然地接受任何假設(shè)。
(6) 溝通能力
軟件測(cè)試人員必須具有良好的人際關(guān)系和溝通能力。由于軟件測(cè)試工作的特殊性,軟件測(cè)試人員在項(xiàng)目小組中并不受歡迎。由于需要經(jīng)常和開(kāi)發(fā)人員、測(cè)試組其他成員進(jìn)行溝通,軟件測(cè)試人員說(shuō)話辦事必須穩(wěn)重得當(dāng),不能隨意指責(zé)別人,否則會(huì)事倍功半,影響軟件測(cè)試的效率。在學(xué)習(xí)軟件測(cè)試的過(guò)程中,應(yīng)把握各種機(jī)會(huì),多與人進(jìn)行溝通和交流。
3軟件測(cè)試的常用技巧
軟件測(cè)試雖然辛苦,但掌握一定技巧后將事半功倍。
(1) 邊界測(cè)試
邊界是最容易出錯(cuò)的地方。在進(jìn)行軟件測(cè)試時(shí),應(yīng)測(cè)試臨近邊界的合法數(shù)據(jù)(即最后一個(gè)可能合法的數(shù)據(jù),以及剛超過(guò)邊界的非法數(shù)據(jù))。
(2) 非法測(cè)試
人們?cè)诓涣私廛浖δ芑蚴褂梅椒ǖ那闆r下,經(jīng)常會(huì)不經(jīng)意地輸入一些非法數(shù)據(jù)或進(jìn)行一些非法操作而導(dǎo)致軟件出現(xiàn)意外情況。因此,在進(jìn)行軟件測(cè)試的過(guò)程當(dāng)中,應(yīng)考慮進(jìn)行類似的非法測(cè)試。例如在輸入數(shù)字的地方輸入字符、輸入郵件地址的地方輸入非法格式的數(shù)據(jù)、進(jìn)行一些不合理的操作等。
(3) 接口測(cè)試
程序往往在接口的地方發(fā)生錯(cuò)誤,在進(jìn)行相關(guān)測(cè)試時(shí)切勿掉以輕心。
(4) 代碼重用測(cè)試
在開(kāi)發(fā)過(guò)程中有些模塊功能幾乎相同,程序員在重用代碼時(shí)可能忘記在原有代碼的基礎(chǔ)上作修改或修改不全面而引發(fā)錯(cuò)誤。在測(cè)試的過(guò)程中應(yīng)更加留意這方面的測(cè)試。
(5) 失效恢復(fù)測(cè)試
當(dāng)意外(如網(wǎng)絡(luò)突然中斷、系統(tǒng)崩潰等)發(fā)生時(shí),用戶能否繼續(xù)使用系統(tǒng),用戶將受到多大的影響也是測(cè)試要考慮的問(wèn)題。
4結(jié)束語(yǔ)
軟件測(cè)試是一個(gè)入門(mén)易、深入難的工作。學(xué)習(xí)軟件測(cè)試技術(shù)沒(méi)有捷徑可言,一點(diǎn)點(diǎn)的努力才是正道。學(xué)習(xí)過(guò)程是指引,學(xué)習(xí)方法是手段,希望以上的方法和技巧能夠給大家以啟迪,也希望更多有識(shí)之士能夠與我們共同徜徉在軟件測(cè)試這五彩繽紛的世界之中。
參考文獻(xiàn):
[1] 把冉. 軟件測(cè)試行業(yè)特別調(diào)查[J]. 中國(guó)經(jīng)濟(jì)信息,2008(9):76-77.
[2] (美)Ron Patton. 軟件測(cè)試[M]. 周予濱,姚靜,等譯. 北京:機(jī)械工業(yè)出版社,2008.
[3] 路璐,王文莉. 淺談軟件測(cè)試技術(shù)[J]. 鄭州鐵路職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,19(2):41-42.
[4] 黃茗云,王英龍,張洪亮. 軟件測(cè)試熱點(diǎn)淺析[J]. 研究與探討,2008(2):57-29.
[5] 康鋒. 軟件系統(tǒng)性能測(cè)試規(guī)劃[J]. 大眾科技,2007(8):65-66.
Research on Learning Process and Learning Method of Software Testing
TIAN Li-fang, LIU Shuan
(Department of Computer Science, Huanghuai University, Zhu Madian 463000, China)
Abstract: In the last few years, people pay more attention to software testing, and this kind of work becomes more and more popular. However, many people took many tortuous paths in studying software testing technology. This paper carried on the elaboration to the software testing domain's present situation and the erroneous zone, and did in-depth research on how to learn software testing technology more efficiently from two aspects study process and methods. Finally, it provided a number of software testing techniques for reference.
Key words: software testing; erroneous zone; black box testing; test case