国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

以“涇渭分明”的職責(zé)進(jìn)行單元測(cè)試改革

2022-03-16 23:34:23譚學(xué)芹
科教導(dǎo)刊·電子版 2022年9期
關(guān)鍵詞:粗粒度單元測(cè)試測(cè)試人員

譚學(xué)芹

(廣州軟件學(xué)院 廣東·廣州 510980)

在一個(gè)項(xiàng)目中,程序開發(fā)出來(lái)后,首先就要進(jìn)行單元測(cè)試,在單元測(cè)試過(guò)程中,有一部分是本身程序開發(fā)人員進(jìn)行操作,另外一部分屬于軟件測(cè)試人員進(jìn)行操作的。但至于劃分哪些單元測(cè)試是由測(cè)試人員去進(jìn)行,哪些由開發(fā)人員去進(jìn)行呢?業(yè)界其實(shí)一直都有一定的爭(zhēng)論,在平常開課中,一般都認(rèn)為單元測(cè)試只是軟件測(cè)試方向人員所做的工作,但只要上網(wǎng)搜索一下相關(guān)資料,不難發(fā)現(xiàn),單元測(cè)試其實(shí)做得最多卻是軟件開發(fā)人員,至于測(cè)試人員,一般都是軟件開發(fā)差不多時(shí),才進(jìn)行介入,主要做集成方面的測(cè)試。由此,開設(shè)單元測(cè)試課程中,就已經(jīng)進(jìn)入一個(gè)誤區(qū),為了搞清楚弄明白這個(gè)誤區(qū),應(yīng)該要對(duì)單元測(cè)試課程進(jìn)行深入的企業(yè)調(diào)查研究,針對(duì)社會(huì)上實(shí)際需求進(jìn)行單元測(cè)試課程改革。

1 單元測(cè)試重要性

單元測(cè)試一般都是針對(duì)源代碼的測(cè)試,在單元測(cè)試中,有一些測(cè)試原則需要遵循。第一個(gè)原則是盡可能保證各個(gè)測(cè)試用例是互相獨(dú)立的,應(yīng)該避免在測(cè)試類中調(diào)用其他依賴的類。第二個(gè)原則是一般由代碼的開發(fā)人員來(lái)實(shí)施,用以檢驗(yàn)所開發(fā)的代碼功能符合自己的設(shè)計(jì)要求。[1]就是實(shí)施單元測(cè)試的人需要對(duì)被測(cè)試的模塊代碼有相當(dāng)程度的了解。

在軟件測(cè)試的不同階段當(dāng)中,單元測(cè)試是個(gè)非常重要的階段,可以說(shuō)是其他測(cè)試階段的基礎(chǔ),單元測(cè)試有很多好處。第一個(gè)好處是通過(guò)單元測(cè)試能盡早發(fā)現(xiàn)缺陷,在測(cè)試的前期能夠發(fā)現(xiàn)更多的缺陷,而且收益是更高的。第二個(gè)好處是有利于重構(gòu),通過(guò)實(shí)施單元測(cè)試有利于重構(gòu),進(jìn)行了完善的單元測(cè)試就能夠最大限度地保證后面的重構(gòu)的正確性,且可以快速識(shí)別出重構(gòu)時(shí)出現(xiàn)的問(wèn)題。第三個(gè)優(yōu)點(diǎn)是簡(jiǎn)化集成,單元測(cè)試保證最小單元模塊的穩(wěn)定性和正確性,為我們后面的集成測(cè)試奠定了基礎(chǔ)。第四個(gè)優(yōu)點(diǎn)是文檔,單元測(cè)試包括了對(duì)模塊的基本理解和特性,如果單元測(cè)試比較規(guī)范,通過(guò)對(duì)它的閱讀,就能夠基本了解到這個(gè)模塊的特性,單元測(cè)試就相當(dāng)于文檔。第五個(gè)優(yōu)點(diǎn)是用于設(shè)計(jì),通過(guò)編寫單元測(cè)試,可以把設(shè)計(jì)思路體現(xiàn)在單元測(cè)試的組織當(dāng)中。[3]由此可見,單元測(cè)試做得好與否,將會(huì)直接關(guān)系到項(xiàng)目是否完善,對(duì)于項(xiàng)目日后bug追溯起到很重要的作用。

