質(zhì)量一詞,在百度百科解釋為“質(zhì)量是物體本身的屬性,物體的質(zhì)量與物體的形狀、物態(tài)及其所處的空間位置無關(guān),質(zhì)量是物體的一個(gè)基本屬性”。

針對軟件,可將質(zhì)量理解為“軟件產(chǎn)品滿足用戶或規(guī)定顯性需求或隱性需求的程度”。

從質(zhì)量定義可以看出,軟件質(zhì)量的關(guān)鍵點(diǎn)是滿足要求,可使用差、好及優(yōu)秀等修飾詞進(jìn)行表述。

針對軟件而言,“滿足要求”包含兩個(gè)層次:

一是用戶顯性需求;

二是滿足其隱性需求。

通常情況下,用戶容易表述其顯性需求,如需要何種功能、何種性能表現(xiàn)等,但無法明確其隱性需求,如軟件產(chǎn)品無論在哪種用戶需求背景下,都需滿足法律法規(guī)的限制、行業(yè)限制、用戶約定俗成習(xí)慣,甚至是企業(yè)內(nèi)部的規(guī)章制度等。因此,考慮軟件質(zhì)量時(shí),既需考慮用戶顯性需求,也需考慮其隱性需求,這點(diǎn)測試工程師在分析測試需求時(shí)必須考慮。

衡量一個(gè)軟件系統(tǒng)的好壞,可從過程質(zhì)量、內(nèi)部質(zhì)量、外部質(zhì)量、使用質(zhì)量等幾個(gè)方面考察。

  • 過程質(zhì)量關(guān)注軟件產(chǎn)品整個(gè)生產(chǎn)流程是否規(guī)范;
  • 內(nèi)部質(zhì)量關(guān)注軟件內(nèi)部設(shè)計(jì)及靜態(tài)測度是否合格;
  • 外部質(zhì)量關(guān)注軟件產(chǎn)品功能、性能的表現(xiàn),使用質(zhì)量則關(guān)注軟件系統(tǒng)在使用過程中的易用性、滿意度表現(xiàn)。

對于測試工程師而言,如果從集成測試角度考慮,需關(guān)注內(nèi)部質(zhì)量、外部質(zhì)量及使用質(zhì)量,如果僅做黑盒測試,則可從外部質(zhì)量及使用質(zhì)量考慮。

衡量軟件好壞的關(guān)鍵在于檢驗(yàn)被測對象“滿足要求”的程度。這些“要求”對應(yīng)的是特性,那么衡量軟件好壞的關(guān)鍵點(diǎn)轉(zhuǎn)變?yōu)樘匦缘倪_(dá)到程度,如果通過量化指標(biāo)將這些特性進(jìn)行量化,便可以根據(jù)指標(biāo)達(dá)標(biāo)情況判斷被測對象的優(yōu)劣。

國標(biāo)軟件質(zhì)量GB/T16260.1—2006/ISO9126:2001定義了衡量軟件質(zhì)量的6個(gè)特性,分別是功能性、可靠性、易用性、效率、可移植、可維護(hù)等。

國標(biāo)GB/T25000.51標(biāo)準(zhǔn)對9126標(biāo)準(zhǔn)做了補(bǔ)充,增加了使用質(zhì)量評價(jià),關(guān)注于用戶滿意度,特別對COTS(商用現(xiàn)貨軟件)規(guī)定了基本的質(zhì)量要求及測試方法,以便于軟件的供應(yīng)、選擇、采購及測試。

從軟件測試角度而言,測試工程師需要了解每個(gè)特性及其子特性,以便于在分析測試需求、提取測試需求及評價(jià)被測對象時(shí)有的放矢,依據(jù)標(biāo)準(zhǔn)開展有效的測試活動(dòng)。

一、功能性

功能性是指軟件在指定條件下使用時(shí),滿足用戶明確和隱含需求的功能的能力。功能性包含以下5個(gè)子特性。

1、適合性:軟件為指定的任務(wù)和用戶目標(biāo)提供一組合適功能的能力。

2、準(zhǔn)確性:軟件提供具有所需精確度的正確或相符的結(jié)果或效果的能力。

3、互操作性:軟件與一個(gè)或更多的規(guī)定系統(tǒng)進(jìn)行交互的能力。

4、保密安全性:軟件保護(hù)信息和數(shù)據(jù)的能力,以使未授權(quán)的人員或系統(tǒng)不能閱讀或修改這些信息和數(shù)據(jù),而不拒絕授權(quán)人員或系統(tǒng)對它們的訪問。

