999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Windows文件系統(tǒng)自動(dòng)化測(cè)試框架的研究與設(shè)計(jì)

2008-12-31 00:00:00肖軍模王學(xué)強(qiáng)
電腦知識(shí)與技術(shù) 2008年25期

摘要:隨著軟件規(guī)模的龐大,程序量和復(fù)雜度在不停地增長(zhǎng),測(cè)試工作變得越加艱巨,自動(dòng)化軟件測(cè)試可以在一定程度上減少測(cè)試開銷,同時(shí)增加在有限時(shí)間內(nèi)的測(cè)試。文章在單元測(cè)試框架CPPUnit的基礎(chǔ)上開發(fā)了Windows文件系統(tǒng)的自動(dòng)化測(cè)試框架,將CPPUnit從單元測(cè)試領(lǐng)域擴(kuò)展到功能測(cè)試和非功能測(cè)試領(lǐng)域,設(shè)計(jì)的框架不僅可以支持文件系統(tǒng)的功能回歸測(cè)試,而且可以支持文件文件系統(tǒng)的部分非功能測(cè)試,結(jié)果用XML文件保存并可在Web上瀏覽,論文詳細(xì)的闡述了該自動(dòng)化測(cè)試框架的結(jié)構(gòu)以及設(shè)計(jì)模式,該設(shè)計(jì)思路對(duì)于研究文件系統(tǒng)自動(dòng)化測(cè)試工具有一定的參考價(jià)值。

關(guān)鍵詞:軟件工程;軟件自動(dòng)化測(cè)試;功能測(cè)試;CPPUnit;回歸測(cè)試;文件系統(tǒng)

中圖分類號(hào):TP309.05文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)25-1467-03

Research and Design of Automatic Test Framework for Windows File System

MA Chi, XIAO Jun-mo, WANG Xue-qiang

(College of Software Engineering, Southeast University, Nanjing 210008, China)

Abstract: Test work becomes more and more arduous along with the rise of the software size, program quantity and complexity. Automatic software test can reduce the test expenses in a certain extent, at the same time it can increase the test within the limited time. Based on the CPPUnit, the author has developed an automatic test framework for Windows file system, which also extends the domain form unit test area to functional and non-functional test area. This test framework supports not only the regression testing but also some non-functional test for file system; however the test result can be save as xml files and be browsed on the Web. This paper has expatiated for the structure of the framework and design patterns in the automatic test framework. This idea has certain reference value on the research of automatic test tools for Windows file systems.

Key words: software engineering; automatic software test; functional test; CPPUnit; regression test; file system

軟件測(cè)試是發(fā)現(xiàn)軟件錯(cuò)誤、提高軟件可靠性與保證軟件質(zhì)量的重要手段,是軟件公司致力于提高軟件產(chǎn)品質(zhì)量的重要手段之一。測(cè)試具有一定的重復(fù)性,主要體現(xiàn)在回歸測(cè)試中。任何一個(gè)軟件測(cè)試項(xiàng)目后期都需要進(jìn)行回歸測(cè)試,可能是由于修正缺陷,也可能是由于軟件不斷升級(jí)而新加功能、增強(qiáng)功能。回歸測(cè)試就是要驗(yàn)證已經(jīng)實(shí)現(xiàn)的大部分功能。為了消除代碼改動(dòng)所造成的影響而要進(jìn)行大量的測(cè)試。雖然回歸測(cè)試找到軟件缺陷的可能性小,效率比較低,但又是必要的、不可缺少的。如果由手工完成不斷重復(fù)的回歸測(cè)試,會(huì)在很大程度上降低測(cè)試工作的趣味性。如果由測(cè)試工具完成回歸測(cè)試,將會(huì)解放測(cè)試人員,會(huì)是一件非常有意義的事。所以在測(cè)試過程中,測(cè)試工具是必需的。

1 文件系統(tǒng)的測(cè)試

操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng),簡(jiǎn)稱文件系統(tǒng)。文件系統(tǒng)由三部分組成:與文件管理有關(guān)的軟件、被管理的文件以及實(shí)施文件管理所需的數(shù)據(jù)結(jié)構(gòu)。從系統(tǒng)角度來(lái)看,文件系統(tǒng)是對(duì)文件存儲(chǔ)器空間進(jìn)行組織和分配,負(fù)責(zé)文件的存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索的系統(tǒng)。具體地說,它負(fù)責(zé)為用戶建立文件,存入、讀出、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的存取,當(dāng)用戶不再使用時(shí)撤銷文件等。文件系統(tǒng)是整個(gè)操作系統(tǒng)中重要的組成部分,是操作系統(tǒng)正常運(yùn)行的基本條件。

