我們團(tuán)隊WP7上基于Academic Search 的會議助手手機(jī)客戶端的alpha版本已經(jīng)結(jié)束。在團(tuán)隊中,限于團(tuán)隊規(guī)模,每個人都會做點dev的事情,但是 我的為主要的角色是tester,以前從未做過tester,一個月的alpha版本開發(fā)下來,我在tester的崗位上也有許多的感想,我想,把它們都記下了,希望它見證我們的成長,當(dāng)然,希望能夠得到大家的指點,從眾人的認(rèn)知領(lǐng)域獲得我們能汲取的經(jīng)驗和知識。

  理論上我們學(xué)到了什么?

  我想,人們對于test基本的認(rèn)識,莫過于嘗試使用軟件,找出bug。事實上,真正做測試的時候要有很規(guī)范的流程。我簡要的挑幾個概念跟大家分享一下。

  1)測試計劃:測試計劃描述測試活動的主要方面,why?what?who?when?。詳細(xì)的說包含一下方面:

  測試的策略和方法、測試日程安排、質(zhì)量目標(biāo)、資源、測試變量矩陣。

  2)什么是測試變量矩陣:

  簡單的說,測試變量矩陣是通過考量用戶類型,系統(tǒng)的OS,語言,瀏覽器類型,網(wǎng)絡(luò)情況等各種因素,來確定測試變量數(shù)目以后列出的一個表格,測試變量矩陣是測試人員進(jìn)行測試的藍(lán)本。

  3)軟件測試的方法:

  這里首先澄清一下,我們常說的黑箱測試和白箱測試其實并不是指的某種軟件測試的方法,它們是兩類軟件測試設(shè)計的方法。我們OMG團(tuán)隊在alpha版本里主要采用的軟件測試方法集中在功能測試和非功能測試。

  軟件測試方法,按功能測試分類,有單元測試(驗證測試每個單元程序的正確性)、模塊功能測試(測試每個模塊的功能)、集成測試(幾個相互依賴的模塊的功能的測試)、場景測試(驗證能否完成特定的用戶場景)、系統(tǒng)測試和alpha測試(alpha發(fā)布在實際的用戶環(huán)境中對軟件測試)。而非功能測試包括負(fù)載測試,效能測試,本地化/全球化測試,兼容性測試,配置測試,易用性測試和軟件安全測試等。

  當(dāng)然,軟件測試的方法還有很多,包括代碼覆蓋率測試(PS:對于新手的我來說,我真不知道如何設(shè)計代碼覆蓋測試方法。。。求高人指點)、驗收測試、回歸測試、“探索式”測試等等。

  作為tester有何工作感想?

  首先,我想說,主要角色是tester, 盡管我做的dev的工作相對較少,但是,我不覺得自己比別人貢獻(xiàn)的少。

  很多人會有種執(zhí)念,做軟件開發(fā),不做dev似乎沒有動力。其實,通過一個月的實踐,我覺得,社會本是高度分工的。tester在一個軟件開發(fā)中起到的作用也是不可忽視的。很簡單,如果不做各種測試,軟件性能如何去評測?如何保證后release的產(chǎn)品能夠很好的滿足用戶的需求?

  其次,test工作并沒有想象中的那么容易。

  一開始,接手tester的角色,心里想自己的工作壓力應(yīng)該是比較小的。事實證明,真正用心去做好一個tester,還是需要付出很多的努力。在產(chǎn)品的計劃階段,tester要討論測試計劃,調(diào)研和收集用戶對軟件的非功能性需求,比如軟件的效能,易用性等的信息,確定我們的非功能性測試標(biāo)準(zhǔn);在開發(fā)階段,tester需要及時的進(jìn)行BVT(Build Verification Test),及時提交bug給dev,另外,作為tester,需要想很多“探索性測試”的例子,隨機(jī)的驗證軟件的穩(wěn)定性和魯棒性;而當(dāng)進(jìn)入穩(wěn)定階段后,尤其是alpha版本發(fā)布后,tester需要收集用戶的alpha試用反饋,確定beta版本的測試標(biāo)準(zhǔn)。

  后也是重要的一點,tester應(yīng)該有怎么樣的素質(zhì)。

  做了把tester,才知道,tester不是那么好做的,當(dāng)然,自己水平是那么那么的有限,所掌握的和接觸的知識也是比較少的。結(jié)合我的工作體驗,我發(fā)現(xiàn)了一下幾點:

  1、足夠細(xì)心、耐心和信心。

  首先你得相信自己有足夠的創(chuàng)造性和好奇心,要相信自己能挑出軟件的bug。然后你才有動力去嘗試各種可能的case,如果沒有了好奇心,打打醬油或許某個bug不經(jīng)意間溜走了。而耐心和細(xì)心是做好任何工作的基礎(chǔ)。tester的工作,更是這樣,試想一下,某個功能或者某個用戶場景,你需要盡可能多的設(shè)想各種test case去挑剔它,其實,有時候并不是那么的有意思的事情。

  2、見多識廣,基礎(chǔ)要好。

  我作為一個非CS專業(yè)的tester,更是對這一點體會有嘉。tester在設(shè)計黑箱測試方法的時候還更多地依賴創(chuàng)造性好奇心等。然而做白箱測試,代碼的結(jié)構(gòu)其實是對你透明的,能不能專業(yè)的分析代碼結(jié)構(gòu),能不能敏銳的察覺代碼中可能的風(fēng)險或紕漏,這是考驗一個tester專業(yè)技能的時候了。另外,見多識廣很重要,tester要是能了解IT的各個方向,背景知識比較的多,對他來說,設(shè)計更好更有創(chuàng)造性的test case是相當(dāng)有利的。

  3、學(xué)習(xí)與鉆研精神。

  取人之長,補(bǔ)己之短,他山之石,可以攻玉。老祖宗都說爛了。但是,我的經(jīng)歷又一次檢驗了它。我從一開始連test plan都不知道如何下筆,到寫下這篇日志,我覺得,這是從學(xué)習(xí)的過程中積累下來的,盡管我剛剛接觸它,我的這些文字看上去顯得稚嫩而有淺顯,但是,學(xué)習(xí)讓我成長,我也相信,學(xué)習(xí)能讓每一個都或者成功,或者成長。與君共勉。