軟件中出(chū)現的(de)問題并不(bù)一(yī / yì /yí)定都是(shì)由編碼引起的(de),軟件在(zài)編碼之(zhī)前都會經過問題定義、需求分析、軟件設計等階段,軟件中的(de)問題也(yě)可能是(shì)前期階段引起的(de),如需求不(bù)清晰、軟件設計有纰漏等,因此在(zài)軟件項目的(de)各個(gè)階段進行測試是(shì)非常有必要(yào / yāo)的(de)。測試人(rén)員從軟件項目規劃開始就(jiù)參與其中,了(le/liǎo)解整個(gè)項目的(de)過程,及時(shí)查找軟件中存在(zài)的(de)問題,改善軟件的(de)質量。
軟件測試在(zài)項目各個(gè)階段的(de)作用如下所示。
(1)項目規劃階段:負責從單元測試到(dào)系統測試的(de)整個(gè)測試階段的(de)監控。
(2)需求分析階段:确定測試需求分析,即确定在(zài)項目中需要(yào / yāo)測試什麽,同時(shí)制訂系統測試計劃。
(3)概要(yào / yāo)設計與詳細設計階段:制訂單元測試計劃和(hé / huò)集成測試計劃。
(4)編碼階段:開發相應的(de)測試代碼和(hé / huò)測試腳本。
(5)測試階段:實施測試并提交相應的(de)測試報告。
軟件測試貫穿軟件項目的(de)整個(gè)過程,但它的(de)實施過程與軟件開發并不(bù)相同。軟件開發是(shì)自頂向下、逐步細化的(de)過程,軟件計劃階段定義軟件作用域,軟件需求分析階段建立軟件信息域、功能和(hé / huò)性能需求等,軟件設計階段選定編程語言、設計模塊接口等;軟件測試與軟件開發過程相反,它是(shì)自底向上(shàng)、逐步集成的(de)過程,首先進行單元測試,排除模塊内部邏輯與功能上(shàng)的(de)缺陷,然後按照軟件設計需求将模塊集成并進行集成測試,檢測子(zǐ)系統或系統結構上(shàng)的(de)錯誤,最後運行完整的(de)系統,進行系統測試,檢驗其是(shì)否滿足軟件需求。
軟件測試與軟件開發的(de)關系可用圖1表示,其中圖1爲(wéi / wèi)圖2的(de)細化。