關(guān)于我們

在線客服

幫助

24小時(shí)客服:010-82326699 400-810-5999

建設(shè)工程教育網(wǎng) > 建筑文苑 > 其他相關(guān) > 正文

軟件開(kāi)發(fā)中的質(zhì)量問(wèn)題

2009-12-02 14:40    【  【打印】【我要糾錯(cuò)】

  在軟件開(kāi)發(fā)過(guò)程中,軟件質(zhì)量是軟件工程中一個(gè)經(jīng)常被忽略的要素。在現(xiàn)代的RAD領(lǐng)域和視頻開(kāi)發(fā)領(lǐng)域,軟件質(zhì)量幾乎是被人忽略的。標(biāo)準(zhǔn)組織不厭其煩地對(duì)軟件質(zhì)量作出規(guī)范,有些甚至提供了用來(lái)度量軟件質(zhì)量的工具、評(píng)價(jià)等級(jí)及證明。許多政府要求軟件承包商遵守一定的公共標(biāo)準(zhǔn)。但對(duì)于大多數(shù)人來(lái)說(shuō),軟件質(zhì)量是由用戶喜歡使用軟件的程度決定的。如果軟件運(yùn)行得好,則視其質(zhì)量好,反之,則不好。這給人們對(duì)軟件質(zhì)量的評(píng)價(jià)標(biāo)準(zhǔn)方式造成錯(cuò)覺(jué)。

  越來(lái)越多的公司在購(gòu)買(mǎi)軟件時(shí)有了這樣一個(gè)概念,即軟件質(zhì)量是一個(gè)過(guò)程,從軟件應(yīng)用開(kāi)始,直到停止使用為止。許多組織都確認(rèn)自己在軟件質(zhì)量方面投入了大量資金,但同時(shí)又承認(rèn)在許多關(guān)鍵任務(wù)的應(yīng)用中,許多軟件質(zhì)量標(biāo)準(zhǔn)是強(qiáng)制執(zhí)行的結(jié)果,而非通過(guò)嚴(yán)格控制成本的戰(zhàn)術(shù)或戰(zhàn)略來(lái)實(shí)現(xiàn)。

  軟件質(zhì)量工程耗資不低,而且也不易實(shí)現(xiàn),但如果實(shí)施的早,達(dá)到高水平就相對(duì)要容易些。質(zhì)量從分析和設(shè)計(jì)開(kāi)始,貫穿整個(gè)構(gòu)造過(guò)程,并在測(cè)試和開(kāi)發(fā)過(guò)程中不斷完善。在使用應(yīng)用軟件的維護(hù)階段,質(zhì)量不易完善。度量軟件質(zhì)量并不是件容易的事。我曾經(jīng)做過(guò)調(diào)查,問(wèn)一些開(kāi)發(fā)人員在他們的應(yīng)用軟件出臺(tái)之前進(jìn)行多少次合理的編碼檢查?回答是28%。沒(méi)有檢查編碼的原因是由于計(jì)劃完成的期限太短,時(shí)間和資源不充足。組織不能簡(jiǎn)單地為全職的軟件測(cè)試者提供時(shí)間和資金。由于這些客觀原因,我們需要找到提高質(zhì)量的方法。

  在這里我們不但強(qiáng)調(diào)軟件質(zhì)量的重要性,也想找出度量軟件質(zhì)量的方法,以及確定我們要達(dá)到怎樣的質(zhì)量水平和借助何種工具才能及時(shí)正確地完成任務(wù)。

  什么是軟件質(zhì)量

  所謂軟件質(zhì)量就是對(duì)應(yīng)用軟件的質(zhì)量進(jìn)行三個(gè)主要方面的度量:編碼、功能、性能。沒(méi)有充分的分析和設(shè)計(jì)就不可能達(dá)到較高的軟件質(zhì)量。過(guò)于簡(jiǎn)單,難以滿足功能或性能上的需求,也就談不到編寫(xiě)出好的軟件。一個(gè)不符合用戶需求的軟件就是失敗。

  要說(shuō)清楚正確的發(fā)現(xiàn)和設(shè)計(jì)路徑需要許多筆墨,并不是區(qū)區(qū)一篇文章就能夠完成的,但有些公司如Rational 及Riverton等公司花費(fèi)了大量的時(shí)間和金錢(qián)創(chuàng)建了能夠幫助提高分析設(shè)計(jì)階段質(zhì)量的產(chǎn)品。我向大家強(qiáng)力推薦Riverton公司的HOW系列產(chǎn)品,它運(yùn)載于PowerBuilder上,是免費(fèi)的。提高了第一階段的質(zhì)量也就等于提高了整個(gè)應(yīng)用軟件的質(zhì)量。本文更側(cè)重軟件質(zhì)量的物理方面,讓我們從編碼開(kāi)始談起。

  編碼質(zhì)量

  編碼質(zhì)量是應(yīng)用軟件的健康診斷。你可以想象編碼就是應(yīng)用軟件的肺。無(wú)論看起來(lái)多小的缺陷都會(huì)影響整體健康,可能引起呼吸(運(yùn)行)的中斷。

  我們學(xué)習(xí)怎樣更好地做事,但我們學(xué)到的往往是經(jīng)驗(yàn)。經(jīng)驗(yàn)的不利之處在于只有在我們經(jīng)歷過(guò)之后它才成為經(jīng)驗(yàn)。而對(duì)目前應(yīng)用的軟件來(lái)說(shuō)已太遲,沒(méi)有什么幫助,只能寄希望于下一次的軟件。更有利的辦法是與其他軟件開(kāi)發(fā)者共同學(xué)習(xí),分享經(jīng)驗(yàn)。

  SEI的研究表明,經(jīng)過(guò)軟件質(zhì)量培訓(xùn)的開(kāi)發(fā)人員編寫(xiě)的軟件錯(cuò)誤更少,能減少50%以上。研究還表明稍稍經(jīng)過(guò)培訓(xùn),便會(huì)加速經(jīng)驗(yàn)的獲得。培訓(xùn)是一個(gè)解決辦法,對(duì)已完成工作進(jìn)行度量是另一個(gè)方法。我們可以建立幾個(gè)可度量的編碼質(zhì)量的目錄:

  遵守工業(yè)及企業(yè)標(biāo)準(zhǔn),遵守編碼規(guī)則和結(jié)構(gòu)標(biāo)準(zhǔn),可提高其可用性及可維護(hù)性、最佳實(shí)際應(yīng)用。

  企業(yè)標(biāo)準(zhǔn)依據(jù)其背景而變化。微軟的商品遵循微軟標(biāo)準(zhǔn),Unix商品遵循Unix標(biāo)準(zhǔn)。直到PowerBuilder基礎(chǔ)等級(jí)(PFC)的數(shù)據(jù)庫(kù)出現(xiàn),PowerBuilder的開(kāi)發(fā)人員才獲得了對(duì)買(mǎi)方標(biāo)準(zhǔn)的一些提示,F(xiàn)在許多公司遵循PFC命名約定,因?yàn)樗罱咏诠I(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)。這就是說(shuō),甚至連Sybase都不遵循自己的標(biāo)準(zhǔn),而是遵守PFC標(biāo)準(zhǔn)。PFC的版本6集成了一些它自己對(duì)外公布命名規(guī)范的結(jié)構(gòu)標(biāo)準(zhǔn)。

  關(guān)鍵的一點(diǎn)是如果什么也不做就誰(shuí)也幫不了你。學(xué)習(xí)的關(guān)鍵是經(jīng)驗(yàn)。如果你不知道自己已擁有經(jīng)驗(yàn),你就無(wú)法從中獲益。你知道的越早就越有效。你可以通過(guò)實(shí)施一些標(biāo)準(zhǔn)加速此過(guò)程。這完成了兩個(gè)目標(biāo):

  要實(shí)施標(biāo)準(zhǔn),必須先度量。如果你度量應(yīng)用標(biāo)準(zhǔn)及質(zhì)量,開(kāi)發(fā)人員就會(huì)對(duì)所度量的要素及他們出的錯(cuò)誤更清楚,加強(qiáng)了目標(biāo)的認(rèn)識(shí)。糾正發(fā)現(xiàn)的問(wèn)題并找到錯(cuò)誤原因,可以再次提醒開(kāi)發(fā)人員要達(dá)到的目標(biāo),并指出達(dá)到的方法。

  一旦進(jìn)行度量,應(yīng)用軟件中不通順的地方立刻被糾正。可以達(dá)到兩個(gè)目的:最終的編碼十分整潔,具有高質(zhì)量;開(kāi)發(fā)人員完成這一步就會(huì)得到最重要的益處——經(jīng)驗(yàn)。

  功能性質(zhì)量

  功能性質(zhì)量是度量應(yīng)用軟件與其用戶需求的匹配程度,即完成必要性功能的好壞,以及是否完成了所有必要的功能。你可以想象這是應(yīng)用軟件的大腦。如果所有必需的功能并沒(méi)有全部完成,那么其結(jié)果難以預(yù)測(cè)。

  由于許多應(yīng)用已事先規(guī)定應(yīng)該怎樣,所以功能性質(zhì)量比編碼質(zhì)量更難度量。只有對(duì)開(kāi)發(fā)完的應(yīng)用才能度量。這意味著改變代價(jià)很大。我們應(yīng)該怎樣度量?在開(kāi)發(fā)周期的早期階段應(yīng)該做什么才能保證我們正朝著更高質(zhì)量的目標(biāo)前進(jìn)?

  我們應(yīng)當(dāng)保證應(yīng)用滿足客戶提出的所有需求。這主要取決于開(kāi)發(fā)過(guò)程的一開(kāi)始這些需求被確定的程度,但這可通過(guò)檢驗(yàn)正進(jìn)行的基礎(chǔ)來(lái)保證它符合需求目的。這是一個(gè)手工完成的測(cè)試,但有些自動(dòng)工具如Rational ClearQuest也可以跟蹤設(shè)計(jì)、構(gòu)造、測(cè)試等不同階段。我們還必須保證為滿足需求而設(shè)計(jì)的商業(yè)功能完全,用好、壞或沒(méi)有輸入來(lái)檢驗(yàn)。養(yǎng)成用這種方法測(cè)試商業(yè)功能可以達(dá)到更高質(zhì)量。

  測(cè)試的另一方面是應(yīng)用編碼。這需要花費(fèi)更多的時(shí)間,因?yàn)槊恳粋(gè)編寫(xiě)的功或沒(méi)有輸入來(lái)檢驗(yàn)。養(yǎng)成用這種方法測(cè)試商業(yè)功能可以達(dá)到更高質(zhì)量。

  測(cè)試的另一方面是應(yīng)用編碼。這需要花費(fèi)更多的時(shí)間,因?yàn)槊恳粋(gè)編寫(xiě)的功能都必須經(jīng)過(guò)檢驗(yàn)以確保它的運(yùn)行完全符合所期待的那樣。這便是這些能夠生成測(cè)試案例的自動(dòng)工具的有價(jià)值之處,但并不是所有自動(dòng)工具都能達(dá)到這樣的水平。有些工具能夠通過(guò)運(yùn)行測(cè)試案例看應(yīng)用軟件的每一部分是否經(jīng)過(guò)了檢查,如Rational公司的 Teamtest、Mercury公司的 WinRunner產(chǎn)品,但沒(méi)有一個(gè)自動(dòng)工具能生成你所必需的測(cè)試。

  我們要強(qiáng)調(diào)的第三個(gè)方面是應(yīng)用軟件能否實(shí)現(xiàn)設(shè)計(jì)的功能,更重要的是它是否有效,這就需要開(kāi)發(fā)人員與用戶之間進(jìn)行交流,比較初始步驟和需求,檢查它們?cè)趹?yīng)用中是否相符。

  最后,我們應(yīng)該確保應(yīng)用軟件具有要求的一切功能。一個(gè)有效的應(yīng)用軟件能完成一半需求不是非常有用,而一個(gè)能夠完成所有需求的應(yīng)用軟件卻附加了一些用戶不需要的過(guò)程和商業(yè)功能,也不是有效的,而且容易導(dǎo)致用戶及軟件支持程序員的混亂。這也應(yīng)該由需求管理。

  顯然,關(guān)鍵因素在于需求。需求必須詳細(xì)列出,在整個(gè)過(guò)程中保持記錄,并且所有應(yīng)用編碼都應(yīng)由需求證實(shí)。需求管理十分重要,它形成了CMM的脊柱——允許企業(yè)檢驗(yàn)自己所處的等級(jí)。這里有五個(gè)等級(jí)。所有公司至少在等級(jí)1,極少數(shù)在等級(jí)5.通過(guò)這些等級(jí),我們可以看出關(guān)鍵問(wèn)題是需求管理。需求帶動(dòng)了應(yīng)用的整個(gè)最高目的。根據(jù)SEI,達(dá)到等級(jí)3的公司可以在產(chǎn)量及質(zhì)量方面提高200%到300%。

  性能

  這是軟件質(zhì)量的注意力最集中的方面。性能是每個(gè)應(yīng)用的表現(xiàn)。性能可以分為以下四個(gè)部分:用戶性能、客戶端應(yīng)用性能、網(wǎng)絡(luò)性能、可伸縮性性能。

  用戶性能是最難度量的部分。用戶對(duì)兩個(gè)方面感興趣:第一,完成任務(wù)的速度。如果它比以前的方法耗費(fèi)時(shí)間還長(zhǎng),那么,即使是世界上運(yùn)行最快的編碼用戶也感覺(jué)很慢。第二,感覺(jué)上的性能。如果用戶感覺(jué)一個(gè)過(guò)程太慢,那它就慢。這就是說(shuō),在嚴(yán)格的時(shí)間控制下性能的度量并不總是精確。感覺(jué)上的性能有時(shí)比真正的性能更重要。

  當(dāng)然不總是這種情況,當(dāng)發(fā)生比較重大的延遲時(shí),你只要能夠保證用戶對(duì)發(fā)生的過(guò)程清楚,三秒鐘是可接受的延遲極限。

  但如果我們發(fā)現(xiàn)一個(gè)應(yīng)用的性能比較困難,可以使用包括PowerBuilder版本6及更高的版本在內(nèi)的工具是Profiler,它可以為對(duì)象、功能甚至編碼行提供更精確的時(shí)間測(cè)試。這種工具很容易使用,可提供出色的圖像結(jié)果幫助你發(fā)現(xiàn)性能的真正問(wèn)題。

  度量網(wǎng)絡(luò)性能是一個(gè)經(jīng)常不被開(kāi)發(fā)人員重視的方面。那么當(dāng)數(shù)以千記的用戶同時(shí)下載龐大的會(huì)計(jì)報(bào)表時(shí)我們?cè)鯓訙y(cè)試應(yīng)用呢?實(shí)踐證明適合這種類型的性能檢測(cè)工具要比其它方面的多。經(jīng)銷商有高質(zhì)量的裝載測(cè)試工具。它只需要很小的測(cè)試環(huán)境就可以模擬產(chǎn)品環(huán)境。你僅需三臺(tái)機(jī)器就可模擬數(shù)以千記的用戶上述行為的概況。用這些工具你可以發(fā)現(xiàn)瓶頸可能出現(xiàn)的地方并制定與之適應(yīng)的對(duì)策。也許你需要附加硬件來(lái)運(yùn)行應(yīng)用;蛟S要建立控制以預(yù)防同時(shí)發(fā)生上千個(gè)對(duì)會(huì)計(jì)報(bào)表的需求;蛟S你需要開(kāi)發(fā)一種方法,使你一旦得到會(huì)計(jì)報(bào)表,別的用戶可以共享。在這方面我們也對(duì)數(shù)據(jù)庫(kù)進(jìn)行受壓測(cè)試。有些公司用一些產(chǎn)品來(lái)度量多個(gè)請(qǐng)求對(duì)數(shù)據(jù)庫(kù)的影響或者長(zhǎng)時(shí)間運(yùn)行的交易對(duì)數(shù)據(jù)庫(kù)有無(wú)影響。越早發(fā)現(xiàn)問(wèn)題意味著解決問(wèn)題的費(fèi)用越少。

  度量的最后方面是可伸縮性。這種度量是看用戶數(shù)的增加應(yīng)用表現(xiàn)如何。有時(shí)又稱它為壓力測(cè)試。我所見(jiàn)過(guò)的最好壓力測(cè)試是期望用戶數(shù)的兩倍。壓力測(cè)試的精確定義是:通過(guò)超過(guò)事先期望的用戶數(shù)并發(fā)訪問(wèn)來(lái)測(cè)試你應(yīng)用的結(jié)構(gòu)、客戶端機(jī)器、應(yīng)用服務(wù)器、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)。經(jīng)過(guò)這個(gè)過(guò)程,你就能知道何時(shí)需要額外的硬件,你具有的硬件能否支持用戶,能準(zhǔn)確預(yù)見(jiàn)確保維持一定性能需要做什么。

  結(jié)論

  關(guān)于軟件質(zhì)量還有許多事情要做。要知道自己寫(xiě)的每一行編碼從簡(jiǎn)單的GUI、命名標(biāo)準(zhǔn)到壓力測(cè)試復(fù)雜的網(wǎng)絡(luò)配置都是馬虎不得的。需要提醒的是:我們?yōu)橛脩糸_(kāi)發(fā)應(yīng)用軟件,用戶在使用我們的系統(tǒng)時(shí)花費(fèi)了很多金錢(qián)和時(shí)間。我們應(yīng)該為他們提供可運(yùn)行的、可維護(hù)的、可擴(kuò)展的、高性能的應(yīng)用。我們要有責(zé)任感。雖然許多工具可以幫助我們,但最終還是要靠我們的責(zé)任心去完成。

