在過去半個(gè)世紀(jì),軟件獲得了空前的發(fā)展,逐漸滲透到各個(gè)領(lǐng)域,從早的科學(xué)計(jì)算、文字處理、數(shù)據(jù)庫管理、銀行業(yè)務(wù)處理到工業(yè)自動(dòng)控制和生產(chǎn)、辦公自動(dòng)化、新聞媒體、通信、汽車、消費(fèi)電子、娛樂等等,軟件無處不在,改變了人類生活與生產(chǎn)方式。隨著計(jì)算機(jī)軟件在各行各業(yè)的普及應(yīng)用,人們對軟件質(zhì)量的要求也越來越高,專業(yè)化和多樣化的特點(diǎn)越來越顯著。但同時(shí),我們看到軟件產(chǎn)業(yè)還不夠成熟,軟件質(zhì)量狀況不容樂觀,軟件在運(yùn)行和使用過程中出現(xiàn)的問題還比較多。例如,2008年互聯(lián)網(wǎng)web發(fā)展十大失敗的事件中,其中90%的失敗都是由質(zhì)量問題造成的,與“宕機(jī)”、“停機(jī)”、“崩潰”等一系列嚴(yán)重的質(zhì)量問題聯(lián)系在一起。
  軟件質(zhì)量一直是軟件工程中的一個(gè)焦點(diǎn),成為人們幾十年來不斷研究、探索的領(lǐng)域。為了改善軟件質(zhì)量,人們不僅從企業(yè)文化、軟件過程模型、需求工程、設(shè)計(jì)模式等不同方面來獲取有效的方法和佳的實(shí)踐,而且開始重視軟件測試、在軟件測試上有更多的考慮和投入。雖然質(zhì)量是內(nèi)建的,但軟件測試依舊承擔(dān)著非常重要的作用。軟件測試自身也在發(fā)生變化,已經(jīng)不再只充當(dāng)門衛(wèi)??在軟件發(fā)布之前進(jìn)行檢驗(yàn),而是正在成為一個(gè)持續(xù)的反饋機(jī)制,貫穿軟件開發(fā)的整個(gè)過程,盡早地發(fā)現(xiàn)問題,降低開發(fā)成本,提高軟件開發(fā)生產(chǎn)力。軟件測試人員不再是軟件開發(fā)的輔助人員,而是軟件開發(fā)團(tuán)隊(duì)的主體之一、積極的參與者。從項(xiàng)目開始的第,測試人員參與項(xiàng)目需求和設(shè)計(jì)的討論、評審等各種活動(dòng),盡早發(fā)現(xiàn)軟件需求定義和設(shè)計(jì)實(shí)現(xiàn)上的問題,及時(shí)發(fā)現(xiàn)軟件項(xiàng)目中存在的質(zhì)量風(fēng)險(xiǎn)。軟件開發(fā)團(tuán)隊(duì)必須盡可能地在交付產(chǎn)品之前控制未來的質(zhì)量風(fēng)險(xiǎn),這必然需要依賴于卓有成效的軟件測試。將傳統(tǒng)的程序測試的狹義概念擴(kuò)展到業(yè)界逐漸認(rèn)可的、廣義的軟件測試概念,測試涵蓋了需求驗(yàn)證(評審)、設(shè)計(jì)驗(yàn)證(評審)等活動(dòng)。軟件測試貫穿整個(gè)軟件生命周期,從需求評審、設(shè)計(jì)評審開始,介入到軟件產(chǎn)品的開發(fā)活動(dòng)或軟件項(xiàng)目實(shí)施中,和其它開發(fā)團(tuán)隊(duì)相互協(xié)作、相互補(bǔ)充,構(gòu)成軟件生命周期中的有機(jī)整體。
  作為一名的測試工程師,首先要對測試工作有興趣:測試工作很多時(shí)候都是顯得有些枯燥的,因此熱愛測試工作,才更容易做好測試工作。因此,除了具有前面的專業(yè)技能和行業(yè)知識外,測試人員應(yīng)該具有一些基本的個(gè)人素養(yǎng),即下面的“五心”:
  專心:主要指測試人員在執(zhí)行測試任務(wù)的時(shí)候要專心,不可一心二用。經(jīng)驗(yàn)表明,高度集中精神不但能夠提高效率,還能發(fā)現(xiàn)更多的軟件缺陷,業(yè)績棒的往往是團(tuán)隊(duì)中做事精力集中的那些成員。
  細(xì)心:主要指執(zhí)行測試工作時(shí)候要細(xì)心,認(rèn)真執(zhí)行測試,不可以忽略一些細(xì)節(jié)。某些缺陷如果不細(xì)心很難發(fā)現(xiàn),例如一些界面的樣式、文字等。
   耐心:很多測試工作有時(shí)候顯得非?菰,需要很大的耐心才可以做好。如果比較浮躁,不會(huì)做到“專心”和“細(xì)心”,這將讓很多軟件缺陷從你眼前逃過。
  擔(dān)心:擔(dān)心是做好工作必備的素質(zhì)之一,測試工程師更應(yīng)該將其發(fā)揚(yáng)光大。如果測試中沒有盡到責(zé)任,不去考慮其他事情,不去擔(dān)心測試,甚至敷衍了事,這將會(huì)把測試工作交給用戶來完成,很可能引起非常嚴(yán)重的后果。
  信心:自信心是現(xiàn)在多數(shù)測試工程師都缺少的一項(xiàng)素質(zhì),尤其在面對需要編寫測試代碼等工作的時(shí)候,往往認(rèn)為自己做不到。要想獲得更好的職業(yè)發(fā)展,測試工程師們應(yīng)該努力學(xué)習(xí),建立能“解決一切測試問題”的信心。
  “五心”只是做好測試工作的基本要求,測試人員應(yīng)該具有的素質(zhì)還很多。例如測試人員不但要具有團(tuán)隊(duì)合作精神,而且應(yīng)該學(xué)會(huì)寬容待人,學(xué)會(huì)去理解“開發(fā)人員”,同時(shí)要尊重開發(fā)人員的勞動(dòng)成果??開發(fā)出來的產(chǎn)品。
  一名的測試人員所具備的不僅要做到“五心”還要具有:
  測試的興趣:測試的工作相對來說比較枯燥,如果沒有興趣會(huì)很快乏味;
  個(gè)人的性格:測試的工作需要耐心、細(xì)心、恒心的去對待工作;
  測試的好奇:好奇心是探索問題的根本,好奇能讓bug無所隱形;
  測試的成:每當(dāng)一個(gè)Bug生命周期的介紹那份終結(jié)者的成是可替代的;
  測試的態(tài)度:測試是一個(gè)bug的尋找過程,必須認(rèn)真并且嚴(yán)謹(jǐn);
  測試的責(zé)任:測試是一個(gè)產(chǎn)品質(zhì)量的好壞的評判標(biāo)準(zhǔn);
  軟件測試不是一項(xiàng)簡單的工作,遠(yuǎn)比人們所直觀想象的要復(fù)雜。高效、高質(zhì)量地完成一個(gè)軟件系統(tǒng)的測試,涉及的因素很多,也會(huì)碰到各種各樣的問題,并且要在測試效率和測試風(fēng)險(xiǎn)之間找到佳平衡點(diǎn)和有效的測試策略,這些都需要測試人員一一克服。要做好軟件測試,不僅需要站在客戶的角度思考問題,真正理解客戶的需求,具有良好的分析能力和創(chuàng)造性的思維能力,完成功能測試和用戶界面的測試,而且能理解軟件系統(tǒng)的實(shí)現(xiàn)機(jī)理和各種使用場景,具有扎實(shí)的技術(shù)功底,通過測試工具完成相應(yīng)的性能測試、安全性測試、兼容性測試和可靠性測試等更具挑戰(zhàn)性的任務(wù)。軟件測試主要目的是發(fā)現(xiàn)軟件中的缺陷,堅(jiān)持“質(zhì)量第一”的原則,在實(shí)際操作中會(huì)遇到一些阻力,需要測試人員去克服。從這些角度看,要成為一個(gè)的測試工程師,其實(shí)比對設(shè)計(jì)、編程人員的要求還要高,不僅要體現(xiàn)高超的技術(shù)能力,如系統(tǒng)平臺設(shè)置、架構(gòu)設(shè)計(jì)分析、編程等方面的能力,而且要展示自己的業(yè)務(wù)分析能力、對客戶需求的理解能力和團(tuán)隊(duì)溝通協(xié)作的能力。