杜 娟,駱 慶,張 泉
(云南昆鋼電子信息科技有限公司,云南昆明,650302)
計算機軟件測試技術(shù)與深度開發(fā)應(yīng)用探討
杜 娟,駱 慶,張 泉
(云南昆鋼電子信息科技有限公司,云南昆明,650302)
在非專業(yè)軟件開發(fā)人員對軟件開發(fā)的過程中會遇到軟件設(shè)計方法與測試等方面的問題,對軟件測試的關(guān)鍵技術(shù)以及深度軟件開發(fā)的方法進行闡述,可以為非專業(yè)軟件開發(fā)人員開發(fā)軟件提供一定的指導。
黑盒測試;白盒測試;生命周期法;原型化方法;自動系統(tǒng)開發(fā)法
軟件深度開發(fā)的過程不僅復(fù)雜而且十分特殊,具體涉及到軟件架構(gòu)設(shè)計與算法編碼的具體過程。需要建立科學完善的計算機軟件深度開發(fā)體系,優(yōu)化軟件開發(fā)的整個流程,使得軟件的可靠性以及復(fù)用性以及可維護性都能夠得到保障。讓軟件在一定的環(huán)境下運行并對軟件的運行情況進行觀察,找出軟件在運行的過程中存在的問題,并將存在的問題記錄下來。在軟件測試完畢之后對測試過程中出現(xiàn)的問題進行總結(jié),并以此為基礎(chǔ)對軟件進行評價,最終完成整個軟件測試的過程。根據(jù)衡量軟件標準可以將軟件測試分為可靠、安全與性能測試,來分別對軟件的可靠性、安全性以及性能進行測試。 在測試的過程中可以將軟件在可靠性、安全性以及性能方面所存在的問題檢測出來,然后向軟件開發(fā)人員反饋,以便于下一步對軟件進行改進。
在軟件工程相關(guān)理論中將軟件的開發(fā)分為不同的階段,軟件開發(fā)包括前期的調(diào)研、需求與功能分析、軟件架構(gòu)設(shè)計、各個軟件模塊的開發(fā)、軟件的集成、軟件測試與交付用戶和后期維護等諸多環(huán)節(jié)。比如在軟件開發(fā)公司與客戶有合作意向并簽訂軟件開發(fā)合同之后,軟件公司會派出企業(yè)的開發(fā)人員到客戶公司進行實地的調(diào)研與客戶進行充分的溝通來達到充分理解客戶的軟件開發(fā)意圖,想要實現(xiàn)哪些功能,并將其一一記錄下來,并交給客戶進行審閱。然后客戶根據(jù)軟件開發(fā)者記錄的功能進行一一核對,對其中存在的問題比如功能是否完備,軟件實現(xiàn)的方式和運行的環(huán)境是否符合本公司的要求等等進行充分溝通,盡量避免由于溝通不暢而造成功能的不完備而出現(xiàn)最終返工的結(jié)果。在交流完畢之后軟件公司會成立項目小組,由項目小組負責對項目進行需求分析與功能分析,然后再次基礎(chǔ)上對軟件的架構(gòu)進行設(shè)計,在軟件架構(gòu)設(shè)計完畢之后由項目組長負責對任務(wù)進行分配,各個小組成員完成各自相應(yīng)的開發(fā)任務(wù),最后進行系統(tǒng)集成以及系統(tǒng)測試等環(huán)節(jié)。在計算機軟件深度開發(fā)的過程中,為了提高軟件的開發(fā)效率以及增強軟件開發(fā)的可靠性,軟件架構(gòu)設(shè)計者必須要從軟件開發(fā)的整個流程著手,來對軟件開發(fā)的流程、環(huán)節(jié)進行必要性的梳理,然后在此基礎(chǔ)上確定軟件開發(fā)的整個過程包括所有的環(huán)節(jié)以及各個環(huán)節(jié)之間的順序關(guān)系,實現(xiàn)軟件的深度開發(fā)。
1.1 軟件深度開發(fā)流程
在軟件深度開發(fā)過程中首要的任務(wù)是參與軟件開發(fā)的項目經(jīng)理和技術(shù)骨干通過與客戶之間的溝通來對客戶的需求進行梳理。在確定客戶的需求之后,相關(guān)工作人員需要結(jié)合這些需求來對軟件的結(jié)構(gòu)以及軟件的功能進行設(shè)計,然后接著對具體功能實現(xiàn)以及軟件的界面設(shè)計以及功能模塊設(shè)計進行任務(wù)的具體劃分,然后就是編碼工作。在使用編程語言進行軟件界面和具體功能開發(fā)的過程中,開發(fā)人員根據(jù)各自的分工來分別實現(xiàn)軟件的界面以及具體的功能設(shè)計,并且要明確軟件的使用環(huán)境,使得開發(fā)的軟件具有一定的針對性。此外在軟件深度開發(fā)的過程中還需要借助概要設(shè)計來對軟件開發(fā)過程中各個環(huán)節(jié)的工作進行簡化,使得整個開發(fā)流程看起來非常的簡潔清晰,這有利于保障開發(fā)人員在開發(fā)的過程中始終保持一個清晰的思路,在構(gòu)建起軟件開發(fā)環(huán)節(jié)之間的邏輯關(guān)系之后,能夠在一定程度上確保開發(fā)的目的性和準確性。
1.2 軟件編碼工作
在軟件的深度開發(fā)流程確定之后,軟件開發(fā)人員需要結(jié)合概要設(shè)計,開始進行代碼編寫的工作。在代碼編寫之初首先要確定的是編程語言,編碼語言有很多種選擇不同的編碼語言就選擇了軟件開發(fā)不同的架構(gòu)方式與軟件的層次結(jié)構(gòu),編碼的效率與代碼執(zhí)行的效率都會有所差異,這需要結(jié)合項目的開發(fā)周期、技術(shù)指標以及不同語言開發(fā)的難易程度不同來綜合選擇和設(shè)計,來最大限度的保障后續(xù)代碼編寫工作能夠在規(guī)定的開發(fā)周期內(nèi)完成軟件開發(fā)的整個過程。目前很多的嵌入式軟件都采用C語言進行開發(fā),并且有很多支持C語言的集成開發(fā)環(huán)境,但是對于大型的應(yīng)用軟件的開發(fā)C++語言用的比較多,而采用C#軟件界面的開發(fā)非常的有利,總之根據(jù)軟件具體要實現(xiàn)的功能以及上述約束條件來選擇具體的開發(fā)語言以及開發(fā)環(huán)節(jié)。
2.1 科學性原則
必須要采用科學的測試方法來對軟件進行測試。不同的測試內(nèi)容可以采用不同的測試方法比如功能測試可以采用黑盒測試的方法,性能測試可以采用黑盒測試的方法,可靠性也可以采用黑盒測試的方法,但是如果發(fā)現(xiàn)系統(tǒng)的功能不完善或者是性能未達到相應(yīng)的指標或者是軟件不可靠,這個時候需要對軟件中具體的問題進行定位,而定位則可以采用白盒測試方法。
2.2 實用性原則
為了能夠在軟件后期的測試過程中和現(xiàn)有的測試方法結(jié)合,需要考慮到軟件自身和測試軟件之間的兼容性,盡量減少軟件開發(fā)中的環(huán)節(jié)對測試過程的不利影響。在確保測試內(nèi)容完整的基礎(chǔ)上有最大限度的簡化測試的流程,降低軟件測試操作的難度,使得軟件測試的實用性大大增加,且在較短時間內(nèi)能夠完成對軟件的測試工作,保障軟件開發(fā)的過程能夠順利進行,并且確保軟件開發(fā)的質(zhì)量。
2.3 測試技術(shù)實踐方式
在對軟件進行測試的過程中,測試人員不僅要了解整個測試流程也要對軟件本身的功能有一個全面的了解,結(jié)合具體的測試實踐,有目的的對軟件測試的流程進行篩選,減少不必要的測試環(huán)節(jié),盡量提高軟件測試的效率,極大的簡化測試的流程。在對軟件進行測試的過程中,工作人員還需要根據(jù)軟件自身測試的實際要求,來確定軟件測試的工作重點,在這個基礎(chǔ)之上,將軟件與測試軟件有效的結(jié)合起來,采用科學的方式來選擇測試的過程和順序,確保針對軟件測試的針對性,并且保證測試結(jié)果的準確性,為后續(xù)的測試工作打下基礎(chǔ)。
深度軟件開發(fā)涉及到軟件開發(fā)流程的設(shè)計與具體編碼工作,需要科學合理的設(shè)計軟件開發(fā)流程,確保軟件開發(fā)的高效。根據(jù)軟件具體的開發(fā)流程來進行架構(gòu)設(shè)計并對編碼任務(wù)進行分配。軟件測試也是軟件開發(fā)整個過程中不可或缺的一個環(huán)節(jié),通過對軟件測試原則與具體測試實踐的描述,以期為軟件的完整性開發(fā)與測試人員提供一定的借鑒。
[1]趙麗輝. 面向?qū)ο筌浖y試技術(shù)及應(yīng)用實踐[J].電子技術(shù)與軟件工程.2017(14).
[2]王衛(wèi)鋒. 不同系統(tǒng)中軟件測試技術(shù)的應(yīng)用[J].信息與電腦(理論版).2014(07).
Discussion on computer software testing technology and deep development application
Du Juan,Luo Qing,Zhang Quan
(Yunnan Kunming electronic Mdt InfoTech Ltd Yunnan, Kunming Yunnan, 650302)
Facing the software design methods and test issues in non professional software developers on the process of software development, software testing methods of the key technology and the depth of software development is expounded, can provide some guidance for non professional software developers to develop software
black box testing; white box testing; life cycle method; prototyping method; automatic system development method