Windows和Linux是目前使用最多的兩種文件系統(tǒng),Windows可以支持的文件系統(tǒng)有FAT12,F(xiàn)AT16,F(xiàn)AT32和NTFS等;而Linux系統(tǒng)核心可以支持十多種文件系統(tǒng)類型:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。

Linux的廣泛使用使得其虛擬文件系統(tǒng)機(jī)制VFS越來(lái)越得到人們的認(rèn)識(shí)和了解,而在Windows下的可安裝文件系統(tǒng)IFS機(jī)制卻不為很多人熟悉。實(shí)際上,該機(jī)制允許通過編制文件驅(qū)動(dòng)程序來(lái)支持新的文件系統(tǒng)。

文件驅(qū)動(dòng)程序是一種高層內(nèi)核模式驅(qū)動(dòng)程序,其安裝過程與其他內(nèi)核模式驅(qū)動(dòng)程序基本相同,但其屬于“File System”或者“Boot File System”驅(qū)動(dòng)程序組。文件驅(qū)動(dòng)程序需要在初始化完成時(shí)通過IoRegisterFileSystem例程向I/O管理器登記為文件驅(qū)動(dòng)程序以便能夠管理磁盤文件卷,他支持文件系統(tǒng)控制請(qǐng)求,這些文件系統(tǒng)控制請(qǐng)求將由I/O管理器發(fā)送給文件驅(qū)動(dòng)程序。主要功能是實(shí)現(xiàn)Create/Open,I/O操作以及Close操作等諸多流程的處理。

在實(shí)際應(yīng)用中,在Linux和Windows系統(tǒng)之間會(huì)存在數(shù)據(jù)交換的需要。在Linux下可以支持對(duì)Windows常見文件系統(tǒng)的訪問,而反之在Windows系統(tǒng)下就有一定的困難。但是,如果借助與結(jié)合IFS機(jī)制開發(fā)支持Linux分區(qū)的文件驅(qū)動(dòng)程序,就可以實(shí)現(xiàn)在Windows下仍訪問Linux下的某些文件系統(tǒng)了。

隨著Windows在操作系統(tǒng)屆的日益壟斷,由于各種商務(wù)需要,不同的產(chǎn)品需要在Windows下為其開發(fā)獨(dú)自的文件系統(tǒng)以實(shí)現(xiàn)各種功能需求,可安裝文件系統(tǒng)IFS以及如何利用IFS機(jī)制編制文件驅(qū)動(dòng)程序來(lái)使Windows支持新的文件系統(tǒng)的需求日益增加,隨之增加的是對(duì)Window IFS測(cè)試的需求,但是目前尚未有完整的自動(dòng)化測(cè)試框架可用于Windows IFS的測(cè)試。

在Linux下可以通過對(duì)LTP測(cè)試套件的定制對(duì)某種文件系統(tǒng)進(jìn)行具體的功能和性能測(cè)試,LTP(Linux Test Project)是 SGI、IBM、OSDL、Bull 和 Wipro Technologies 合作的項(xiàng)目,目的是為開放源代碼團(tuán)體提供測(cè)試套件,以測(cè)試 Linux 的可靠性、健壯性和穩(wěn)定性。Linux Test Project 是測(cè)試 Linux 內(nèi)核和相關(guān)部件的工具的集合。目的是通過使內(nèi)核測(cè)試工作自動(dòng)化來(lái)幫助改進(jìn) Linux 內(nèi)核。Linux Test Project 團(tuán)隊(duì)的成員們分享了他們對(duì) Linux?誖內(nèi)核進(jìn)行壓力所使用的測(cè)試的方法、原理以及腳本和工具。

使用來(lái)自 Linux Test Project 測(cè)試套件可以設(shè)計(jì)Linux下文件系統(tǒng)的功能測(cè)試和壓力測(cè)試,可對(duì)于Windows上的可安裝文件系統(tǒng)卻并沒有一個(gè)通用的自動(dòng)化測(cè)試框架。

2 CPPUnit自動(dòng)測(cè)試框架

圖1 CPPUnit基本框架類關(guān)系圖

CppUnit是個(gè)基于LGPL的開源項(xiàng)目,最初版本移植自JUnit,是一個(gè)非常優(yōu)秀的開源測(cè)試框架,它是xUnit系列中的C++實(shí)現(xiàn)版本,第一個(gè)移植版本由Michael Feathers完成,是操作系統(tǒng)相關(guān)的,是一個(gè)已經(jīng)被多數(shù)程序員采用和實(shí)證的優(yōu)秀的測(cè)試框架,基本類結(jié)構(gòu)如圖1所示。