2 開發(fā)和測(cè)試人員寫單元測(cè)試的優(yōu)、缺點(diǎn)

2.1 開發(fā)人員寫單元測(cè)試

優(yōu)點(diǎn):開發(fā)對(duì)代碼最熟悉,而且開發(fā)技能也強(qiáng),開發(fā)自己寫單元測(cè)試效率上和覆蓋率上都比較高。而且單元測(cè)試有時(shí)候需要開發(fā)對(duì)代碼進(jìn)行部分重構(gòu)才方便進(jìn)行,開發(fā)自己做這些重構(gòu)也比較順手。

缺點(diǎn):開發(fā)平時(shí)寫業(yè)務(wù)代碼就忙不過(guò)來(lái)了,哪有時(shí)間寫單元測(cè)試?而且大部分開發(fā)沒(méi)有太好的測(cè)試思想,單元測(cè)試可能只是寫個(gè)最簡(jiǎn)單的用例就完了,最終可能單元測(cè)試通過(guò),但基本的功能還是有問(wèn)題,這樣的單測(cè)沒(méi)有太大作用。

2.2 測(cè)試人員寫單元測(cè)試

優(yōu)點(diǎn):測(cè)試有比較好的測(cè)試思想,可以更好地保證用例的覆蓋。而且通過(guò)寫單元測(cè)試能更好地了解具體代碼結(jié)構(gòu)、流程,對(duì)于后續(xù)的業(yè)務(wù)測(cè)試也有利。

缺點(diǎn):有比較好代碼能力的測(cè)試人員不多,而且測(cè)試對(duì)代碼沒(méi)有開發(fā)熟悉,遇上為了可測(cè)性需要重構(gòu)的時(shí)候還是得開發(fā)花時(shí)間配合。效率上不如開發(fā)自己寫。

3 單元測(cè)試如何進(jìn)行改革

(1)必須清楚單元測(cè)試中要做的所有工作,列出具體內(nèi)容,同時(shí),也列舉出要用的相關(guān)的知識(shí)點(diǎn),列舉出在哪個(gè)時(shí)間段進(jìn)行的。

(2)明確軟件開發(fā)與軟件測(cè)試的目標(biāo),必須清楚一般情況下,哪部分是由軟件開發(fā)人員做的,哪部分是由測(cè)試人員做的,分工應(yīng)該如何進(jìn)行配合,如何才能做到最佳的配合。

(3)弄清楚各自的測(cè)試計(jì)劃,這樣對(duì)各自的職責(zé)都是明確的,有利于系統(tǒng)順利地進(jìn)行開發(fā)及完成。

(4)如果存在相關(guān)重復(fù)的,應(yīng)該如何劃分責(zé)任。如果存在互不相關(guān),但又必須要做,又如何進(jìn)行重新分工。

(5)如何將測(cè)試結(jié)果進(jìn)行相互共享,相互進(jìn)行改進(jìn),最終形成一個(gè)共同的單元測(cè)試報(bào)告。

4 軟件開發(fā)方向單元測(cè)試任務(wù)

鑒于軟件開發(fā)人員最熟悉代碼,且開發(fā)能力強(qiáng),在單元測(cè)試分工中,會(huì)更多的做邏輯性更強(qiáng)、應(yīng)用性更強(qiáng)的單元測(cè)試任務(wù):

(1)粗粒度測(cè)試。隔離測(cè)試是單元測(cè)試的核心,隔離測(cè)試包括粗粒度測(cè)試和細(xì)粒度測(cè)試,粗粒度測(cè)試構(gòu)建的依賴部件是一個(gè)比較大的模塊,比如Web服務(wù)器、文件系統(tǒng)或者數(shù)據(jù)庫(kù)等。通過(guò)stub技術(shù)來(lái)做粗粒度測(cè)試,寫出的stub替代代碼需要有詳細(xì)的邏輯處理,因此這種粗粒度隔離測(cè)試比較適合開發(fā)人員來(lái)完成。

