代碼規(guī)則介紹:
我們知道,軟件工程所講述的都是軟件開(kāi)發(fā)的一些道理,這些道理基本上都是軟件開(kāi)發(fā)的實(shí)踐者的成功經(jīng)驗(yàn)或失敗教訓(xùn)的總結(jié),我們說(shuō),這些總結(jié)就是我們代碼檢查所遵循的規(guī)則,QAC/C++維護(hù)了一個(gè)關(guān)于代碼規(guī)則的數(shù)據(jù)庫(kù),在這個(gè)數(shù)據(jù)庫(kù)中,內(nèi)嵌了許多著名的編程規(guī)范,包括ISO,MISRA(歐洲汽車(chē)工業(yè)行業(yè)標(biāo)準(zhǔn)),等等。
如果軟件企業(yè)都能在代碼編寫(xiě)的階段都能遵循一定的代碼規(guī)則,這對(duì)我們的軟件產(chǎn)品的質(zhì)量將回大有益處,首先,在同一個(gè)開(kāi)發(fā)團(tuán)隊(duì)中使用代碼規(guī)則,可以形成這個(gè)開(kāi)發(fā)團(tuán)隊(duì)統(tǒng)一的開(kāi)發(fā)風(fēng)格,產(chǎn)品個(gè)性;其次,遵循一定的代碼規(guī)則,可以提高模塊的可移植性和可維護(hù)性,最后,代碼規(guī)則檢查也是提高代碼質(zhì)量最有效、最直接的手段。
當(dāng)前做代碼規(guī)則檢查面臨的困境:
- 代碼規(guī)則檢查需要付出很繁重的勞動(dòng)——重新理解代碼,國(guó)內(nèi)一些,軟件工程發(fā)展到現(xiàn)在,已經(jīng)有了專(zhuān)職的測(cè)試人員,即使非常專(zhuān)業(yè)的測(cè)試人員,理解別人寫(xiě)的代碼也是一項(xiàng)很繁瑣的工作。
- 時(shí)間和資源的限制,我們說(shuō),任何一個(gè)企業(yè)都可以做出優(yōu)秀的軟件,前 提是給他足夠的時(shí)間和物質(zhì)資源,可現(xiàn)實(shí)的軟件開(kāi)發(fā)的矛盾卻是:在有限的時(shí)間內(nèi)、利用有限的經(jīng)費(fèi),來(lái)做高可靠性的軟件。
- 很多人不重視代碼規(guī)則檢查,包括很多軟件企業(yè)的領(lǐng)導(dǎo)、項(xiàng)目負(fù)責(zé)人等, 認(rèn)為代碼規(guī)則檢查浪費(fèi)人力和物力,恰恰相反,這種觀(guān)點(diǎn)就把軟件中存在的問(wèn)題留到了最后,在軟件維護(hù)過(guò)程中會(huì)付出昂貴的代價(jià)。經(jīng)驗(yàn)表明,軟件中的問(wèn)題發(fā)現(xiàn)的越早,要克服這個(gè)問(wèn)題付出的代價(jià)越小。
產(chǎn)品的特點(diǎn)(QAC為例):
- 代碼規(guī)則檢查自動(dòng)化
這是一個(gè)基于C語(yǔ)言開(kāi)發(fā)環(huán)境下用以提高軟件產(chǎn)品產(chǎn)量和質(zhì)量標(biāo)準(zhǔn)的深層次靜態(tài)分析工具軟件。這個(gè)軟件可以自動(dòng)識(shí)別C語(yǔ)言源代碼中出現(xiàn)的問(wèn)題。這些問(wèn)題主要是語(yǔ)言使用過(guò)程不安全,過(guò)于復(fù)雜,無(wú)法移植,難以維護(hù)或與該行業(yè)的代碼標(biāo)準(zhǔn)偏離造成的。QAC能夠?qū)υS多編譯器或其他工具開(kāi)發(fā)軟件無(wú)法說(shuō)明的問(wèn)題提出警告。這個(gè)工具將極大的縮減代碼檢測(cè)的時(shí)間并能同時(shí)加強(qiáng)程序設(shè)計(jì)人員對(duì) C語(yǔ)言中不完全為人理解的某些特點(diǎn)的認(rèn)知。利用QAC,在開(kāi)發(fā)軟件早期階段對(duì)存在的問(wèn)題加以注意, 如能將代碼質(zhì)量提高,同時(shí)測(cè)試周期也將縮短。達(dá)到雙贏的效果.
- 提供深層次的靜態(tài)分析
工具不但可迅速而有效的檢測(cè)出語(yǔ)言運(yùn)用中的錯(cuò)誤、已過(guò)時(shí)用法、程序標(biāo)準(zhǔn)一致性問(wèn)題,從而防止在軟件開(kāi)發(fā)的后期以更昂貴的代價(jià)去解決問(wèn)題。而且還將工業(yè)標(biāo)準(zhǔn)分析度量標(biāo)準(zhǔn)和通俗易懂的報(bào)告結(jié)合在一起。
- 規(guī)則可以定制
對(duì)于工具的數(shù)據(jù)庫(kù)中已有的規(guī)則,可以有測(cè)試人員決定使用哪項(xiàng)規(guī)則或不使用哪項(xiàng)規(guī)則,或者是某一個(gè)錯(cuò)誤等級(jí)的規(guī)則。
對(duì)于特殊行業(yè)來(lái)講,也許您的需求有點(diǎn)特殊,在工具中沒(méi)有您所要求的規(guī)則,沒(méi)有關(guān)系,這個(gè)規(guī)則是可以人為擴(kuò)充的,您可以用QAC提供的定制的方法來(lái)添加您想要的規(guī)則。
- 可以和開(kāi)發(fā)工具集成
可以和Visual Studio v6.0、 Visual Studio .NET、Tornado集成,在開(kāi)發(fā)環(huán)境中來(lái)使用QAC,提高測(cè)試效率。
產(chǎn)品的好處:
- 縮減軟件開(kāi)發(fā)的成本和產(chǎn)品上市的時(shí)間。
- 降低軟件產(chǎn)品質(zhì)量問(wèn)題。
- 實(shí)現(xiàn)代碼檢測(cè)過(guò)程自動(dòng)化,使軟件開(kāi)發(fā)和質(zhì)量檢驗(yàn)技術(shù)人員提高效率。
- 在軟件研發(fā)的早期階段識(shí)別潛在的軟件產(chǎn)品問(wèn)題和其他可能出錯(cuò)的問(wèn)題,從而減少產(chǎn)品測(cè)試和顧客使用中發(fā)現(xiàn)問(wèn)題的機(jī)率。
- 具有較好的集成性,能在現(xiàn)有的軟件環(huán)境下實(shí)現(xiàn)安裝和卸載。自動(dòng)檢測(cè)軟件產(chǎn)品是否符合某公司或某行業(yè)的軟件標(biāo)準(zhǔn)和語(yǔ)言安全性方 面的要求。
- 提高 C語(yǔ)言代碼的編寫(xiě)質(zhì)量,過(guò)加強(qiáng)軟件可靠性,移植性和可維護(hù)性三 方面來(lái)減少軟件產(chǎn)品未來(lái)的維護(hù)費(fèi)用。
- 幫助軟件開(kāi)發(fā)人員生產(chǎn)高質(zhì)量的代碼。
- 支持軟件認(rèn)證,軟件研發(fā)過(guò)程認(rèn)證和各種質(zhì)量認(rèn)證,如 CMM 認(rèn)證,ISO9003/EN29003,TickIT, IEC 61508,Def Stan 00-55,DO-178B。
- 設(shè)立了軟件質(zhì)量度量標(biāo)準(zhǔn),后期代碼修改可以得到衡量和比較。
- 為軟件開(kāi)發(fā)的成本和產(chǎn)量提供依據(jù)。
- 幫助企業(yè)培訓(xùn)軟件研究及開(kāi)發(fā)人員使其在利用C語(yǔ)言編程過(guò)程中避免問(wèn)題。
支持語(yǔ)言,平臺(tái)、編譯器:
目前支持的語(yǔ)言有C, C++, Java & Fortran。
目前可支持的平臺(tái)有Microsoft Windows、Sun Solaris、HP-UX、Redhat Linux、Slackware Linux。
對(duì)于編譯器,QAC支持幾乎所有的主流編譯器,QAC在分析代碼時(shí),并不對(duì)代碼進(jìn)行編譯,只是分析程序時(shí)要用到一些編譯器的一些信息,如編譯器頭文件、宏等,以及嵌入式的CPU設(shè)定等。目前支持的編譯器有: Borland C/C++ Builder、Cosmic、Diab、Edison Design Group、GNU C/C++、Green Hills C/C++、IAR、IBM VisualAge C++、Intel、Keil、Metrowerks、Microsoft C/C++、Tasking。
本文轉(zhuǎn)發(fā)自
標(biāo)簽:
軟件測(cè)試技術(shù)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn