胡靜懿 熊川霎


摘要
針對軟件測試計劃編寫不受重視或者軟件測試計劃“束之高閣”的現(xiàn)象,文中綜合了軟件測試組的實踐經(jīng)驗,以智能電表為例,論述了如何制定一份合理的且高效可行的測試計劃。其中重點強調(diào)了軟件測試計劃的內(nèi)容應(yīng)該囊括整個軟件測試的方法;測試計劃的編寫應(yīng)該貫穿整個軟件流程且必須在需求分析之后輸出。最終從需求覆蓋度,版本情況比對以及人力成本核算三個角度驗證了該測試計劃的有效性。
【關(guān)鍵詞】智能電表 軟件測試計劃 需求分析測試設(shè)計
國內(nèi)許多中小型軟件公司的軟件測試流程不規(guī)范,軟件測試人員對于軟件測試計劃的重要性理解不深刻,往往在沒有進(jìn)行軟件測試計劃設(shè)計編寫或者是將原有項目的測試計劃進(jìn)行簡單的修改就直接應(yīng)用在新的測試項目中。由于缺乏指導(dǎo)性的文件指引,在后期測試過程中經(jīng)常會發(fā)現(xiàn)測試點遺漏,測試重點的優(yōu)先級沒有進(jìn)行區(qū)分導(dǎo)致軟件研發(fā)在后期進(jìn)行大規(guī)模的回歸測試或者頻繁的進(jìn)行全功能測試,測試資源配置不到位測試執(zhí)行阻塞,測試時間安排不合理導(dǎo)致測試時間不足,測試版本發(fā)布過多,測試用例編寫的不合理導(dǎo)致需求變更后測試用例大范圍更改等一系列的問題。
公司測試人員在實際工作中對上述問題深有體會,并進(jìn)行了一系列的改革實踐,將諸多軟件測試設(shè)計理論轉(zhuǎn)化成了本文中現(xiàn)實可行的設(shè)計方法。
1 軟件測試計劃編寫思路
在編寫軟件測試計劃的時候首先要分析公司現(xiàn)狀:
(1)公司軟件測試主要負(fù)責(zé)的產(chǎn)品為智能電表;
(2)鑒于智能電表軟件是基于嵌入式系統(tǒng)的特點,軟件的功能測試占了很重的比例;
(3)驗證電表項目中客戶需求是否真正實現(xiàn)是軟件測試最基本的目標(biāo)。
其次,考慮編寫的軟件測試計劃在實施過程中應(yīng)該產(chǎn)生的作用:
(1)為測試工作整體的規(guī)劃安排提供指導(dǎo);
(2)幫助測試主管或測試經(jīng)理了解項目進(jìn)程以及實施情況,合理的安排和調(diào)整資源;
(3)幫助測試人員更加全面的編寫測試用例,合理的安排測試進(jìn)度等。
最后,考慮在軟件測試計劃實施過程中可能的影響因素:
(1)分析公司的軟件測試模型以及測試流程制定出符合當(dāng)前公司現(xiàn)狀的測試計劃;
(2)要充分的考慮測試計劃的可操作性,充分分析能夠調(diào)用的一切資源以及受到的限制,可能出現(xiàn)狀況的可調(diào)整方案;
(3)軟件測試計劃要貫穿在整個軟件項目過程中,根據(jù)項目的實際實施情況以及需求變更情況及時的做出調(diào)整;
(4)軟件測試計劃周知相關(guān)的項目管理人員、研發(fā)人員等并進(jìn)行評審以確保測試計劃的可執(zhí)行性;
(5)測試組人員必須及時跟蹤軟件開發(fā)的過程以及變更(項目計劃的變更、需求的變更、測試產(chǎn)品版本的變更、測試資源的變更)情況,以確保測試計劃的變更與軟件開發(fā)以及項目計劃同步。
綜上,本文的重點旨在以智能電表軟件功能測試計劃編寫為例,從“需求分析”出發(fā),衍生出“測試范圍”到“測試策略設(shè)計”,最后到“測試執(zhí)行規(guī)劃”(包括測試優(yōu)先級劃分及版本規(guī)劃、資源配置等)詳細(xì)論述如何編寫合理的,行之有效的測試計劃指導(dǎo)整個測試的過程,保證軟件測試的充分性,減少不必要的人力、時間的浪費。
2 軟件測試模型分析
公司主要采用“W模型”開發(fā)方式,在這種開發(fā)方式下,將測試計劃的編寫貫穿到整個開發(fā)周期中。軟件測試計劃的編寫應(yīng)該囊括所有的測試方法包括功能測試,集成測試,穩(wěn)定性測試,系統(tǒng)測試。充分分析幾種測試方法的測試階段,測試環(huán)境差異,測試資源配置,有針對性的規(guī)劃測試版本,安排測試內(nèi)容。
3 軟件測試流程分析
公司的軟件測試過程主要包括以下幾個方面:需求分析、測試計劃編寫及評審、測試設(shè)計及評審、測試實施、測試執(zhí)行、測試報告編寫。在該流程中,測試人員在需求分析階段就介入整個項目流程,使得測試人員能夠明確測試范圍,驗收標(biāo)準(zhǔn),搭建合理的測試架構(gòu),制定可執(zhí)行的測試計劃。測試計劃應(yīng)該作為測試的起始步驟,指導(dǎo)以及貫穿整個測試過程,避免“任務(wù)導(dǎo)向”以及“無目的無安排”的測試,減少人力資源以及時間的浪費,使得測試人員在規(guī)定的時間期限內(nèi)交付滿足需求的令客戶滿意的產(chǎn)品。在軟件測試流程過程中若發(fā)現(xiàn)變更則需要根據(jù)實際的變更情況重新修改測試計劃,重新安排測試。
4 軟件測試計劃的撰寫
分析了公司的測試模型以及測試流程之后,下面主要以智能電表為例詳細(xì)的闡述如何編寫一份合理的行之有效的測試計劃。
4.1 測試需求分析
進(jìn)行需求分析的目的是為了了解客戶的驗收標(biāo)準(zhǔn),規(guī)劃測試的版本,了解測試的范圍設(shè)計測試點,識別測試場景進(jìn)而交付令客戶滿意的、滿足測試需求的產(chǎn)品。在智能電表行業(yè)中主要的測試分為兩大塊,基表測試和通信測試,基表功能測試主要在集成測試階段完成,通信測試主要在系統(tǒng)測試階段完成。基表的功能模塊主要有:計量、需量、時鐘、費率、顯示、負(fù)荷控制、升級、負(fù)荷曲線、結(jié)算、事件記錄等。通信測試主要包括4G、PLC、RF、M-bus等。針對不同的功能,客戶一般會有不同的需求,我們要分析出主要的測試點、測試的重難點、從而設(shè)計出完全覆蓋測試需求的測試用例。同時,不同的區(qū)域?qū)χ悄茈姳頃袀?cè)重點,比如有些區(qū)域測試與竊電的檢測,有些地方側(cè)重于通信的測試,因此我們要根據(jù)需求的具體情況劃分測試點的優(yōu)先級。
4.2 測試策略設(shè)計
下面以智能電表中負(fù)荷曲線的選擇性抄讀功能為例給出詳細(xì)的測試策略設(shè)計步驟。如表1所示。
4.2.1 需求分析
選擇性抄讀功能的原始需求為通過range和entry的方式進(jìn)行選擇性抄讀。
4.2.2 測試范圍
根據(jù)曲線選擇性抄讀的原始需求點衍生出需求的測試范圍并對測試范圍進(jìn)行分析,詳情見表1的需求->測試范圍->測試范圍分析。
4.2.3 測試設(shè)計
根據(jù)測試范圍給出對應(yīng)的測試用例標(biāo)題,根據(jù)測試用例的類型給出不同的測試點應(yīng)該采取的測試方法以及每一個測試點需要的工時,詳情見表1的測試范圍分析->測試用例標(biāo)題->工時->測試類型。表中給出的測試方法主要有四種:FT(A)代表功能測試(手工),F(xiàn)T(M)代表功能測試(自動化),STT代表穩(wěn)定性測試,SYT代表系統(tǒng)集成測試,h代表小時。
4.2.4 測試優(yōu)先級劃分及版本規(guī)劃
根據(jù)不同的測試用例在測試中的先后穩(wěn)定順序劃分了不同的測試優(yōu)先級,測試必須在高優(yōu)先級(H)的測試點全部執(zhí)行之后才會接受研發(fā)下一個版本繼續(xù)執(zhí)行中優(yōu)先級(M)的測試點,最后測試低優(yōu)先級(L)的測試點,相同的優(yōu)先級別放在同一個版本。不允許在H級的測試點未執(zhí)行完成就頻繁的接受研發(fā)發(fā)布的新版本程序重新進(jìn)行測試,因為頻繁的發(fā)布版本會導(dǎo)致測試的工作量大量增加,測試效率得不到保證。最后,根據(jù)單個功能的版本規(guī)劃以及優(yōu)先級情況推論出整個項目的功能優(yōu)先級以及版本規(guī)劃情況。詳情見表1的測試用例標(biāo)題->測試類型->優(yōu)先級(版本->準(zhǔn)出準(zhǔn)則)。
4.2.5 資源配置
表2針對表1中涉及的不同的測試方法對其資源配置情況進(jìn)行了分析。資源配置主要包括環(huán)境資源配置分析和人力資源的配置分析。分析測試該功能模塊使用不同的測試手段的時候應(yīng)該分別具有什么樣的測試環(huán)境,測試工具,通信環(huán)境,需要的電表個數(shù),其他的資源的個數(shù)以及人力資源配置等。
4.2.6 變更應(yīng)對策略
由于軟件測試計劃在需求分析階段之后輸出,在需求分析到程序發(fā)布驗收的過程中發(fā)生變更,根據(jù)公司的實際情況發(fā)生較多的變更主要有項目計劃的變更和需求的變更。當(dāng)發(fā)生變更的時候我們主要分析變更的影響點,從測試設(shè)計、版本規(guī)劃以及人力資源配置三個方面考慮測試策略的調(diào)整。
4.3 測試計劃變更記錄
由于測試計劃貫穿整個軟件流程中是“動態(tài)的”,為了了解軟件測試計劃的變更情況以了解測試計劃是否根據(jù)具體的項目情況做出調(diào)整,檢驗測試計劃的效度就要做好軟件測試計劃變更記錄,主要包括:測試計劃變更的原因,變更的時間,變更的范圍,變更的人員并且做出測試計劃的變更分析。
5 軟件測試計劃有效性驗證
為了驗證軟件測試計劃的有效性本文主要從需求覆蓋度比對,人力成本核算,版本發(fā)布情況比對三個方面進(jìn)行說明。
5.1 需求覆蓋度比對
需求管理工具記錄A、B項目的需求覆蓋度情況,A項目未進(jìn)行測試計劃的編寫需求的覆蓋度為53.33%,B項目根據(jù)本文的測試計劃編寫步驟編寫了測試計劃,需求的覆蓋度為79.78%,需求覆蓋度提高了26.45%。
5.2 版本發(fā)布情況比對
根據(jù)版本發(fā)布管理軟件記錄,A項目發(fā)布的版本數(shù)為18個,使用了軟件測試計劃后B項目發(fā)布的版本數(shù)縮短為3個。
5.3 人力成本核算
根據(jù)表2可以算出除了穩(wěn)定性測試,每測試“選擇性抄讀”這一需求一遍就需要9小時(穩(wěn)定性測試是一個持續(xù)的過程因此把該工時去掉),該功能總共有8個需求點,該項目有12個功能模塊,假設(shè)每個工時的人力成本為30元,每一個功能的復(fù)雜程度以及功能需求點個數(shù)一致則:
根據(jù)圖5,多發(fā)15個軟件版本,除去回歸測試,假設(shè)多4輪的全功能則:
多耗費人力成本=9hour*8*12*4
由上計算可以看出沒有做出行之有效的軟件測試計劃,人力成本的耗費是非常巨大的;時時的追蹤變更并調(diào)整測試計劃是非常有必要的,因此一份行之有效的測試計劃的編寫尤為重要。
6 結(jié)束語
文中針對測試人員對軟件測試計劃的重要性理解不深刻,測試計劃編寫不合理的情況,結(jié)合公司的實際情況,分析了公司的軟件測試模型以及軟件測試流程,給出了軟件測試計劃編寫的核心內(nèi)容點以智能電表為例詳細(xì)的講述了如何編寫一份完成且行之有效的測試計劃,并從需求覆蓋度、版本發(fā)布情況比對以及人力成本核算三個角度驗證了該測試計劃的有效性以及軟件測試計劃編寫的重要性。同時,給出了軟件測試計劃編寫過程中的一些建議:測試計劃的設(shè)計并不僅僅是測試計劃說明說的編寫,必須能夠指導(dǎo)整個項目的測試;測試計劃是“動態(tài)的”,測試計劃的編寫人員需要時刻的關(guān)注項目的變更情況,項目進(jìn)度近況等一系列的因素,及時的調(diào)整測試計劃。
參考文獻(xiàn)
[1]羅瑛.智能電表在智能電網(wǎng)中的應(yīng)用概述[J].廣東科技,2013,16(08):116-119.
[2]黃清清,許宏斌.軟件測試計劃與測試用例在嵌入系統(tǒng)中的應(yīng)用[J].艦船電子工程,2005(01):59-63.
[3]宋錫強,汪萍萍,周韶園.智能電能表軟件測試技術(shù)概述[J].電測與儀表,2014,51(11):18-22.
[4]曹耀輝,王剛.論軟件測試計劃的成功制定[J].價值工程,2014,51(11):172-173.
[5]強澄英.軟件測試計劃的制定及常見問題的分析[J].電信交換,2009(04):40-43.