收藏分享:論壇
分享到:
相關(guān)新聞
  • 特色班
    4大班次+2-3套全真模擬題
    提升學(xué)習(xí)效果
  • 精品班
    4大班次+2-3套全真模擬題+1套預(yù)測(cè)試題
  • 實(shí)驗(yàn)班
    3套全真模擬題+2套預(yù)測(cè)試題+考前沖關(guān)寶典
  • 定制班
    3套模擬題+3套預(yù)測(cè)題+考前沖關(guān)寶典+考前重點(diǎn)
  • 移動(dòng)班
    以知識(shí)點(diǎn)為單元授課練習(xí),
    強(qiáng)化重點(diǎn)、難點(diǎn)、考點(diǎn)
版權(quán)聲明

  1、凡本網(wǎng)注明“來(lái)源:建設(shè)工程教育網(wǎng)”的所有作品,版權(quán)均屬建設(shè)工程教育網(wǎng)所有,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)貼或以其他方式使用;已經(jīng)本網(wǎng)授權(quán)的,應(yīng)在授權(quán)范圍內(nèi)使用,且必須注明“來(lái)源:建設(shè)工程教育網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其法律責(zé)任。
  2、本網(wǎng)部分資料為網(wǎng)上搜集轉(zhuǎn)載,均盡力標(biāo)明作者和出處。對(duì)于本網(wǎng)刊載作品涉及版權(quán)等問(wèn)題的,請(qǐng)作者與本網(wǎng)站聯(lián)系,本網(wǎng)站核實(shí)確認(rèn)后會(huì)盡快予以處理。
  本網(wǎng)轉(zhuǎn)載之作品,并不意味著認(rèn)同該作品的觀點(diǎn)或真實(shí)性。如其他媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用,請(qǐng)與著作權(quán)人聯(lián)系,并自負(fù)法律責(zé)任。
  3、本網(wǎng)站歡迎積極投稿。