CppUnit和JUnit一樣主要思想來(lái)源于極限編程(XProgramming)。主要功能就是對(duì)測(cè)試進(jìn)行管理,并可進(jìn)行自動(dòng)化測(cè)試。

3 Windows文件系統(tǒng)測(cè)試框架的設(shè)計(jì)

3.1 功能概要

本文設(shè)計(jì)的Windows文件系統(tǒng)自動(dòng)化測(cè)試框架WFSTester是建立在單元測(cè)試工具CPPUnit的基礎(chǔ)上,他擴(kuò)展了CPPUnit的功能,實(shí)現(xiàn)了功能測(cè)試的自動(dòng)化,以測(cè)試驅(qū)動(dòng)開發(fā)的新軟件理論搭建了Windows文件系統(tǒng)的測(cè)試框架。測(cè)試框架的流程如圖2所示。

圖2 WFSTester流程圖圖3 Windows虛擬文件系統(tǒng)

Linux下的虛擬文件系統(tǒng)Virtual File System(或者被稱為Virtual File system Switch或者VFS)為L(zhǎng)inux下的各種文件系統(tǒng)提供一個(gè)通用的接口,它屬于內(nèi)核軟件層,用來(lái)處理與標(biāo)準(zhǔn)文件系統(tǒng)有關(guān)的所有系統(tǒng)調(diào)用。其強(qiáng)壯表現(xiàn)在能為各種文件系統(tǒng)提供一個(gè)通用的接口。Windows雖然封裝了內(nèi)核,但是在實(shí)現(xiàn)上它也有虛擬文件系統(tǒng)的概念,也可支持多種文件系統(tǒng),如FAT和NTFS,該文件系統(tǒng)也為Windows下的各種文件系統(tǒng)提供了接口。

3.2 框架設(shè)計(jì)

對(duì)Windows文件系統(tǒng)的調(diào)用可以通過組合Windows API實(shí)現(xiàn),從系統(tǒng)角度來(lái)看,文件系統(tǒng)的功能主要有文件的創(chuàng)建,存入、讀出、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的存取,刪除文件等。在WFSTester的框架設(shè)計(jì)中,根據(jù)測(cè)試所調(diào)用的Windows API函數(shù)以及其各種可能組合,引用邊界值分析法設(shè)計(jì)測(cè)試用例,邊界值分析是考慮邊界條件而選取測(cè)試用例的一種黑盒測(cè)試方法,是對(duì)等價(jià)類劃分方法的補(bǔ)充。實(shí)踐證明,軟件在輸入、輸出域的邊界附近容易出現(xiàn)差錯(cuò),而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。

這里主要針對(duì)不同功能需求所調(diào)用的Windows API函數(shù)的輸入和輸出設(shè)計(jì)測(cè)試用例,并根據(jù)測(cè)試用例的特點(diǎn)將用例分類,組成一組組的測(cè)試套件,在套件的基礎(chǔ)上再進(jìn)行分類,以便于測(cè)試更好的執(zhí)行。

在基于CPPUnit基礎(chǔ)上的WFS測(cè)試框架設(shè)計(jì)中,引入了如下幾個(gè)概念:

1) TestCase:測(cè)試用例,是WFSTester中原子級(jí)測(cè)試單位,是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便核實(shí)是否滿足某個(gè)特定需求,如圖4所示。

2) TestSuite:測(cè)試套件,由若干個(gè)同類的TestCase可以組成一個(gè)TestSuite,如圖4所示。

3) TestModule:測(cè)試模塊,可以包含多個(gè)TestCase或TestSuite,通過多次反復(fù)調(diào)用一個(gè)或一組測(cè)試用例,用于實(shí)現(xiàn)系統(tǒng)的性能測(cè)試和壓力測(cè)試,如圖4所示。

4) TestIntercurrent:并發(fā)測(cè)試塊,并發(fā)調(diào)用一個(gè)或一組測(cè)試用例,用于實(shí)現(xiàn)系統(tǒng)的并發(fā)性測(cè)試。

其中TestCase和TestSuite是CPPUnit中原有的概念。

圖4 WFS測(cè)試框架

在WFS測(cè)試框架下,設(shè)計(jì)的測(cè)試用例包含Windows 文件系統(tǒng)范圍內(nèi)的Windows API函數(shù):

1) 單獨(dú)調(diào)用的每個(gè)Windows API函數(shù)

如CreateFile()共有七個(gè)函數(shù),該函數(shù)根據(jù)輸入?yún)?shù)的不同可以實(shí)現(xiàn)創(chuàng)建一個(gè)文件并返回創(chuàng)建文件的句柄或打開一個(gè)文件并返回該文件句柄等功能,利用等價(jià)類劃分和邊界值分析法,然后將各種可能參數(shù)進(jìn)行組合,作為函數(shù)的輸入域,根據(jù)不同的輸入確定返回值,每一種不同的輸入和輸出作為一個(gè)測(cè)試用例TestCase,每個(gè)TestCase需要一個(gè)setup()和teardown()函數(shù)為每個(gè)TestCase搭建準(zhǔn)備環(huán)境和處理相應(yīng)的收尾工作,每個(gè)TestSuite中的所有的TestCases共用相同的setup()和teardown()函數(shù)。

2) 組合調(diào)用的多個(gè)Windows API函數(shù)組合

分析測(cè)試的功能點(diǎn)所可能調(diào)用的各種函數(shù)的組合,如調(diào)用Windows API函數(shù)CreateDirectory()創(chuàng)建一個(gè)目錄,在該目錄下調(diào)用CreateFile()函數(shù)創(chuàng)建一個(gè)文件并以可讀可寫的方式打開該文件的句柄,再調(diào)用WriteFile()函數(shù)在該文件中寫入部分內(nèi)容,調(diào)用CloseFile()函數(shù)關(guān)閉文件句柄后再調(diào)用DeleteFile()函數(shù)刪除該文件這樣一系列的操作,利用等價(jià)類劃分法,將各種可能組合進(jìn)行等價(jià)類劃分,在此基礎(chǔ)上再次利用等價(jià)類劃分和邊界值分析法,對(duì)各種可能組合的輸入?yún)?shù)進(jìn)行組合,作為函數(shù)的輸入域,根據(jù)不同的輸入確定返回值,每一種不同的輸入和輸出作為一個(gè)TestCase,而每種函數(shù)的組合作為一個(gè)TestSuite,其下層可以再次定義多個(gè)子TestSuite,在子TestSuite中的所有的TestCases共用相同的setup()和teardown()函數(shù)。

3) 并發(fā)調(diào)用的單個(gè)Windows API函數(shù)

列出單個(gè)可并發(fā)調(diào)用的函數(shù),如CreateFile()和CreateFile(),DeleteFile()和DeleteFile()等,即在一個(gè)線程創(chuàng)建文件的時(shí)候有另一個(gè)線程也在創(chuàng)建該文件,或在一個(gè)線程刪除一個(gè)文件的時(shí)候另一個(gè)線程也在刪除該文件,對(duì)諸如此類的函數(shù)設(shè)計(jì)測(cè)試用例來(lái)測(cè)試文件系統(tǒng)的并發(fā)性。

4) 并發(fā)調(diào)用的多個(gè)Windows API函數(shù)組合

這個(gè)很容易理解,是單個(gè)可并發(fā)調(diào)用函數(shù)的擴(kuò)展,如WriteFile()和DeleteFile(),CreateDirectory()和RemoveDirectory()等,即在一個(gè)線程在寫文件的時(shí)候有另一個(gè)線程想要?jiǎng)h除該文件,或在一個(gè)線程創(chuàng)建目錄的時(shí)候有另一個(gè)線程想要?jiǎng)h除該目錄等。

5) 重復(fù)調(diào)用的單個(gè)Windows API函數(shù)

對(duì)單個(gè)API函數(shù)進(jìn)行重復(fù)調(diào)用,如對(duì)一個(gè)文件多次讀寫等操作。

6) 重復(fù)調(diào)用的多個(gè)Windows API函數(shù)組合

對(duì)多個(gè)API函數(shù)組合重復(fù)調(diào)用,如重復(fù)調(diào)用如下函數(shù)的組合:調(diào)用CreateFile()函數(shù)創(chuàng)建一個(gè)文件后,調(diào)用WriteFile()函數(shù)向該文件寫數(shù)據(jù),然后調(diào)用DeleteFile()函數(shù)刪除該文件。

對(duì)于文件系統(tǒng)的性能測(cè)試和壓力測(cè)試的設(shè)計(jì)需要根據(jù)文件系統(tǒng)的特性分析性能測(cè)試和壓力測(cè)試的指標(biāo),如文件讀寫的性能,并發(fā)處理的性能等設(shè)計(jì)相應(yīng)的測(cè)試用例,例如可通過多個(gè)TestCase的多線程并發(fā)來(lái)設(shè)計(jì)并發(fā)性測(cè)試,或反復(fù)多次的執(zhí)行某些指定的TestCases來(lái)進(jìn)行壓力測(cè)試。

