版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、密 級:普通文件編號:NO.1文件類別:測試管理體系文件發(fā) 放 號:1001華中8型軟件單元測試規(guī)范版本:1.1華中數(shù)控軟件開發(fā)部教學(xué)z版本說明日期版本號發(fā)布說明作者批準人2015/1/28V1.0王蓉2015/2/10V1.1王蓉目錄目錄II1引言11.1編寫目的11.1.1編寫目的11.1.2適用范圍11.1.3預(yù)期讀者11.2背景11.3定義11.4參考文檔12單元測試32.1單元的定義32.2角色工作體系32.3單元測試規(guī)程32.3.1靜態(tài)代碼檢查32.3.2測試用例42.4單元測試工具42.5測試的目錄結(jié)構(gòu)42.6測試代碼的書寫規(guī)范52.7測試單元的文件組成及命名規(guī)范52.8單元測試
2、的實施規(guī)范53測試結(jié)果提交和驗收63.1提交的測試產(chǎn)品63.2測試產(chǎn)品提交方式63.3單元測試工作產(chǎn)品驗收規(guī)范6教學(xué)z1 引言1.1 編寫目的1.1.1 編寫目的本文檔規(guī)定了HNC8軟件單元測試方法和步驟、測試用例的設(shè)計方法、測試代碼的書寫規(guī)范、流程以及單元測試的產(chǎn)品提交和驗收規(guī)范,目的在于控制單元測試的質(zhì)量,加強項目的質(zhì)量管理,從而提高整個產(chǎn)品的質(zhì)量。1.1.2 適用范圍主要是8型軟件的單元測試、部分系統(tǒng)平臺軟件模塊測試。1.1.3 預(yù)期讀者本文檔的預(yù)期讀者為項目的項目經(jīng)理、產(chǎn)品經(jīng)理、系統(tǒng)軟件主研人員、應(yīng)用軟件主研人員、高級測試人員等。1.2 背景HNC8系統(tǒng)軟件平臺是各產(chǎn)品和項目的重要組成
3、部分,為HNC8軟件開發(fā)人員提供必要的測試環(huán)境。本規(guī)范的提出和制訂旨在為軟件單元測試提供依據(jù)和支持。1.3 定義被測模塊:需要進行模塊級測試的應(yīng)用軟件系統(tǒng)的一個單元或模塊,也稱被測單元。測試單元:用于對被測模塊進行單元級測試,由源代碼、測試腳本和輸入數(shù)據(jù)等構(gòu)成的程序單元。1.4 參考文檔1 C+Test用戶手冊2 單元測試快速起步教學(xué)z2 單元測試2.1 單元的定義對于結(jié)構(gòu)化的編程語言,程序單元指程序中定義的函數(shù)或子程序。單元測試是指對函數(shù)或子程序所進行的測試。對于面向?qū)ο蟮木幊陶Z言,程序單元指特定的一個具體的類或相關(guān)的多個類。單元測試主是指對類方法的測試。2.2 角色工作體系角色職責(zé)開發(fā)/測
4、試組長審查單元測試過程,對測試結(jié)果進行評估。根據(jù)單元測試發(fā)現(xiàn)的缺陷提出變更申請。開發(fā)/測試工程師對單元代碼進行檢查,設(shè)計單元測試用例,加載運行測試用例,記錄和分析測試結(jié)果,提交單元測試Bug。配置管理員管理測試需要的資源,包括軟硬件環(huán)境,版本管理和Bug 管理。2.3 單元測試規(guī)程包括靜態(tài)的代碼審查和動態(tài)測試兩個階段。靜態(tài)代碼審查是按照靜態(tài)檢查規(guī)范中的條項對單元模塊進行逐項檢查,并填寫單元測試Bug 清單。動態(tài)測試階段首先設(shè)計相應(yīng)的測試用例。測試用例應(yīng)該覆蓋單元模塊的所有功能項,如果單元模塊有性能、余量等其它測試特性要求,則必須設(shè)計相應(yīng)的測試用例測試這些特性。執(zhí)行測試用例,運行得到測試結(jié)果,比
5、對測試結(jié)果查看單元測試覆蓋率是否達標。如果發(fā)現(xiàn)錯誤或Bug,提交單元測試Bug。2.3.1 靜態(tài)代碼檢查要求:根據(jù)靜態(tài)檢查規(guī)范中的要求,對被測試單元進行逐項檢查,檢查后在對應(yīng)的條項后進行標記,發(fā)現(xiàn)問題后,提交單元測試Bug。2.3.2 測試用例設(shè)計測試用例是測試數(shù)據(jù)及與之相關(guān)的測試規(guī)程的一個特定的集合,它是為驗證被測試程序(為測試路徑或驗證是否符合特定需求)而產(chǎn)生的。測試用例設(shè)計用于白盒測試和黑盒測試。白盒測試進入的前提條件是在測試人員已經(jīng)對被測試對象有了一定的了解,基本上明確了被測試軟件的邏輯結(jié)構(gòu)。過程是通過針對程序邏輯結(jié)構(gòu)設(shè)計和加載測試用例,驅(qū)動程序執(zhí)行,檢查在不同點程序的狀態(tài),以確定實際
6、的狀態(tài)是否與預(yù)期的狀態(tài)一致。1、白盒測試主要是對被測試對象進行如下測試項目:u 對程序模塊的所有獨立的執(zhí)行路徑至少覆蓋一次;u 對所有的邏輯判定,真假兩種情況都至少覆蓋一次;u 在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;u 測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。白盒測試達到的目標:語句覆蓋率達到100%,分支覆蓋率達到100%,覆蓋程序中主要的路徑,主要路徑是指完成需求和設(shè)計功能的代碼所在的路徑和程序異常處理執(zhí)行到的路徑。黑盒測試是要首先了解軟件產(chǎn)品具備的功能和性能等需求,再根據(jù)需求設(shè)計一批測試用例以驗證程序內(nèi)部活動是否符合設(shè)計要求的活動。2、黑盒測試主要是對被測試對象進行如下測試項目:u 測試程序單元的功能
7、是否實現(xiàn);u 測試程序單元性能是否滿足要求(可選);u 可選的其它測試特性,如邊界、余量、安全性、可靠性、強度測試、人機交互界面測試等。黑盒測試達到的目標:程序單元正確地實現(xiàn)了需求和設(shè)計上要求的功能,滿足性能要求,同時程序單元要有可靠性和安全性。2.4 單元測試工具規(guī)定使用以下測試工具實現(xiàn)應(yīng)用軟件系統(tǒng)單元測試和子系統(tǒng)集成測試,以及部分系統(tǒng)平臺軟件模塊的相關(guān)測試。請參考C+test9.2簡明手冊1、 C+test9.2單機版(支持VC6.0) 下載路徑:192.168.20.5tools軟件測試工具 cpptest_9.2.1.26_win32_獨立版2、 C+test9.0插件版(支持VS20
8、10) 下載路徑:192.168.20.5tools軟件測試工具 cpptest_9.0_win32_插件版2.5 測試的目錄結(jié)構(gòu)1、各個工程存放測試套件、樁函數(shù)文件、測試數(shù)據(jù)u 測試源文件通過導(dǎo)入VC工程,源碼以鏈接方式顯示在工作空間/hncapi/api /hncapi/inc_api/hncapi/libprj /hncapi/plcu 測試套件 /hncapi/tests u 樁函數(shù)文件 /hncapi/stubs 2、以hnc8/trunk/hncapi.dsw為例:2.6 測試代碼的書寫規(guī)范2.6.1 測試套件/測試用例定義規(guī)范【規(guī)則1】在測試套件定義中開始注冊測試用CPPTEST
9、_TEST_SUITE(TestSuiteName)例: CPPTEST_TEST_SUITE(TestSuite_ActivationGetDayNum);【規(guī)則2】在測試套件定義中結(jié)束注冊測試用例 CPPTEST_TEST_SUITE_END()【規(guī)則3】測試用例注冊CPPTEST_TEST(testCaseName)例: CPPTEST_TEST(test_ActivationGetDayNum_Ok); CPPTEST_TEST(test_ActivationGetDayNum_Failed);【規(guī)則4】在測試套件源文件中使用該宏來定義給定的測試套件中的測試所設(shè)置的源/ 頭文件。CPP
10、TEST_CONTEXT(testedFile)例: CPPTEST_CONTEXT(./api/hncactivation.cpp);【規(guī)則5】在測試套件源代碼中使用該宏來設(shè)置某個給定的測試套件將在測試可執(zhí)行文件構(gòu)建時被添加到某個源文件后面CPPTEST_TEST_SUITE_INCLUDED_TO(testedSource)例:CPPTEST_TEST_SUITE_INCLUDED_TO(./api/hncactivation.cpp);備注:下圖示例,測試套件TestSuite_ActivationGetDayNum 及其測試用例注冊2.6.2 測試用例初始化變量書寫規(guī)范【規(guī)則1】初始化
11、輸入?yún)?shù)例: /* Pre-condition initialization */ /* Initializing argument 1 (sn) */ :Bit8 * _sn = 6933-E8A4-013L-00C1-FBC6-1C13 ;【規(guī)則2】初始化全局變量例: /* Initializing global variable */ :s_hncAct.registerType = 0; :s_hncAct.regRemainDay = 0; :s_hncAct.registerFlag = 0;2.6.3 測試用例被測單元函數(shù)調(diào)用規(guī)范【規(guī)則】調(diào)用被測單元例: /* Tested fu
12、nction call HNC_ActivationSetSn(Bit8 *)*/ :Bit32 _return = :HNC_ActivationSetSn(_sn);2.6.4 測試用例驗證規(guī)范【規(guī)則1】斷言兩個布爾類型值相等CPPTEST_ASSERT_BOOL_EQUAL(expected,actual)例: CPPTEST_ASSERT_BOOL_EQUAL(0, ( _return );【規(guī)則2】斷言兩個整型值相等CPPTEST_ASSERT_INTEGER_EQUAL(expected,actual)例: CPPTEST_ASSERT_INTEGER_EQUAL(0, ( _re
13、turn );CPPTEST_ASSERT_INTEGER_EQUAL(66, ( :s_hncAct.regRemainDay );【規(guī)則3】斷言兩個指針類型字符串相等CPPTEST_ASSERT_PTR_EQUAL(expected,actual)2.6.5 完整測試用例實例2.6.6 樁函數(shù)書寫規(guī)范【規(guī)則】查詢當(dāng)前執(zhí)行的測試用bool CppTest_IsCurrentTestCase(const char* id)例: void CppTest_Stub_nc_gettime (:nctime_t * ptime) if (CppTest_IsCurrentTestCase(test_
14、HNC_ActivationSetSn_Ok) ptime-year = 2015; ptime-month = 1; ptime-day = 20; 2.7 測試單元的文件組成及命名規(guī)范每個測試單元由測試代碼文件、程序主函數(shù)文件和編譯運行腳本文件組成,單元測試完成之后還生成一系列測試報告,這些測試報告將與模塊單元一起提交。測試單元包含如下文件及其所處目錄位置如下所述:【規(guī)則1】測試套件命名 TestSuite_測試單元函數(shù)名.cpp例如: TestSuite_ActivationCheckTime.cpp 【規(guī)則2】測試用例命名 test_測試單元函數(shù)名_測試簡明標識例如: test_HNC
15、_ActivationLoad_Failedtest_HNC_ActivationLoad_Oktest_HNC_ActivationLoad_Null【規(guī)則3】自定義測試樁命名 測試單元函數(shù)名_stub.cpp例如: HNC_SysCtrlGetConfig_stub.cpp【規(guī)則4】測試文件地址:C+test工作空間下,對應(yīng)各工程文件的test文件夾的路徑例如: workspacehncapitestsautogeneratedapihncactivation.cpp【規(guī)則5】自定義測試樁文件地址:C+test工作空間下,對應(yīng)各工程文件的stubs文件夾的路徑。例如: workspaceh
16、ncapistubs2.8 單元測試的實施規(guī)范按照單元測試規(guī)程進行實施,進行代碼審查和動態(tài)測試?!疽?guī)則1】從服務(wù)器下載最新源碼,導(dǎo)入VC6.0項目來創(chuàng)建C+test項目,添加各個工程對應(yīng)的測試文件到本地。【規(guī)則2】要求靜態(tài)檢查通過后,再開始單元測試?!疽?guī)則3】在寫測試用例驅(qū)動時,所有外部傳入?yún)?shù)、全局變量等都需要進行初始化?!疽?guī)則4】調(diào)用原始定義的樁函數(shù)時,該樁函數(shù)應(yīng)該是系統(tǒng)標準函數(shù)或者是已通過測試的函數(shù)。【規(guī)則5】系統(tǒng)函數(shù)作為樁函數(shù)時,一般情況采用原始定義,特殊情況可以自定義。【規(guī)則6】在編寫或調(diào)試測試驅(qū)動和樁時,禁止修改源代碼進行調(diào)試?!疽?guī)則7】測試結(jié)果輸出,要根據(jù)具體情況把函數(shù)中數(shù)據(jù)流的
17、值進行驗證。【規(guī)則8】測試文件,要求在C+test編譯通過并執(zhí)行通過,才能提交到服務(wù)器。教學(xué)z3 測試結(jié)果提交和驗收參與單元測試的人員,將各自負責(zé)測試的模塊單元測試后提交服務(wù)器,服務(wù)器完成工程內(nèi)的所有測試用例執(zhí)行,以及測試報告反饋。開發(fā)和測試組長需要查看測試報告,驗收單元測試質(zhì)量,并給出一定的指導(dǎo)意見!3.1 提交的測試產(chǎn)品1、對于每個被測單元的測試結(jié)果提交u 每個測試單元測試實現(xiàn).cpp 文件u 每個測試單元的相關(guān)樁函數(shù)實現(xiàn).cppu 每個測試單元的測試設(shè)計文檔,請參考hncactivation.cpp單元測試設(shè)計文檔。2、單元測試總結(jié)報告(由服務(wù)器完成)u 靜態(tài)檢查報告 rep_StaticAnalysis.htmlu 單元測試執(zhí)行報告 rep_run.htmlu 單元測試任務(wù)報告 report_dev.html3.2 測試產(chǎn)品提交方式按照各個工程存放測試套件、樁函數(shù)文件、測試數(shù)據(jù),以下以hnc8/trunk/hncapi為例:1、測試套件位置 /trunk/unit_test/hncapi/tests 2、樁函數(shù)文件位置 /trunk/unit_test/hncapi/stubs 3、測試數(shù)據(jù)位置 /trunk/uni
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氧化鋁基負載型金屬催化劑鄰位氫中心構(gòu)筑及加氫性能研究
- 秸稈回收加工廠項目可行性研究報告
- 2025版物業(yè)管理區(qū)域綠化安全管理服務(wù)合同3篇
- 基于相似理論的船用耐壓設(shè)備縮比模型設(shè)計方法研究
- 2025版高校食堂營養(yǎng)膳食承包合作協(xié)議2篇
- 異地辦公與遠程工作管理
- 二零二五年度倉儲物流用地買賣合同樣本3篇
- 2025版選礦廠承包合同附設(shè)備更新改造計劃書3篇
- 營銷行業(yè)助理職責(zé)概述
- 熱情溫暖的社區(qū)活動中心三篇
- 《鋼筋焊接及驗收規(guī)程》(JGJ18)
- 醫(yī)藥高等數(shù)學(xué)知到智慧樹章節(jié)測試課后答案2024年秋浙江中醫(yī)藥大學(xué)
- 2024年濰坊工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完美版
- GB/T 44823-2024綠色礦山評價通則
- 《共情的力量》課件
- 2022年中國電信維護崗位認證動力專業(yè)考試題庫大全-上(單選、多選題)
- 醫(yī)藥高等數(shù)學(xué)智慧樹知到課后章節(jié)答案2023年下浙江中醫(yī)藥大學(xué)
- 城市道路智慧路燈項目 投標方案(技術(shù)標)
- 水泥采購?fù)稑朔桨福夹g(shù)標)
- 初中英語-Unit2 My dream job(writing)教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 廣州市勞動仲裁申請書
評論
0/150
提交評論