建設工程教育網(wǎng) > 建筑文苑 > 其他相關(guān) > 正文
2009-12-02 14:40 【大 中 小】【打印】【我要糾錯】
在軟件開(kāi)發(fā)過(guò)程中,軟件質(zhì)量是軟件工程中一個(gè)經(jīng)常被忽略的要素。在現代的RAD領(lǐng)域和視頻開(kāi)發(fā)領(lǐng)域,軟件質(zhì)量幾乎是被人忽略的。標準組織不厭其煩地對軟件質(zhì)量作出規范,有些甚至提供了用來(lái)度量軟件質(zhì)量的工具、評價(jià)等級及證明。許多政府要求軟件承包商遵守一定的公共標準。但對于大多數人來(lái)說(shuō),軟件質(zhì)量是由用戶(hù)喜歡使用軟件的程度決定的。如果軟件運行得好,則視其質(zhì)量好,反之,則不好。這給人們對軟件質(zhì)量的評價(jià)標準方式造成錯覺(jué)。
越來(lái)越多的公司在購買(mǎi)軟件時(shí)有了這樣一個(gè)概念,即軟件質(zhì)量是一個(gè)過(guò)程,從軟件應用開(kāi)始,直到停止使用為止。許多組織都確認自己在軟件質(zhì)量方面投入了大量資金,但同時(shí)又承認在許多關(guān)鍵任務(wù)的應用中,許多軟件質(zhì)量標準是強制執行的結果,而非通過(guò)嚴格控制成本的戰術(shù)或戰略來(lái)實(shí)現。
軟件質(zhì)量工程耗資不低,而且也不易實(shí)現,但如果實(shí)施的早,達到高水平就相對要容易些。質(zhì)量從分析和設計開(kāi)始,貫穿整個(gè)構造過(guò)程,并在測試和開(kāi)發(fā)過(guò)程中不斷完善。在使用應用軟件的維護階段,質(zhì)量不易完善。度量軟件質(zhì)量并不是件容易的事。我曾經(jīng)做過(guò)調查,問(wèn)一些開(kāi)發(fā)人員在他們的應用軟件出臺之前進(jìn)行多少次合理的編碼檢查?回答是28%。沒(méi)有檢查編碼的原因是由于計劃完成的期限太短,時(shí)間和資源不充足。組織不能簡(jiǎn)單地為全職的軟件測試者提供時(shí)間和資金。由于這些客觀(guān)原因,我們需要找到提高質(zhì)量的方法。
在這里我們不但強調軟件質(zhì)量的重要性,也想找出度量軟件質(zhì)量的方法,以及確定我們要達到怎樣的質(zhì)量水平和借助何種工具才能及時(shí)正確地完成任務(wù)。
什么是軟件質(zhì)量
所謂軟件質(zhì)量就是對應用軟件的質(zhì)量進(jìn)行三個(gè)主要方面的度量:編碼、功能、性能。沒(méi)有充分的分析和設計就不可能達到較高的軟件質(zhì)量。過(guò)于簡(jiǎn)單,難以滿(mǎn)足功能或性能上的需求,也就談不到編寫(xiě)出好的軟件。一個(gè)不符合用戶(hù)需求的軟件就是失敗。
要說(shuō)清楚正確的發(fā)現和設計路徑需要許多筆墨,并不是區區一篇文章就能夠完成的,但有些公司如Rational 及Riverton等公司花費了大量的時(shí)間和金錢(qián)創(chuàng )建了能夠幫助提高分析設計階段質(zhì)量的產(chǎn)品。我向大家強力推薦Riverton公司的HOW系列產(chǎn)品,它運載于PowerBuilder上,是免費的。提高了第一階段的質(zhì)量也就等于提高了整個(gè)應用軟件的質(zhì)量。本文更側重軟件質(zhì)量的物理方面,讓我們從編碼開(kāi)始談起。
編碼質(zhì)量
編碼質(zhì)量是應用軟件的健康診斷。你可以想象編碼就是應用軟件的肺。無(wú)論看起來(lái)多小的缺陷都會(huì )影響整體健康,可能引起呼吸(運行)的中斷。
我們學(xué)習怎樣更好地做事,但我們學(xué)到的往往是經(jīng)驗。經(jīng)驗的不利之處在于只有在我們經(jīng)歷過(guò)之后它才成為經(jīng)驗。而對目前應用的軟件來(lái)說(shuō)已太遲,沒(méi)有什么幫助,只能寄希望于下一次的軟件。更有利的辦法是與其他軟件開(kāi)發(fā)者共同學(xué)習,分享經(jīng)驗。
SEI的研究表明,經(jīng)過(guò)軟件質(zhì)量培訓的開(kāi)發(fā)人員編寫(xiě)的軟件錯誤更少,能減少50%以上。研究還表明稍稍經(jīng)過(guò)培訓,便會(huì )加速經(jīng)驗的獲得。培訓是一個(gè)解決辦法,對已完成工作進(jìn)行度量是另一個(gè)方法。我們可以建立幾個(gè)可度量的編碼質(zhì)量的目錄:
遵守工業(yè)及企業(yè)標準,遵守編碼規則和結構標準,可提高其可用性及可維護性、最佳實(shí)際應用。
企業(yè)標準依據其背景而變化。微軟的商品遵循微軟標準,Unix商品遵循Unix標準。直到PowerBuilder基礎等級(PFC)的數據庫出現,PowerBuilder的開(kāi)發(fā)人員才獲得了對買(mǎi)方標準的一些提示,F在許多公司遵循PFC命名約定,因為它最接近于工業(yè)標準體系結構。這就是說(shuō),甚至連Sybase都不遵循自己的標準,而是遵守PFC標準。PFC的版本6集成了一些它自己對外公布命名規范的結構標準。
關(guān)鍵的一點(diǎn)是如果什么也不做就誰(shuí)也幫不了你。學(xué)習的關(guān)鍵是經(jīng)驗。如果你不知道自己已擁有經(jīng)驗,你就無(wú)法從中獲益。你知道的越早就越有效。你可以通過(guò)實(shí)施一些標準加速此過(guò)程。這完成了兩個(gè)目標:
要實(shí)施標準,必須先度量。如果你度量應用標準及質(zhì)量,開(kāi)發(fā)人員就會(huì )對所度量的要素及他們出的錯誤更清楚,加強了目標的認識。糾正發(fā)現的問(wèn)題并找到錯誤原因,可以再次提醒開(kāi)發(fā)人員要達到的目標,并指出達到的方法。
一旦進(jìn)行度量,應用軟件中不通順的地方立刻被糾正?梢赃_到兩個(gè)目的:最終的編碼十分整潔,具有高質(zhì)量;開(kāi)發(fā)人員完成這一步就會(huì )得到最重要的益處——經(jīng)驗。
功能性質(zhì)量
功能性質(zhì)量是度量應用軟件與其用戶(hù)需求的匹配程度,即完成必要性功能的好壞,以及是否完成了所有必要的功能。你可以想象這是應用軟件的大腦。如果所有必需的功能并沒(méi)有全部完成,那么其結果難以預測。
由于許多應用已事先規定應該怎樣,所以功能性質(zhì)量比編碼質(zhì)量更難度量。只有對開(kāi)發(fā)完的應用才能度量。這意味著(zhù)改變代價(jià)很大。我們應該怎樣度量?在開(kāi)發(fā)周期的早期階段應該做什么才能保證我們正朝著(zhù)更高質(zhì)量的目標前進(jìn)?
我們應當保證應用滿(mǎn)足客戶(hù)提出的所有需求。這主要取決于開(kāi)發(fā)過(guò)程的一開(kāi)始這些需求被確定的程度,但這可通過(guò)檢驗正進(jìn)行的基礎來(lái)保證它符合需求目的。這是一個(gè)手工完成的測試,但有些自動(dòng)工具如Rational ClearQuest也可以跟蹤設計、構造、測試等不同階段。我們還必須保證為滿(mǎn)足需求而設計的商業(yè)功能完全,用好、壞或沒(méi)有輸入來(lái)檢驗。養成用這種方法測試商業(yè)功能可以達到更高質(zhì)量。
測試的另一方面是應用編碼。這需要花費更多的時(shí)間,因為每一個(gè)編寫(xiě)的功或沒(méi)有輸入來(lái)檢驗。養成用這種方法測試商業(yè)功能可以達到更高質(zhì)量。
測試的另一方面是應用編碼。這需要花費更多的時(shí)間,因為每一個(gè)編寫(xiě)的功能都必須經(jīng)過(guò)檢驗以確保它的運行完全符合所期待的那樣。這便是這些能夠生成測試案例的自動(dòng)工具的有價(jià)值之處,但并不是所有自動(dòng)工具都能達到這樣的水平。有些工具能夠通過(guò)運行測試案例看應用軟件的每一部分是否經(jīng)過(guò)了檢查,如Rational公司的 Teamtest、Mercury公司的 WinRunner產(chǎn)品,但沒(méi)有一個(gè)自動(dòng)工具能生成你所必需的測試。
我們要強調的第三個(gè)方面是應用軟件能否實(shí)現設計的功能,更重要的是它是否有效,這就需要開(kāi)發(fā)人員與用戶(hù)之間進(jìn)行交流,比較初始步驟和需求,檢查它們在應用中是否相符。
最后,我們應該確保應用軟件具有要求的一切功能。一個(gè)有效的應用軟件能完成一半需求不是非常有用,而一個(gè)能夠完成所有需求的應用軟件卻附加了一些用戶(hù)不需要的過(guò)程和商業(yè)功能,也不是有效的,而且容易導致用戶(hù)及軟件支持程序員的混亂。這也應該由需求管理。
顯然,關(guān)鍵因素在于需求。需求必須詳細列出,在整個(gè)過(guò)程中保持記錄,并且所有應用編碼都應由需求證實(shí)。需求管理十分重要,它形成了CMM的脊柱——允許企業(yè)檢驗自己所處的等級。這里有五個(gè)等級。所有公司至少在等級1,極少數在等級5.通過(guò)這些等級,我們可以看出關(guān)鍵問(wèn)題是需求管理。需求帶動(dòng)了應用的整個(gè)最高目的。根據SEI,達到等級3的公司可以在產(chǎn)量及質(zhì)量方面提高200%到300%。
性能
這是軟件質(zhì)量的注意力最集中的方面。性能是每個(gè)應用的表現。性能可以分為以下四個(gè)部分:用戶(hù)性能、客戶(hù)端應用性能、網(wǎng)絡(luò )性能、可伸縮性性能。
用戶(hù)性能是最難度量的部分。用戶(hù)對兩個(gè)方面感興趣:第一,完成任務(wù)的速度。如果它比以前的方法耗費時(shí)間還長(cháng),那么,即使是世界上運行最快的編碼用戶(hù)也感覺(jué)很慢。第二,感覺(jué)上的性能。如果用戶(hù)感覺(jué)一個(gè)過(guò)程太慢,那它就慢。這就是說(shuō),在嚴格的時(shí)間控制下性能的度量并不總是精確。感覺(jué)上的性能有時(shí)比真正的性能更重要。
當然不總是這種情況,當發(fā)生比較重大的延遲時(shí),你只要能夠保證用戶(hù)對發(fā)生的過(guò)程清楚,三秒鐘是可接受的延遲極限。
但如果我們發(fā)現一個(gè)應用的性能比較困難,可以使用包括PowerBuilder版本6及更高的版本在內的工具是Profiler,它可以為對象、功能甚至編碼行提供更精確的時(shí)間測試。這種工具很容易使用,可提供出色的圖像結果幫助你發(fā)現性能的真正問(wèn)題。
度量網(wǎng)絡(luò )性能是一個(gè)經(jīng)常不被開(kāi)發(fā)人員重視的方面。那么當數以千記的用戶(hù)同時(shí)下載龐大的會(huì )計報表時(shí)我們怎樣測試應用呢?實(shí)踐證明適合這種類(lèi)型的性能檢測工具要比其它方面的多。經(jīng)銷(xiāo)商有高質(zhì)量的裝載測試工具。它只需要很小的測試環(huán)境就可以模擬產(chǎn)品環(huán)境。你僅需三臺機器就可模擬數以千記的用戶(hù)上述行為的概況。用這些工具你可以發(fā)現瓶頸可能出現的地方并制定與之適應的對策。也許你需要附加硬件來(lái)運行應用;蛟S要建立控制以預防同時(shí)發(fā)生上千個(gè)對會(huì )計報表的需求;蛟S你需要開(kāi)發(fā)一種方法,使你一旦得到會(huì )計報表,別的用戶(hù)可以共享。在這方面我們也對數據庫進(jìn)行受壓測試。有些公司用一些產(chǎn)品來(lái)度量多個(gè)請求對數據庫的影響或者長(cháng)時(shí)間運行的交易對數據庫有無(wú)影響。越早發(fā)現問(wèn)題意味著(zhù)解決問(wèn)題的費用越少。
度量的最后方面是可伸縮性。這種度量是看用戶(hù)數的增加應用表現如何。有時(shí)又稱(chēng)它為壓力測試。我所見(jiàn)過(guò)的最好壓力測試是期望用戶(hù)數的兩倍。壓力測試的精確定義是:通過(guò)超過(guò)事先期望的用戶(hù)數并發(fā)訪(fǎng)問(wèn)來(lái)測試你應用的結構、客戶(hù)端機器、應用服務(wù)器、網(wǎng)絡(luò )和數據庫。經(jīng)過(guò)這個(gè)過(guò)程,你就能知道何時(shí)需要額外的硬件,你具有的硬件能否支持用戶(hù),能準確預見(jiàn)確保維持一定性能需要做什么。
結論
關(guān)于軟件質(zhì)量還有許多事情要做。要知道自己寫(xiě)的每一行編碼從簡(jiǎn)單的GUI、命名標準到壓力測試復雜的網(wǎng)絡(luò )配置都是馬虎不得的。需要提醒的是:我們?yōu)橛脩?hù)開(kāi)發(fā)應用軟件,用戶(hù)在使用我們的系統時(shí)花費了很多金錢(qián)和時(shí)間。我們應該為他們提供可運行的、可維護的、可擴展的、高性能的應用。我們要有責任感。雖然許多工具可以幫助我們,但最終還是要靠我們的責任心去完成。
1、凡本網(wǎng)注明“來(lái)源:建設工程教育網(wǎng)”的所有作品,版權均屬建設工程教育網(wǎng)所有,未經(jīng)本網(wǎng)授權不得轉載、鏈接、轉貼或以其他方式使用;已經(jīng)本網(wǎng)授權的,應在授權范圍內使用,且必須注明“來(lái)源:建設工程教育網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其法律責任。
2、本網(wǎng)部分資料為網(wǎng)上搜集轉載,均盡力標明作者和出處。對于本網(wǎng)刊載作品涉及版權等問(wèn)題的,請作者與本網(wǎng)站聯(lián)系,本網(wǎng)站核實(shí)確認后會(huì )盡快予以處理。
本網(wǎng)轉載之作品,并不意味著(zhù)認同該作品的觀(guān)點(diǎn)或真實(shí)性。如其他媒體、網(wǎng)站或個(gè)人轉載使用,請與著(zhù)作權人聯(lián)系,并自負法律責任。
3、本網(wǎng)站歡迎積極投稿。