3.3 測(cè)試結(jié)果記錄和導(dǎo)出

對(duì)于自動(dòng)化測(cè)試,結(jié)果的記錄和導(dǎo)出是很重要的。WFSTester可以借助CPPUnit輸出純文本格式,以編譯器兼容方式和XML格式的結(jié)果。

除此之外,還需要記錄性能測(cè)試和壓力測(cè)試的結(jié)果。并將結(jié)果生成圖片以便與查看Bugs的分布和性能測(cè)試的結(jié)果。

4 結(jié)束語(yǔ)

WFSTester的開發(fā)平臺(tái)是VC 6.0 IDE,使用C++語(yǔ)言,參考MSDN的Windows API,分析文件系統(tǒng)通用功能,設(shè)計(jì)測(cè)試用例,不僅可以完成功能測(cè)試,而且可以完成部分性能測(cè)試和壓力測(cè)試,利用測(cè)試驅(qū)動(dòng)開發(fā)的基本思想,在用戶在寫好測(cè)試用例之后進(jìn)行代碼的開發(fā),并針對(duì)各功能分別進(jìn)行第一時(shí)間的測(cè)試工作,保證開發(fā)質(zhì)量,提高開發(fā)效率。

參考文獻(xiàn):

[1] Kent Beck. Test Driven Development:By Example[M].Original English Language ed. Pearson Education,Inc,2004.

[2] David Astels. Test-Driven Development:A Practical Guide[M].Original English Language ed. Prentice Hall PTR,2004.

[3] Paul C Jorgensen. Software Testing:A Craftsman's Approach[M].Original English language ed. CRC Press LLC,2003.

[4] 朱少民. 全程軟件測(cè)試[M].北京:電子工業(yè)出版社,2007.

[5] 鄧正宏,高邐,鄭玉山. 面向?qū)ο笞詣?dòng)化測(cè)試框架的研究與設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2005,22(2):169-172 .

主站蜘蛛池模板: 白浆视频在线观看| 久久大香伊蕉在人线观看热2 | 亚洲男人的天堂在线观看| 毛片久久久| 成人午夜亚洲影视在线观看| 久久综合婷婷| www.国产福利| 亚洲综合在线最大成人| 亚洲综合天堂网| 91成人精品视频| 国产免费人成视频网| 99热这里都是国产精品| 欧美精品亚洲精品日韩专区| 久久这里只精品国产99热8| 欧美一区二区三区欧美日韩亚洲 | 成人午夜久久| 88av在线播放| 97se亚洲综合在线天天| 成人午夜福利视频| 久久精品免费国产大片| 黄色国产在线| 日韩高清在线观看不卡一区二区| 亚洲国产亚综合在线区| 波多野结衣视频一区二区| 色综合天天综合| 国产精品免费入口视频| 欧美一级色视频| 全免费a级毛片免费看不卡| 欧美精品在线观看视频| 亚洲制服中文字幕一区二区| 青青青伊人色综合久久| 亚洲国产精品日韩av专区| 国产小视频网站| 国产精品视频白浆免费视频| 在线色综合| 国产亚洲欧美在线视频| 国产素人在线| 91九色国产porny| 美女被躁出白浆视频播放| 亚洲中文字幕97久久精品少妇 | 久久亚洲日本不卡一区二区| 一级做a爰片久久免费| 国产美女主播一级成人毛片| 欧美激情第一欧美在线| 亚洲中文字幕在线一区播放| 婷婷色狠狠干| 亚洲成网777777国产精品| 国产毛片不卡| 国产黄在线观看| 午夜a视频| 亚洲精品国产精品乱码不卞| 91亚洲视频下载| 波多野结衣久久高清免费| 欧美日韩一区二区三区在线视频| 国产成人亚洲精品色欲AV| jijzzizz老师出水喷水喷出| 日韩无码视频专区| 天天操精品| 国产精品中文免费福利| 人人妻人人澡人人爽欧美一区 | 欧美笫一页| 久久青草热| 国产成人精品亚洲日本对白优播| 手机成人午夜在线视频| 亚洲综合第一区| 国产亚洲欧美在线人成aaaa| 欧美天堂在线| 久久免费看片| 国产精品福利导航| 精品国产成人a在线观看| 亚洲欧美不卡| 在线欧美国产| 男人的天堂久久精品激情| 久无码久无码av无码| 午夜精品区| 精品国产99久久| 小说 亚洲 无码 精品| 亚洲欧美一区二区三区蜜芽| 国产v欧美v日韩v综合精品| 日本a级免费| 中文字幕不卡免费高清视频| 99精品伊人久久久大香线蕉|