5、功能性依從性:軟件遵循與功能性相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)以及類似規(guī)定的能力。這些標(biāo)準(zhǔn)要考慮國際標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)內(nèi)部規(guī)范等。

二、可靠性

可靠性是指軟件在指定條件下使用時(shí),維持規(guī)定的性能級別的能力。可靠性要求有兩個(gè)重要的概念:平均故障修復(fù)時(shí)間(mean time to repair,MTTR)、平均無故障時(shí)間(mean time between failures,MTBF),MTTR值越小,說明故障修復(fù)時(shí)間越短,故障處理響應(yīng)速度較快,MTBF值越大,說明軟件故障率低,系統(tǒng)可靠性高。可靠性包含以下4個(gè)子特性。

1、成熟性:軟件為避免由軟件中錯(cuò)誤而導(dǎo)致失效的能力。

2、容錯(cuò)性:在軟件出現(xiàn)故障或者違反指定接口的情況下,軟件維持規(guī)定的性能級別的能力。

3、易恢復(fù)性:在失效發(fā)生的情況下,軟件重建規(guī)定的性能級別并恢復(fù)受直接影響的數(shù)據(jù)的能力。

4、可靠性依從性:軟件遵循與可靠性相關(guān)的標(biāo)準(zhǔn)、約定或法規(guī)的能力。

三、易用性

易用性是指在指定條件下使用時(shí),軟件被理解、學(xué)習(xí)、使用和吸引用戶的能力。易用性包含以下5個(gè)子特性。

1、易理解性:軟件使用戶能理解軟件是否合適,以及如何能將軟件用于特定的任務(wù)和使用環(huán)境的能力。

2、易學(xué)性:軟件使用戶能學(xué)習(xí)其應(yīng)用的能力。

3、易操作性:軟件使用戶能操作和控制它的能力。

4、吸引性:軟件吸引用戶的能力。

5、易用性依從性:軟件遵循與易用性相關(guān)的標(biāo)準(zhǔn)、約定、風(fēng)格指南或法規(guī)的能力。這些標(biāo)準(zhǔn)要考慮國際標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)內(nèi)部規(guī)范等,如企業(yè)內(nèi)部的界面規(guī)范。

四、效率

效率是指在規(guī)定條件下,相對于所用資源的數(shù)量,軟件可提供適當(dāng)性能的能力。效率包含以下3個(gè)子特性。

1、時(shí)間特性:在規(guī)定條件下,軟件執(zhí)行其功能時(shí),提供適當(dāng)?shù)捻憫?yīng)和處理時(shí)間以及吞吐率的能力,即完成用戶的某個(gè)功能需要的響應(yīng)時(shí)間。

2、資源利用性:在規(guī)定條件下,軟件執(zhí)行其功能時(shí),使用合適的資源數(shù)量和類別的能力。

3、效率依從性:軟件遵循與效率相關(guān)的標(biāo)準(zhǔn)或約定的能力。

五、可維護(hù)性

可維護(hù)性是指軟件可被修改的能力。修改可能包括修正、改進(jìn)或軟件對環(huán)境、需求和功能規(guī)格說明變化的適應(yīng)??删S護(hù)性包含以下5個(gè)子特性。

1、易分析性:軟件診斷軟件中的缺陷、失效原因或識別待修改部分的能力。

2、易改變性:軟件使指定的修改可以被實(shí)現(xiàn)的能力。

3、穩(wěn)定性:軟件避免由于軟件修改而造成意外結(jié)果的能力。

4、易測試性:軟件使已修改軟件能被確認(rèn)的能力。

5、維護(hù)性依從性:軟件遵循與維護(hù)性相關(guān)的標(biāo)準(zhǔn)或約定的能力。

六、可移植性

可移植性是指軟件從一種環(huán)境遷移到另外一種環(huán)境的能力??梢浦残园韵?個(gè)子特性。

1、適應(yīng)性:軟件無須采用有別于為考慮該軟件的目的而準(zhǔn)備的活動(dòng)或手段,就可能適應(yīng)不同指定環(huán)境的能力。

2、易安裝性:軟件在指定環(huán)境中被安裝的能力。

3、共存性:軟件在公共環(huán)境中同與其分享公共資源的其他獨(dú)立軟件共存的能力。

4、易替換性:軟件在同樣環(huán)境下,替代另一個(gè)相同用途的指定軟件產(chǎn)品的能力。

5、可移植性依從性:軟件遵循與可移植性相關(guān)的標(biāo)準(zhǔn)或約定的能力。