馬曉丹 王忠 范青剛 陳菁
[摘 要] 隨著軍用軟件設(shè)計(jì)復(fù)雜度和質(zhì)量要求的不斷提高,對(duì)軍隊(duì)院校傳統(tǒng)的程序設(shè)計(jì)基礎(chǔ)課教學(xué)提出了新的要求。為使學(xué)生的程序設(shè)計(jì)過(guò)程規(guī)范化,有必要在基礎(chǔ)教育中提高他們的軟件測(cè)試能力。本文闡述了以基礎(chǔ)課程內(nèi)容為基礎(chǔ),引入和滲透軟件測(cè)試思想和技術(shù)的解決思路。
[關(guān)鍵詞] 程序設(shè)計(jì)基礎(chǔ)課;測(cè)試;融合
[作者簡(jiǎn)介] 馬曉丹(1985—),女,寧夏銀川人,碩士,講師,研究方向?yàn)檐浖こ膛c測(cè)試。
[中圖分類(lèi)號(hào)] G642.0? ? [文獻(xiàn)標(biāo)識(shí)碼] A? ? [文章編號(hào)] 1674-9324(2020)26-0270-02? ? [收稿日期] 2020-02-09
隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,現(xiàn)代軍事裝備中計(jì)算機(jī)軟件的應(yīng)用比以往更加廣泛而深入,軟件開(kāi)發(fā)中出現(xiàn)缺陷的幾率也越來(lái)越高,而軍用軟件的廣泛應(yīng)用又對(duì)軟件質(zhì)量提出了更高的要求。因此,現(xiàn)實(shí)需求對(duì)軍用軟件開(kāi)發(fā)人員的素質(zhì)也提出了更高的要求。
程序設(shè)計(jì)基礎(chǔ)是對(duì)實(shí)際編程要求很強(qiáng)的基礎(chǔ)課程,要求學(xué)員既要學(xué)好語(yǔ)言語(yǔ)法知識(shí),又要通過(guò)大量的實(shí)際操作掌握編程的技巧技能。而目前程序設(shè)計(jì)基礎(chǔ)的內(nèi)容相對(duì)缺乏相應(yīng)的測(cè)試和應(yīng)用背景知識(shí),使得這門(mén)課的實(shí)用意義大大下降。本文從測(cè)試?yán)碚撆c程序設(shè)計(jì)基礎(chǔ)相結(jié)合的角度,討論如何引導(dǎo)學(xué)員從測(cè)試和應(yīng)用的角度來(lái)解決程序中遇到的開(kāi)發(fā)與設(shè)計(jì)的問(wèn)題。
一、根據(jù)軍用軟件的設(shè)計(jì)和開(kāi)發(fā)需求改變現(xiàn)有的教學(xué)理念
隨著軍用軟件規(guī)模的不斷擴(kuò)大、軟件的質(zhì)量和可靠性越來(lái)越受到重視的背景下,軟件測(cè)試的內(nèi)涵和外延也隨之愈加復(fù)雜起來(lái)。學(xué)員軟件測(cè)試能力的提升對(duì)于應(yīng)對(duì)實(shí)際崗位的需求具有巨大的實(shí)際意義,需要我們通過(guò)如下主要措施改變現(xiàn)有的教學(xué)理念:
1.培養(yǎng)學(xué)員學(xué)習(xí)軟件測(cè)試技術(shù)的興趣。在教授計(jì)算機(jī)程序設(shè)計(jì)類(lèi)課程過(guò)程中,應(yīng)有意識(shí)地讓學(xué)員了解軟件測(cè)試在整個(gè)軟件工程中的重要性,教給學(xué)員實(shí)際可用的軟件測(cè)試知識(shí),并讓學(xué)員了解當(dāng)前軍用軟件在軟件實(shí)際測(cè)試中采用的標(biāo)準(zhǔn),使學(xué)員學(xué)習(xí)起來(lái)具有明確的目的性,同時(shí)也能提高學(xué)員的學(xué)習(xí)熱情。
2.讓學(xué)員在學(xué)習(xí)基礎(chǔ)課程過(guò)程中積極應(yīng)用測(cè)試技術(shù)。在不改變程序設(shè)計(jì)基礎(chǔ)原有教學(xué)體系內(nèi)容的情況下,同時(shí)采用融合的方式滲透軟件測(cè)試技術(shù)的基礎(chǔ)知識(shí)和理論,并對(duì)編寫(xiě)的小程序進(jìn)行簡(jiǎn)單的測(cè)試。
二、常用測(cè)試技術(shù)與程序設(shè)計(jì)基礎(chǔ)課程中知識(shí)點(diǎn)相融合的研究[2]
1.可以將軟件測(cè)試技術(shù)中的白盒測(cè)試技術(shù)融入程序設(shè)計(jì)基礎(chǔ)課中選擇、循環(huán)的知識(shí)體系之中。白盒測(cè)試技術(shù)也稱(chēng)結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,主要目的是測(cè)試程序的內(nèi)部結(jié)構(gòu)是否邏輯正確,在程序設(shè)計(jì)基礎(chǔ)課程中,語(yǔ)法講解主要對(duì)應(yīng)的是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),在講解三個(gè)基本結(jié)構(gòu)的時(shí)候可以將白盒測(cè)試中的邏輯覆蓋和語(yǔ)句覆蓋的思想融入其中,使學(xué)生明白什么是代碼走查,以及代碼走查的意義,培養(yǎng)編寫(xiě)完一個(gè)簡(jiǎn)單功能的代碼段之后進(jìn)行邏輯上的自我檢錯(cuò)的編程習(xí)慣。根據(jù)覆蓋目標(biāo)的不同和覆蓋源程序語(yǔ)句的詳盡程度,邏輯覆蓋又可分為由弱到強(qiáng)的語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、條件/判定覆蓋、條件組合覆蓋等,路徑覆蓋可以在教學(xué)中根據(jù)一個(gè)實(shí)際的選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的例子,來(lái)教授學(xué)員各種覆蓋測(cè)試的含義和用例的編寫(xiě)。
2.可以將軟件測(cè)試技術(shù)中的黑盒測(cè)試思想中的等價(jià)劃分技術(shù)、邊界值分析技術(shù)融合在程序調(diào)試和正確性驗(yàn)證的學(xué)習(xí)之中。黑盒測(cè)試又叫功能測(cè)試、數(shù)據(jù)驅(qū)動(dòng)測(cè)試或基于需求規(guī)格說(shuō)明書(shū)的功能測(cè)試。該類(lèi)測(cè)試注重于測(cè)試軟件的功能性需求,檢查程序的功能是否符合它的功能說(shuō)明。這種視角的測(cè)試方法能更好、更真實(shí)地從用戶(hù)角度來(lái)考察被測(cè)系統(tǒng)的功能性需求實(shí)現(xiàn)情況。常見(jiàn)的方法是等價(jià)類(lèi)劃分、邊界值分析、因果圖分析和錯(cuò)誤猜測(cè)。可以通過(guò)采用比較基本的等價(jià)劃分和邊界值分析兩種思想選取測(cè)試不同種類(lèi)的數(shù)據(jù),測(cè)試程序是否在所有情況下都可以正常運(yùn)行,并引導(dǎo)學(xué)員明白利用等價(jià)劃分技術(shù)分析數(shù)據(jù)的意義所在,明白程序的健壯性評(píng)價(jià)指標(biāo)的正確含義。
3.可以將軟件測(cè)試技術(shù)中的單元測(cè)試與程序設(shè)計(jì)基礎(chǔ)中的有關(guān)于函數(shù)章節(jié)相結(jié)合,把程序設(shè)計(jì)中的函數(shù)認(rèn)為是一個(gè)模塊,毫無(wú)疑問(wèn),一個(gè)函數(shù)應(yīng)該完成一個(gè)獨(dú)立的功能。編寫(xiě)完一個(gè)函數(shù)之后,應(yīng)該對(duì)之進(jìn)行函數(shù)功能的測(cè)試,也可認(rèn)為是單元測(cè)試,確認(rèn)這個(gè)函數(shù)的正確性,然后再進(jìn)行下一個(gè)函數(shù)的編寫(xiě)。
4.可以將軟件測(cè)試技術(shù)中的集成測(cè)試與程序設(shè)計(jì)基礎(chǔ)課中文件的概念相結(jié)合。可以將程序設(shè)計(jì)基礎(chǔ)中的若干個(gè)函數(shù)模塊組成一個(gè)文件進(jìn)行單元測(cè)試,確認(rèn)本模塊的正確性之后,和其他函數(shù)模塊進(jìn)行逐個(gè)集成,學(xué)習(xí)集成測(cè)試的相關(guān)知識(shí)。
5.可以將軟件測(cè)試技術(shù)中的功能測(cè)試與程序設(shè)計(jì)基礎(chǔ)課中的軟件需求相結(jié)合。集成所有文件和資源后,參照功能需求手冊(cè)進(jìn)行功能測(cè)試,由假定的用戶(hù)人員完成驗(yàn)收測(cè)試。完成完整的測(cè)試流程后,在不同分組中分別扮演開(kāi)發(fā)人員和用戶(hù),每個(gè)組都要以用戶(hù)的視角和身份測(cè)試運(yùn)行其他小組的程序,確認(rèn)程序是否良好地實(shí)現(xiàn)了軟件需要。
最終達(dá)到使學(xué)員在編寫(xiě)程序時(shí)充分融入軟件測(cè)試意識(shí),即在進(jìn)行軟件開(kāi)發(fā)和程序編寫(xiě)時(shí)注重技術(shù)文檔的書(shū)寫(xiě)。在對(duì)國(guó)軍標(biāo)解讀之后,建立良好的編程風(fēng)格和習(xí)慣,養(yǎng)成編程的可讀性、代碼注釋率、縮進(jìn)等規(guī)范化意識(shí),以用戶(hù)的視角提出對(duì)不合理數(shù)據(jù)進(jìn)行軟件測(cè)試,通過(guò)這種測(cè)試有助于全面提高了學(xué)員綜合應(yīng)用能力與創(chuàng)新思維。在實(shí)踐的教學(xué)效果上,能夠觀察到學(xué)員在代碼書(shū)寫(xiě)、流程圖表示規(guī)范化上取得了比較滿(mǎn)意的效果。
三、學(xué)員測(cè)試思想和基本技能的培養(yǎng)
為了進(jìn)一步引導(dǎo)學(xué)員從軟件測(cè)試的角度解決和完善程序設(shè)計(jì),提高學(xué)員的綜合素養(yǎng),在常用測(cè)試技術(shù)與程序設(shè)計(jì)基礎(chǔ)課程中知識(shí)點(diǎn)相融合的過(guò)程中,應(yīng)當(dāng)注意以下幾個(gè)習(xí)慣的培養(yǎng)。
1.拋開(kāi)開(kāi)發(fā)者心態(tài),以用戶(hù)的視角對(duì)待功能開(kāi)發(fā)。在開(kāi)發(fā)和測(cè)試的過(guò)程中應(yīng)該以第三方用戶(hù)的角度,培養(yǎng)自己對(duì)用戶(hù)需求的感知。做好需求分析是有效開(kāi)發(fā)的第一步,在實(shí)際開(kāi)發(fā)中應(yīng)盡可能多地和用戶(hù)溝通實(shí)際的應(yīng)用需求,并且在分組測(cè)試中盡可能地觀察其他小組對(duì)功能不夠清晰的用戶(hù)使用軟件的方法及遇到的問(wèn)題,多從用戶(hù)的角度去考慮問(wèn)題,更全面地考慮程序設(shè)計(jì)的任務(wù)。
2.嚴(yán)肅對(duì)待分組測(cè)試中的代碼缺陷。在分組測(cè)試中,各小組要正確面對(duì)其他小組開(kāi)發(fā)軟件中出現(xiàn)的軟件缺陷,開(kāi)發(fā)人員應(yīng)該學(xué)會(huì)及時(shí)地與測(cè)試或用戶(hù)進(jìn)行溝通,以便實(shí)現(xiàn)對(duì)錯(cuò)誤的定位和加以更正,從而獲得具有實(shí)際應(yīng)用價(jià)值的項(xiàng)目體驗(yàn),從別人如何找到代碼缺陷的過(guò)程中學(xué)到更多關(guān)于軟件測(cè)試指標(biāo)的評(píng)價(jià)意義,以提高自己的觀察力。
3.注意開(kāi)發(fā)過(guò)程中的文檔開(kāi)發(fā)的規(guī)范化。在完整的測(cè)試流程的體驗(yàn)中可以讓學(xué)員體會(huì)到文檔開(kāi)發(fā)的重要性,認(rèn)識(shí)到合乎規(guī)定需求的說(shuō)明書(shū)、規(guī)格說(shuō)明書(shū)對(duì)整個(gè)項(xiàng)目測(cè)試驗(yàn)收的重要性。在開(kāi)發(fā)過(guò)程中養(yǎng)成良好的開(kāi)發(fā)習(xí)慣及代碼編寫(xiě)風(fēng)格,重視代碼注釋率對(duì)小組協(xié)同溝通工作的重要性,初步理解國(guó)軍標(biāo)的相關(guān)規(guī)定,這對(duì)以后的實(shí)際開(kāi)發(fā)工作具有重要意義。
4.測(cè)試的過(guò)程應(yīng)以發(fā)現(xiàn)軟件的缺陷為主要目的。要讓學(xué)員明白軟件測(cè)試主要是通過(guò)各種手段找出軟件中潛在的錯(cuò)誤和缺陷,以提高軟件的質(zhì)量和可靠性。因此,軟件測(cè)試的主要目的是為了發(fā)現(xiàn)軟件的錯(cuò)誤和缺陷,而錯(cuò)誤和缺陷的更正則會(huì)提升我們對(duì)軟件質(zhì)量的信心。
5.積極運(yùn)用測(cè)試方法和技巧。在進(jìn)行測(cè)試設(shè)計(jì)的時(shí)候,無(wú)論是使用等價(jià)類(lèi)劃分還是邊界值,使用邏輯覆蓋還是語(yǔ)句覆蓋,都是有效的設(shè)計(jì)方法。在實(shí)際的開(kāi)發(fā)和測(cè)試過(guò)程中,要有意識(shí)地培養(yǎng)學(xué)員積累不同測(cè)試方法所適用的場(chǎng)合,不斷積累經(jīng)驗(yàn)并嘗試找到更有創(chuàng)造性的方法。
四、結(jié)束語(yǔ)
程序是構(gòu)成軟件的主要組成部分,程序的規(guī)范性、正確性、健壯性等問(wèn)題關(guān)系到整個(gè)軟件的質(zhì)量。軟件開(kāi)發(fā)和程序設(shè)計(jì)是一個(gè)完整的過(guò)程,而不只是代碼編寫(xiě)。要讓學(xué)員意識(shí)到代碼編寫(xiě)只是軟件開(kāi)發(fā)的一個(gè)小部分,在程序設(shè)計(jì)的基礎(chǔ)理論課程中應(yīng)該培養(yǎng)學(xué)生編程能力的同時(shí)加強(qiáng)對(duì)軟件測(cè)試能力的滲透培養(yǎng),增強(qiáng)對(duì)軟件和程序的宏觀認(rèn)識(shí),解決學(xué)員在實(shí)際開(kāi)發(fā)工作中存在的編碼不規(guī)范、文檔不完善的問(wèn)題。
參考文獻(xiàn)
[1]馬紅星,張洋.軍用軟件自動(dòng)化測(cè)試與質(zhì)量監(jiān)督的探討[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2018(6).
[2]劉舒婷.軟件測(cè)試思維在“程序設(shè)計(jì)基礎(chǔ)”教學(xué)中的培養(yǎng)初探[J].中國(guó)校外教育,2016(3).
Research on Integration of Testing Thinking in Program Design Basis Course in Military Academies
MA Xiao-dan,WANG Zhong,F(xiàn)AN Qing-gang,CHEN Jing
(Rocket Force University of Engineering,Xi'an,Shaanxi 710025,China)
Abstract:With the increasing complexity and quality requirements of military software design,new requirements have been raised for the traditional teaching of Program Design Basis course in military academies.In order to standardize students' program design process,it is necessary to improve the software testing ability in basic education.Based on the content of basic course,this article elaborates on the solutions of introducing and integrating software testing ideas and technologies.
Key words:Program Design Basis course;testing;integration