第二篇針對(duì)軟件(jiàn)需求測試。軟件(jiàn)需求測試有(yǒu)時(shí)也(yě)被稱為(wèi)π'軟件(jiàn)功能(néng)測試或者直接β←÷β簡稱為(wèi)軟件(jiàn)測試。
1 概述
軟件(ji"®àn)需求測試是(shì)汽車(chē)軟件(jiàn)測試的(de)第四級别。在此階段之後,通(tōng)常可(kě)以将軟件(jiàn)交由驗收團隊或交付團隊進行↓©$₩(xíng)系統級測試。
- 測試目标:确保對(duì)集成的(de)軟件(jiàn)進行(xíng)測試,以證明(míng∞")其符合軟件(jiàn)需求。
- 測試依據:測試用(yòng)例來(lái)源于軟件(jiàn)需求,而表現(xiàn)形式可(kě)能(néng)是(shì)一(yī)份獨立×™λ≠的(de)軟件(jiàn)需求說(shuō)明(míng)書(sσγhū),也(yě)可(kě)能(néng)是(shì)在系統級需求或設計(jì)裡(lβ"→×ǐ)做(zuò)了(le)軟件(jiàn)标識的(de)部分(fēn)。
- 測試對(duì)象:運行(xíng)在MCU或SOC上(shàng)的(de)集成軟件(jiàn)。
- 測試設計(jì):測試用(yòng)例的(de)設計(jì)可(kě)以選擇如(rú)下(x"♠→φià)方法,等價類劃分(fēn)(将輸入數(shù)據劃分(fēn)為(wèi)若幹個(gè)等價類, 從(cóng)每個(gè)等價類中選取代表性的(d≤★✘¶e)數(shù)據進行(xíng)測試,以縮減測試用(yò ✔ng)例)、邊界值分(fēn)析(重點關注輸入值的(de)邊界條件(jiàn),因為(wèi)在這(zhè)些≈α(xiē)邊界附近(jìn),程序更容易出錯(cuò))、決策表(用(yòng)于描述在不(bù)同條件(jiàn)下(xià'γ)的(de)系統行(xíng)為(wèi),幫助測試人(rén)員(y±÷↓♦uán)理(lǐ)解并測試複雜(zá)的(d•↑Ωe)邏輯條件(jiàn))、狀态轉換測試(關注系統在不(bù)同狀态之間(jiān)的(de)轉換,确保系統在狀态轉換時(sλ∑hí)能(néng)夠正确工(gōng)作(z↕≈uò))、錯(cuò)誤猜測(基于測試人(rén)員(yuán)的(de)經驗和(hé)直覺,猜測可(kě)能(né∞€ng)的(de)錯(cuò)誤并設計(jì)相(xiàng)應的(de)測試用(yòng)例)、>↕<負面測試(在某些(xiē)情況下(xià),測試人(rén)員(yuán)需≠₽≤要(yào)考慮負面測試,即測試系統在不(bù)滿足正常工παα₹(gōng)作(zuò)條件(jiàn)時(shí)的δ÷♦✘(de)行(xíng)為(wèi),如(rú)故障注入)₹ λ≤。
-&nb↓™sp;測試環境:汽車(chē)軟件(jiàn)開(kāi)發中,我們常希望得(de)到(dào)狀态比較好(hλ$αǎo)的(de)硬件(jiàn),甚至實車(chē)環境,但(dàn)軟件(jiàn)需求測試并不(bù)追求于此,而且要(yàoγα>ε)盡量保證測試不(bù)受硬件(jiàn)的(d∏≈←§e)影(yǐng)響,因為(wèi)要(yào)從(cóng) ↓&✔理(lǐ)論邏輯層面保證軟件(jiàn)需求被落實。↓σ♣比如(rú),Matlab中基于模型的(de)MIL測試環境、基于台架或虛∞♣<±拟ECU的(de)SIL測試環境。當然,有(yǒu)時(shí)PC中無法模拟某些(δ↔§↓xiē)ECU或傳感器(qì),也(yě)隻能(néng)使用(yòngδ §£)真實硬件(jiàn)。
- 進入标準:完成必要(yào)的(de)前序測試(如(rú)冒煙(yān))且無重大(dà)問(wèn)題、相(xiàng)關的(de)測試設備(如(rú)線束、ECU、CANoe硬件(jiàn))就(jiù↔↕±)位、已review并發布的(de)軟件(jiàn)需求測試用(yòng)例與計(jì)劃。
- 退出标準:已執行(xíng)對(duì)應的(de)測試用(yòng)例、測試報(bào)告已完成、缺陷已錄入工(gōng)具鏈。除了(le)常規的(de)退出外(wài),出于成本的(de)考慮,還(hái)會(huì)有(yǒu)測試中止,比如(rú),基本功能(néng)确認失效、發現(x©>∑ iàn)的(de)缺陷會(huì)影(yǐng)響其他(tā)功能(néng)測試 δ₽結果有(yǒu)效性、對(duì)于發現(xiàn)的(de)缺陷"φ≠被修複後需重新測試的(de)範圍,或者在測試過程中,得(de)知(zhī)新的(de)軟硬件(jπδ$iàn)即将釋放(fàng),也(yě)應♠✘€∏綜合評估後中止。
- 負責角色:軟件(jiàn)測試人(rén)員(yuán)。
2 測試用(yòng)例選擇
完整的α&✘(de)軟件(jiàn)需求測試會(huì)消耗大(dà)量的(de)時(shí)間↕ (jiān)和(hé)資源,所以,我們需要(yào)在用(y↑∑♠òng)例選擇上(shàng)做(zuò)一(yī)個(gè→≤£>)平衡,不(bù)全測,或者不(bù)是(shì)每次交付全測$₩♦。一(yī)般有(yǒu)如(rú)下(xià)關注點。
- 産品風(fēng)險大(dà)小(xiǎo):對(duì)于功能(néng)安全等級較高(gāo)或者涉及到(dào)法律法規認證等高(gāo)風(fēng)險軟件(jiàn),通(tōng>λ)常,需要(yào)投入更多(duō)的(de)資源在影(yǐ £±∏ng)響分(fēn)析與測試量上(shàng),這(<≈♣'zhè)是(shì)一(yī)個(gè)理(lǐ)所當然的(de)決定。
&nbs₹λδ&p;
- 不(bù)同配置下(xià)的(de)功能(néng)是(shì)否适用(yòng):這(zhè)需要(yào)我們有(yǒu)一(yī)個α↓(gè)清晰的(de)feature list或配置表,不(bù)适用(yòng)的(de)功能(n★↑$éng)自(zì)然不(bù)需要(yào)≥•測試。
- 功能(néng)是(shì)否實現(xiàα♥n):即便本配置有(yǒu)該功能(néng),功能(néng)的(de)成熟度也(yě)得(de∏✔β§)達到(dào)可(kě)測水(shuǐ)平。
- 變更的(de)範圍:結合接口文(wén)檔、模型、追溯關系等,對(duì)軟件(jiàn)組件(jiàn)自(zì)身(shēn)的(de)變更及其對(duì)未變更組件(jiàn)的(de)影(yǐng)響進行(xín ¶∏÷g)評估,并進一(yī)步确認測試範圍。有(yǒu)時(shí),軟件(jε★iàn)外(wài)部的(de)系統環境或者車(chē)輛(liàng)的(de)變更都(dōu)會(huì)影(yǐng)σ♣響到(dào)測試用(yòng)例的(de)選擇。
- 曆史測試狀态:舊(jiù)的(de)版本、相(xiàng)近(jìn)配置'÷€♦、相(xiàng)近(jìn)分(fēn)支或者平台主線的(de)測試結果可(kě)能(néng)可(kě)以被當↔★前軟件(jiàn)沿用(yòng)。一(yī)般在這(zhè)裡(lǐ),也(yě &¶π)是(shì)基于變更來(lái)評估。
-&₩∏§nbsp;持續集成:為(wèi)了(le)确保基礎功能(néng)沒問(wèn®ε££)題,我們可(kě)以設定一(yī)些(xiē)關鍵的₽∑✔(de)必測項,也(yě)就(jiù)是(shì)不(bù)管什(shén)麽修改,都(dōu)至少(s§&hǎo)運行(xíng)這(zhè)一(yī)•∑套用(yòng)例。結合自(zì)動化(huà)測試腳本,可(kě)以将其部署在持續集成流水(shuǐ)線中。
-&nπ±✘bsp;全量測試:Delta測試很(hěn)必要(yào),但(dàn)全量測♥" 試也(yě)不(bù)應舍棄,我們可(kě)以根據産品和(hé)項目特點↓¶₩制(zhì)定一(yī)些(xiē)執行(xíng)全量測試的(de)規則,比如÷>(rú),一(yī)年(nián)至少(shǎo)一(yī)次、切換分(fēn)§∑<支基線後至少(shǎo)一(yī)次、發布D樣件(jiàn)之前至少(shǎo)λ♣<™測試一(yī)次、軟件(jiàn)上(shàng)路÷§(lù)試車(chē)前至少(shǎo)一(yī)次、發布10版軟件(jiàn)後至少(shǎo)一(yī)次$ 等。
3 雙向可(kě)追溯性和(hé)一(yī)緻性
所有(yǒu)軟件(jiàn)級别的(dπ¥e)可(kě)測試需求必須至少(shǎo)被一(yī)個(gè)測試用(yò♣•ng)例覆蓋。
而為(wèi)δ 了(le)檢查測試覆蓋率,必須能(néng)夠通(tōng)過工(gōng)γ © 具實現(xiàn)測試報(bào)告、測試規範與相(xiàng)•&Ω應需求之間(jiān)的(de)可(kě)追溯性,比較典型的(de)是(shì)建立鏈接。
如(rú)果要(yào)發布的(de)軟件(jiànλ )版本的(de)測試覆蓋率不(bù)完整,測試團隊應向項目經理(lǐ)或客戶彙報(bào),并記錄偏差原因和(hé)進行(xíng)風(fēng)險評估。
®λ•"一(yī)緻性呢(ne),一(yī)般也(yě)隻能(néng)通(tōng)過評審來(lái)盡量保證。比如(rú),軟件(jiàn)測試人(rén)員(y↓±γuán)應該參與軟件(jiàn)需求的(de)評審,而軟件≥•(jiàn)需求開(kāi)發人(rén₽>)員(yuán)則參與軟件(jiàn)測♦試的(de)測試用(yòng)例評審。
4 全文(wén)小(xiǎo)結
本文(wén)首先從(♦∏×cóng)目标、對(duì)象、環境、進入/退出↑≠♦标準等方面概述了(le)軟件(jiàn)需求測試的(de)基本概念和(hé)要(yào)求。
由于完整的(de∏∞)軟件(jiàn)需求測試會(huì)耗費(fèi)大(dà)量的(de)成本, α如(rú)何選擇測試用(yòng)例進行(xíng)Delta測試就(jiù)是(shì)一(yī)個(gè)重要(yà &o)的(de)課題,所以第二部分(fēn)對(duì)此進行(xíng)了(le)介紹。
5 寫在最後
通(tōng)常,處于軟件(jiàn)開 (kāi)發末端的(de)軟件(jiàn)需求測試,∞φ承擔了(le)不(bù)該承擔的(de)攔截問(wèn)題和(hé)保證交付的(≥←de)主要(yào)壓力,讓我們向他(tā)們緻以歉意。
轉自(zì)水(shuǐ)輕言