(2)服務(wù)器端應(yīng)用測(cè)試。組件測(cè)試是軟件項(xiàng)目軟件質(zhì)量控制不可缺少的一個(gè)環(huán)節(jié),對(duì)組件進(jìn)行單元測(cè)試要難于對(duì)普通Java類進(jìn)行單元測(cè)試,這是因?yàn)榻M件要與它們的容器打交道。容器內(nèi)單元測(cè)試通常使用Cactus框架在容器內(nèi)運(yùn)行測(cè)試[5]。因?yàn)橐M(jìn)行容器內(nèi)單元測(cè)試,需要深入理解組件、容器等相關(guān)的知識(shí),所以是比較適合軟件開發(fā)人員來(lái)進(jìn)行這一塊的單元測(cè)試。

(3)數(shù)據(jù)庫(kù)訪問(wèn)測(cè)試。數(shù)據(jù)庫(kù)訪問(wèn)代碼毫無(wú)疑問(wèn)是任何企業(yè)項(xiàng)目中最重要的部分之一,在實(shí)際測(cè)試中采用DbUnit工具對(duì)Java應(yīng)用程序的數(shù)據(jù)庫(kù)訪問(wèn)代碼進(jìn)行單元測(cè)試。只要掌握數(shù)據(jù)庫(kù)訪問(wèn)相關(guān)知識(shí)和DbUnit工具的使用,就可以勝任數(shù)據(jù)庫(kù)訪問(wèn)的單元測(cè)試任務(wù)。軟件開發(fā)人員和測(cè)試人員均可以承擔(dān)這部分的測(cè)試任務(wù)。

5 軟件測(cè)試方向單元測(cè)試任務(wù)

軟件測(cè)試人員相對(duì)開發(fā)人員來(lái)說(shuō),代碼能力相對(duì)弱些,但是有很好的測(cè)試思想,針對(duì)不需要有非常好的代碼能力的單元測(cè)試任務(wù)比較適合軟件測(cè)試人員來(lái)做:

(1)隔離測(cè)試中的細(xì)粒度測(cè)試。細(xì)粒度測(cè)試指主要測(cè)試對(duì)象依賴其他類對(duì)象的場(chǎng)景,按照單元測(cè)試的隔離思想,在測(cè)試主要測(cè)試對(duì)象的時(shí)候,會(huì)創(chuàng)建模擬的對(duì)象來(lái)代替依賴的對(duì)象。在做這種細(xì)粒度測(cè)試通常采用 mock框架如EasyMock借助一些簡(jiǎn)單的方法動(dòng)態(tài)生成依賴對(duì)象,這個(gè)過(guò)程不需要手工創(chuàng)建模擬類,代碼量比較小,比較適合軟件測(cè)試人員完成這一部分的單元測(cè)試任務(wù)。

(2)數(shù)據(jù)庫(kù)訪問(wèn)測(cè)試。只要軟件測(cè)試人員掌握數(shù)據(jù)庫(kù)訪問(wèn)相關(guān)知識(shí)并會(huì)使用專門用于數(shù)據(jù)庫(kù)訪問(wèn)單元測(cè)試的工具DbUnit,完全可以和開發(fā)人員合理分工一起完成應(yīng)用程序的數(shù)據(jù)庫(kù)訪問(wèn)測(cè)試任務(wù)。

