盧建軍,蘇 寧
LU Jian-jun1, SU Ning2
(1.西安郵電學(xué)院 通信學(xué)院,西安 710061;2.西安科技大學(xué) 通信學(xué)院,西安 710054)
隨著科技的進(jìn)步,手機(jī)與我們的關(guān)系已經(jīng)到了密不可分的地步,手機(jī)扮演著通訊工具、多媒體、網(wǎng)絡(luò)等多方面的角色。同時(shí),用戶對手機(jī)軟件的質(zhì)量、性能也提出了更高的要求。在商業(yè)模式的驅(qū)動下,手機(jī)的開發(fā)周期不斷的縮短,更要確保手機(jī)軟件質(zhì)量。產(chǎn)品的軟件質(zhì)量與手機(jī)廠商的切身利益、市場競爭力和信譽(yù)度息息相關(guān)[1]。目前我國的手機(jī)軟件測試的發(fā)展還處于剛剛起步的階段。國內(nèi)的手機(jī)廠商對手機(jī)軟件測試的理解不夠,在軟件測試上投入的精力不夠,因此不能制定出詳盡的手機(jī)軟件測試流程及測試策略來完成手機(jī)的軟件測試工作。本文針對這一現(xiàn)象結(jié)合作者的實(shí)際工作經(jīng)驗(yàn),對手機(jī)軟件測試的流程和策略進(jìn)行的初步的探討。
手機(jī)軟件測試是一個(gè)迭代的循環(huán)往復(fù)的過程。事實(shí)證明,測試工作的早期介入,可提早發(fā)現(xiàn)錯(cuò)誤,避免不必要的生產(chǎn)花費(fèi)和資源投入,因此手機(jī)軟件測試將會從開發(fā)初期開始伴隨整個(gè)手機(jī)軟件開發(fā)的生命周期。手機(jī)軟件開發(fā)采用的是面向?qū)ο蟮拈_發(fā)方法,它的生命周期模型是迭代生命周期模型(Iterative Lifecycle Model)。
1.2.1 需求分析階段
測試人員與設(shè)計(jì)人員一起參加需求調(diào)研,編寫軟件質(zhì)量需求,制定測試計(jì)劃,盡早發(fā)現(xiàn)軟件設(shè)計(jì)上存在的缺陷和任務(wù)書上不合邏輯的地方。
1.2.2 設(shè)計(jì)階段
與設(shè)計(jì)人員一起參加軟件結(jié)構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì),熟悉設(shè)計(jì)方案,制定測試方案。
1.2.3 實(shí)現(xiàn)階段
即是軟件編碼與單元模塊測試階段,對于手機(jī)測試而言,每個(gè)功能模塊即是軟件測試的最小單位劃分,測試人員編寫測試用例對某一功能模塊進(jìn)行測試。
1.2.4 回顧階段
開發(fā)人員同測試人員一起對該階段軟件進(jìn)行評估,回顧軟件需求、改變或增加新的需求說明。自此,一個(gè)開發(fā)測試迭代完成[2]。
在完成兩到三個(gè)模塊的迭代及單元測試以后,將開始集成測試。把各模塊集成在一起時(shí),測試它們是否正常運(yùn)行。集成測試介于單元測試和系統(tǒng)測試之間,起到“橋梁作用”[3]。迭代次數(shù)增加,軟件逐步成熟的時(shí)候,測試將轉(zhuǎn)入系統(tǒng)測試。系統(tǒng)測試一般由獨(dú)立測試人員執(zhí)行,通常采用黑盒測試方式。粒度最大,主要測試系統(tǒng)是否符合“需求規(guī)格說明書”[4]。循環(huán)到當(dāng)在一段時(shí)間內(nèi)測試出來的缺陷穩(wěn)定維持在一個(gè)較少的水平線上,且出現(xiàn)的問題足以忽略時(shí),可認(rèn)為系統(tǒng)已初步穩(wěn)定,即交付驗(yàn)收測試[5]。
在測試一款產(chǎn)品的時(shí)候編寫的測試用例要緊扣需求上描述的基本功能,少量的涉及到使用頻率較高的功能交互,不涉及界面布局等GUI元素。這樣做的好處是測試用例沒有跟某一款產(chǎn)品的關(guān)聯(lián)太緊,支持在同一個(gè)系統(tǒng)平臺衍生出不同的很多款手機(jī),完成同一系列的用例可以完全或部分復(fù)用于整個(gè)平臺的其他產(chǎn)品,從而減少勞動力,縮短開發(fā)周期,降低商業(yè)成本[6]。當(dāng)然,不同的硬件產(chǎn)品一定要有不同的測試側(cè)重點(diǎn),由于硬件不同引起的問題不同的例子也不在少數(shù)。
設(shè)計(jì)的所有用例將形成一個(gè)測試用例庫,在每個(gè)迭代開始的時(shí)候,測試組長都會選取一部分用例組成測試用例集進(jìn)行測試,選取的用例通常分兩部分:一部分是基本功能的用例,保證這次迭代的軟件能夠?qū)崿F(xiàn)最基本的功能;還有一部分是上次迭代時(shí)發(fā)現(xiàn)錯(cuò)誤比較多的模塊,在開發(fā)人員修改以后做一次比較集中的回歸測試。
手機(jī)軟件是一個(gè)比較復(fù)雜的系統(tǒng),僅僅靠測試用例里針對基本功能的測試是遠(yuǎn)遠(yuǎn)不夠的,用戶經(jīng)常會在不知情或有需要的情況下打開很多個(gè)應(yīng)用程序,或正在運(yùn)行某個(gè)應(yīng)用程序的時(shí)候有其他的手機(jī)跟他進(jìn)行交互,這就產(chǎn)生了交互測試。這部分測試主要是通過測試人員常年積累的測試經(jīng)驗(yàn)和對錯(cuò)誤的敏感度來發(fā)現(xiàn)錯(cuò)誤的。
在測試中發(fā)現(xiàn)問題固然重要,但是在發(fā)現(xiàn)之后編寫錯(cuò)誤報(bào)告同樣不可忽視。一個(gè)好的錯(cuò)誤報(bào)告可以引導(dǎo)開發(fā)人員找到問題根源,及時(shí)解決問題。編寫錯(cuò)誤報(bào)告時(shí)一定要做到客觀,真實(shí),詳細(xì)。詳細(xì)描述問題發(fā)生的環(huán)境,步驟,版本,重現(xiàn)率,等等,并且只做到客觀的描述問題現(xiàn)象,不做任何沒有根據(jù)的猜測,以免誤導(dǎo)開發(fā)人員。在有能力的情況下,提供錯(cuò)誤記錄,協(xié)助開發(fā)人員重現(xiàn)問題,確定問題本質(zhì)。
報(bào)告錯(cuò)誤以后要定期追蹤所報(bào)錯(cuò)誤狀態(tài),與開發(fā)人員溝通,確定錯(cuò)誤修改進(jìn)程。若錯(cuò)誤修正,及時(shí)在新版本上對錯(cuò)誤進(jìn)行回歸測試。
在白盒測試中交叉使用黑盒測試,在黑盒測試中交叉使用白盒測試的方法稱為灰盒測試。灰盒測試就是介于白盒測試和黑盒測試之間的測試,最常見的灰盒測試是集成測試[7]。測試人員可以在既通過用戶界面測試又了解軟件功能的源代碼程序怎樣設(shè)計(jì)的情況下,有的放矢的進(jìn)行某種確定的條件/功能測試[8,9]。
當(dāng)手機(jī)的某些可用資源達(dá)到或者超過理論允許的極大值時(shí),在手機(jī)上繼續(xù)進(jìn)行某種操作時(shí)候的測試,此時(shí)手機(jī)的行為應(yīng)該是友好的,可被用戶接受的。
手機(jī)功能眾多,回歸測試工作量大,且測試中常碰到很多重復(fù)性高的工作,手動執(zhí)行的話費(fèi)時(shí)費(fèi)力,也容易讓測試人員產(chǎn)生疲倦甚至是厭倦心理,很容易造成測試的遺漏。如果能有一套自動執(zhí)行的機(jī)制,將能大大提高測試的效率。
性能測試主要測試手機(jī)的反應(yīng)速度是否達(dá)到標(biāo)準(zhǔn)。它通過計(jì)算手機(jī)在完成一個(gè)操作所用的時(shí)間來衡量[10]。
手機(jī)軟件自動化測試工具Brat是一個(gè)手機(jī)自動化測試的平臺,它通過手機(jī)驅(qū)動端口連接手機(jī)與PC,由Tcl腳本語言搭載其中,完成測試化腳本的開發(fā)。Brat具有腳本可視化顯示、控制腳本循環(huán)操作批量操作、判斷測試用例是否通過和產(chǎn)生運(yùn)行日志的功能。
3.2.1 測試用例的編寫、執(zhí)行
如表1測試用例。
表1 測試用例
3.2.2 測試結(jié)果
Brat運(yùn)行完發(fā)送短信500遍以后的結(jié)果如圖1所示,可見測試Pass。Brat還可提供運(yùn)行的日志記錄,以便在運(yùn)行Fail的時(shí)候查找問題原因。
圖1 自動化用例執(zhí)行結(jié)果
本文通過對在實(shí)際工作中總結(jié)的手機(jī)軟件測試的流程和策略的探討,給予我國手機(jī)軟件測試流程和策略一定的參考,說明了規(guī)范流程和拓展策略的重要性。并采用自動化測試方法進(jìn)行了實(shí)測應(yīng)用,實(shí)踐證明基于自動化測試工具的平臺,搭載開發(fā)的測試腳本,并結(jié)合一定的測試經(jīng)驗(yàn)進(jìn)行的自動化測試,完全可以達(dá)到軟件壓力測試標(biāo)準(zhǔn),保證壓力測試質(zhì)量,縮短測試周期,提高測試效率。
[1] 秦?zé)?康偉,韓佳.淺談黑盒測試技術(shù)在手機(jī)軟件測試中的應(yīng)用[J].今日科苑, 2008.
[2] 趙會群.通信軟件測試技術(shù)基礎(chǔ)[M].人民郵電出版社,2004.
[3] 豐彥.軟件測試的系統(tǒng)測試方法[J].引進(jìn)與咨詢,2005.
[4] Grenford J.Myers The Art of Software Testing[M].機(jī)械工業(yè)出版社,2005.
[5] 林寧,孟慶余.軟件測試實(shí)用指南[M].清華大學(xué)出版社,2004.
[6] 劉海鵬.手機(jī)軟件測試簡介[J].科技咨詢導(dǎo)報(bào),2007.
[7] 古樂,史九林.軟件測試技術(shù)概論[M].清華大學(xué)出版社,2004.
[8] 路金良.手機(jī)軟件開發(fā)的質(zhì)量控制[J].中國科技信息,2009.
[9] 葉振宇.智能手機(jī)軟件開發(fā)中的質(zhì)量控制策略[J].紹興文理學(xué)院學(xué)報(bào),2005.
[10] William E.Perry Effective Methods for Software Testing[M].清華大學(xué)出版社,2008.