(3)基于Parasoft Jtest單元測(cè)試工具進(jìn)行單元測(cè)試。Parasoft Jtest是為Java EE、Web及其他Java應(yīng)用程序的開發(fā)團(tuán)隊(duì)量身定做的一款全面測(cè)試Java程序的工具,可以自動(dòng)查找隱藏的運(yùn)行缺陷、自動(dòng)代碼檢測(cè)、自動(dòng)生成高質(zhì)量的測(cè)試用例集合發(fā)現(xiàn)盡可能多的結(jié)構(gòu)性錯(cuò)誤等,通過(guò)該工具可以很方便的進(jìn)行單元自動(dòng)化測(cè)試[4]。軟件測(cè)試人員通過(guò)相關(guān)學(xué)習(xí)掌握Parasoft Jtest工具的使用,且該工具不需要編寫測(cè)試腳本或測(cè)試用例,適合測(cè)試人員去完成這部分測(cè)試工作。

(4)單元測(cè)試框架與構(gòu)建工具的集成。通過(guò)構(gòu)建工具,可以實(shí)現(xiàn)代碼編譯、打包、測(cè)試、部署等一系列過(guò)程實(shí)現(xiàn)自動(dòng)化,可以有效的節(jié)約開發(fā)人員或者測(cè)試人員在這一系列過(guò)程中所耗費(fèi)的時(shí)間。在進(jìn)行持續(xù)集成構(gòu)建過(guò)程,通常將Junit與構(gòu)建工具Ant與Maven進(jìn)行集成。通過(guò)Ant可以將測(cè)試作為Ant構(gòu)建生命周期中的一部分來(lái)啟動(dòng),并且可以根據(jù)Junit的執(zhí)行結(jié)果生成一些特定的報(bào)告。通過(guò)Maven可以在Maven構(gòu)建生命周期中包含測(cè)試的執(zhí)行還可以使用Maven插件生成HTML報(bào)告[5]。關(guān)于單元測(cè)試框架與構(gòu)建工具的集成,軟件測(cè)試人員可以進(jìn)行。

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

在敏捷開發(fā)的時(shí)代,強(qiáng)調(diào)團(tuán)隊(duì)內(nèi)部的協(xié)作。單元測(cè)試是要求開發(fā)人員與測(cè)試人員相互配合才能完成的,各自完成各自的任務(wù),甚至有些測(cè)試任務(wù)兩者還可以合作完成,故在改革過(guò)程中,應(yīng)該在此課程改革中要進(jìn)行仔細(xì)研究一般哪部分是屬于軟件開發(fā)要做的工作,哪部分是屬于軟件測(cè)試方面的工作,只有做好這方面的改革工作,才能讓整個(gè)項(xiàng)目系統(tǒng)開發(fā)過(guò)程變得更加成熟穩(wěn)重,系統(tǒng)才能變得更加規(guī)范。

猜你喜歡
粗粒度單元測(cè)試測(cè)試人員
一種端到端的加密流量多分類粗粒度融合算法*
移動(dòng)應(yīng)用眾包測(cè)試人員信譽(yù)度復(fù)合計(jì)算模型研究
基于卷積神經(jīng)網(wǎng)絡(luò)的粗粒度數(shù)據(jù)分布式算法
高校分析測(cè)試中心測(cè)試隊(duì)伍建設(shè)方案初探
山東化工(2018年20期)2018-04-02 16:30:53
在線評(píng)論情感分析研究綜述
淺析軟件測(cè)試中的心理學(xué)應(yīng)用
基于公共池自適應(yīng)遷移策略的并行遺傳算法
一年級(jí)上冊(cè)第五單元測(cè)試
一年級(jí)上冊(cè)一、二單元測(cè)試
犯罪心理測(cè)試人員素質(zhì)要求分析
深圳市| 康定县| 云林县| 山阴县| 垫江县| 东宁县| 米林县| 珲春市| 霸州市| 册亨县| 昌平区| 泗阳县| 邵东县| 梧州市| 武定县| 华阴市| 南投县| 深水埗区| 高雄县| 于田县| 洛隆县| 上林县| 砀山县| 阿合奇县| 姚安县| 湘乡市| 依安县| 右玉县| 鹤山市| 邯郸县| 新乡市| 安康市| 锡林浩特市| 阿瓦提县| 英德市| 衡水市| 岳池县| 绵阳市| 岳阳县| 樟树市| 廊坊市|