400-821-6015
行(xíng)業(yè)資訊
您當前的(de)位置:首頁 » 行(xíng)業(yè)資訊 » 行(xíng)業(yè)資訊
內(nèi)部資訊行(xíng)業(yè)資訊

如(rú)何建立自(zì)動化(huà)測試用(yòng)例和(hé)需求之間(jiān ✔)的(de)追溯性

發布日(rì)期:2023-08-04
      建立自§"§(zì)動化(huà)測試用(yòng)例和σ (hé)需求之間(jiān)的(de)追溯性,一(yī)直是(sh→©ì)汽車(chē)行(xíng)業(yè)的(de)一(yī)個(g‍✘'©è)難題。如(rú)果不(bù)建立,則無法證明(míng)需求的(&←de)覆蓋度是(shì)否完全,可(kě)能(néng)導緻需求被漏測,無法滿足ASPICE或功能​¥♦Ω(néng)安全的(de)要(yào)求;如(>₽₹™rú)果要(yào)建立,自(zì)動化(huà)測試用(yòng)例是(sh'♣¶‌ì)腳本,而需求是(shì)文(wén)本,如(rú)何把腳本和(hé)£α₩文(wén)本對(duì)應起來(lái)?


      測試腳本也(yě)好(hǎo),需求也(yě)好(hǎo‌™λ),一(yī)直在變化(huà),如(rú)何在變化(huà)之後,還(hái)能'↑≥'(néng)保證追溯的(de)正确性?質量經理(lǐ)需要(yào)保證此處的(de)覆蓋度是(shì)完全的(de),并且也σ¥£×(yě)需要(yào)向ASPICE評審老(lǎo)師(shī)提供證據©γ→ 。而此處追溯性證據的(de)出示,也(yδ<ě)是(shì)ASPICE評審最耗時(shí)的(de)地(dì)方 ‍¥之一(yī)。有(yǒu)沒有(yǒu)什(shén)麽好(hǎ÷∞♥o)的(de)方案能(néng)解決這(zhè)個(gè)問(wèn)題?既省時(shí)、又(α$yòu)準确,還(hái)能(néng)保證追溯性的(de)建立。


是(shì)否一(yī)定要(yào)建立自(↔§ zì)動化(huà)測試用(yòng)例和(hé)需求之間(jiān&★)建立追溯性?


      這(zhè)個(gè)話(huà)題在不 ☆®®(bù)同團隊內(nèi)部,應該都(dōu)經過了(le)反複討(tǎo)論↕∞♦$。一(yī)般來(lái)說(shuō),測試工(gōng)程師(shī)傾向于不(bù₹∞)去(qù)建立這(zhè)樣的(de)追溯性關系。對(du₹≈ ♦ì)于他(tā)們來(lái)說(shuō),自(zì)動化(huà)測試用(yòng≈∑)例的(de)生(shēng)成過程,就(jiù)是(shì≤≥€↑)他(tā)們基于對(duì)需求的(de)研究,一(yī↓α)條條寫下(xià)來(lái)的(de),他(×Ω$tā)們天然認為(wèi)測試用(yòng)例和(hé)需δ≤求是(shì)對(duì)應的(de),再要(yào)花(huā)時(shí)間(jiā↑ε↔™n)去(qù)建立這(zhè)種追溯關系多(duō)此一(yī)₽✘β舉。況且,軟件(jiàn)出了(le)問(wèn)題再改不(bù)就(jiù)行(xíng)了(₽∞λ↕le)嗎(ma)?即使所有(yǒu)需求都(dōu)關聯了(le) ¥測試用(yòng)例,也(yě)無法确保測試用(yòng)例不(bù)會(huì)遺漏,因為(wè₹↕₽πi)一(yī)條需求可(kě)能(néng)對(duì)應多 ☆♥(duō)個(gè)測試分(fēn)支,↕δα 而關聯性無法保證所有(yǒu)分(fēn)支都(dōu)被發掘出來(lái)了(le)。那☆&✘(nà)為(wèi)什(shén)麽不(bù)等著(z䶙★he)軟件(jiàn)出問(wèn)題之後,✔✔≥再去(qù)解決呢(ne)?

      這(zhè)種想法顯然不(bù)對(duì), ©在開(kāi)發早期發現(xiàn)越多(duō)問("®wèn)題,付出的(de)改動成本就(jiù)越小(xδ☆‍γiǎo)。但(dàn)如(rú)果為(wèi)了(le)追求這(zhè)種早期的(de≠←)覆蓋度,而需要(yào)付出巨大(dà)的(de)精力,這(zhè)又(yòu)¥©不(bù)得(de)不(bù)讓我們懷疑,是(shì)否可(kě♠ ↕)以把這(zhè)個(gè)工(gōng)作(zuò)負荷,放(f∑>©àng)到(dào)問(wèn)題出現(xiàn)之後了(le)。

      

      這(zhè)種巨大(dà)的(de)精力來(lá×™←i)自(zì)哪裡(lǐ)?不(bù)同于手動★↔​•測試用(yòng)例,自(zì)動化(huà)測試用(yòng)例是(shì)由腳本語言₹®♦§來(lái)編寫的(de),腳本不(bù)同于exce φl一(yī)行(xíng)一(yī)行(xíng)的(de),方便建立條目化(huπ§&→à)的(de)對(duì)應關系,相(xiàng)反,他(tā)們難以與需求↔☆↓₽之間(jiān)建立準确的(de)對(duì)應關系。由于自(zì)動化(huà)測•↑£&試腳本的(de)更新速度很(hěn)快(kuài),而需求也(yě)可(kě±±¶)能(néng)産生(shēng)變化(huà),需求₹$産生(shēng)變化(huà)之後,更新追溯性關系的(d₽ε♠e)重任,必然落到(dào)測試工(gōng)程師(sh§✘↑♥ī)頭上(shàng)。這(zhè)是(shì)一(yī)份相(xiàng  ♦)當繁瑣且乏味的(de)工(gōng)作(zuò),對(du₽§≈ì)于自(zì)動化(huà)測試工(gōng)程師(shī)來(lái)講,會(huì)有(yλ​≥ǒu)巨大(dà)的(de)時(shí)間(jiān)壓力,特别是(shì)當項目比‍∑≥較緊張的(de)時(shí)候。


      可(kě)是(shì),如(rú)‌ 果站(zhàn)在需求工(gōng)程師(shī)或者β™項目經理(lǐ)的(de)角度來(lái‌♦₹₽)說(shuō),如(rú)果無法看(kàn) ×到(dào)測試用(yòng)例和(hé)需求之間(jiān)的(de)覆蓋度數(shù↕ π₩)據,心裡(lǐ)會(huì)沒底。如(rú≤₩≥)果需求文(wén)檔是(shì)從(cóng)甲方客戶而$©☆♣來(lái),這(zhè)種擔憂更加明(míng)&β•π顯。甲方客戶一(yī)般無法知(zhī)曉乙方的(de)ε↓測試用(yòng)例生(shēng)成過程和(hé)測試執行φ₽≥(xíng)過程,所以更加需要(yào)需求的(dδπ¥₩e)測試用(yòng)例覆蓋度數(shù)據這(zhè)一(yī)“心§↑→$理(lǐ)安慰劑”(這(zhè)大(dà)概也(yě)是(shì)ASPIΩ♥✘÷CE提出這(zhè)一(yī)要(yào)求的(de)原因吧(ba​ β↑))。


      所以,這(zhè)個(<δgè)問(wèn)題就(jiù)變成了(le)是(shì)提前做(zuò),還(h↕♥ái)是(shì)往後放(fàng)?是(shì)在早期就(jiù)盡可(kě)能(néng)地(>∑dì)建立追溯性關聯關系,确保需求沒有(yǒu)被遺漏考∞↔"慮;還(hái)是(shì)在問(wèn)題被發現(xiàn)之後,再去(qù)debug,∑≠更進一(yī)步補充測試用(yòng)例?


      我們認為(wèi)前↔÷♠₹者有(yǒu)價值,但(dàn)如(rú)果需要(yào)付出巨大(&®dà)的(de)勞動和(hé)精力去(qù)執♠‍≠§行(xíng),那(nà)麽投資回報(bào)率很(hěn)低(♠¥←dī),可(kě)能(néng)效果還(hái)不(bù)如(rú)後者。那₩←✘★(nà)麽是(shì)否有(yǒu)可(kě)能(nén$↑g),在不(bù)付出那(nà)麽多(duōββ®)精力的(de)情況下(xià),能(nén‍$g)達到(dào)前者的(de)目的(de)?


如(rú)何建立自(zì)動化(huà)測試用(yòng)例和(hé)需求之間(j♠×iān)的(de)追溯性?


      我總結了(le)一(yī)下(xi•★à),大(dà)概應該有(yǒu)如(rú)下(xià)幾個(gè→§')步驟:


      1、Ω>在自(zì)動化(huà)測試用(yòng)例的(de)注釋中,标注'↕對(duì)應的(de)需求編号或名稱,确保測試用(yòng)例和± (hé)需求之間(jiān)建立了(le)追溯性。


      标注需求名稱是(sh§§ì)萬萬不(bù)行(xíng)的(de),因為(wèi)後續很(hěn)難✘≈✔♠通(tōng)過識别需求名稱,去(qù)确定每一(↑®yī)條需求是(shì)否被覆蓋,從(cóng)而算(s♦×‌↓uàn)出需求覆蓋度。


     ₩ φ$ 标注需求編号的(de)前提是(shì),需求要(yào)有(yǒu)全局唯一≠₩♥(yī)的(de)編号。這(zhè)句話(huà)說(shuō)起來(lái)很(hěn)簡單,但(dànφ‌≈♦)很(hěn)多(duō)團隊往往做(zuò)不(bù)到‌ (dào)。有(yǒu)些(xiē)團隊使用(yòng)wεφ©εord管理(lǐ)需求,需求沒有(yǒu)編号,隻有(yǒu)章(zhāng)節号。而章←§∑(zhāng)節号會(huì)随著(zhe)章(zhāng)節的(de)增減‍δ★而自(zì)動變化(huà),很(hěn)快(kuài),對(duì)應關系便陷入混亂 "₹,不(bù)可(kě)自(zì)拔。


      有(yǒ★$÷∑u)些(xiē)團隊使用(yòng)excel管理(lǐ)需求,需求♦×↓編号是(shì)根據團隊內(nèi)部的(de)某些(xiē)規則自(zì)己定義的(β÷♦de),先不(bù)說(shuō)隻要(yào)是(→&πφshì)有(yǒu)人(rén)參與的(de)編号就(jiù)一(yī)定會(huì)有(₽∞yǒu)重名、遺漏的(de)情況出現(xiàn),就(jiù)說(shu ε♠ō)維護這(zhè)一(yī)套編号的(de)規則,λ≠☆♠就(jiù)需要(yào)全員(yuán)討(tǎo)論、全員(yuán)正确執行(x ♦íng),可(kě)能(néng)還(hái)要®♣(yào)出個(gè)專門(mén)的(de)配置管理(lǐ)員(yuán<×λ$)定期審查,顯然這(zhè)不(bù)是(shì)一(yī)套₹γ£劃算(suàn)的(de)方案。标注需求✘★&✘編号是(shì)對(duì)的(de),但(dàn)≤₽前提一(yī)定是(shì),需求要(yào)有(yǒu)正确的(de)、唯一(yī)的(de ∞"±)編号。


      2、獲得(de)需↓↕求和(hé)測試用(yòng)例之間(jiān)的(de)矩陣表


      如(rδ≥§±ú)何獲得(de)?


      手動把上(shàng)述需求編÷>™☆号和(hé)測試用(yòng)例編号摘出來(lá₽ ©☆i),做(zuò)成一(yī)張矩陣表。這(zhè)當然是(shì)個(gè)方法,但(dàn∞↔®)前提是(shì)測試用(yòng)例要(yào)有(yǒu)全局唯一(yī)的(deβ✘Ω©)編号。但(dàn)測試用(yòng)例是(shì)用(yò↕​ng)腳本來(lái)維護的(de),腳本中不(bù)會(huì)自(zì)動¶≠生(shēng)成編号,又(yòu)回到(dào)了(le)上(shàng)面的(dε♥↓÷e)困局:人(rén)為(wèi)對(duì)測試用(yòng)例進行(xín→☆g)編号。缺點參照(zhào)上(shàng)面,容易出錯(cuò),且™♠需要(yào)一(yī)個(gè)配置管理(lǐ)員(yuán)不(bù)時(sh§←¶↑í)就(jiù)拉著(zhe)測試工(gōng)程師(shī)審查一(yī)下(xβ∑ià)。測試工(gōng)程師(shī)還(hái)不(bù)得(de)mmp。®♠×↓


      想辦法給某一(yī)條測試​δ€™用(yòng)例,自(zì)動賦予全局唯一(yī✘ ÷)的(de)編号,并且自(zì)動生(shēng)成上(shàng)述矩陣表,這π¥(zhè)是(shì)更高(gāo)效的(de)解題方法。



      3、維護矩陣表的(de)正确性


      如(rú)何維護?


      如(rú)果是(s®"★≤hì)手動獲取的(de)矩陣表,當然得(de)手動維護,這(zhè)時(shí)候工' ‍(gōng)作(zuò)量就(jiù)大(dà)了(le)。


      測試用(yòng)↓♥±α例新增了(le):需要(yào)新增測試用(yòng)例編号(查一(yī)下(xià)配置表←←←,找到(dào)正确的(de)編号規則,确認目前編到(dào)多(duō♣¶>♣)少(shǎo)号了(le)……),需要(yào)對(duì)應需求編号(找一(yī)下(xi♥βà)對(duì)應的(de)需求);


      測試用(yòng)例删除了(le≥±☆):需要(yào)删除無用(yòng)的(de)測試用(yòng)例編号,且此編号最σ>好(hǎo)以後都(dōu)别用(yòng)了(le),以免引起混亂,還(hái)得(de)确保☆φδ此處更新,全局更新,如(rú)果文(wén£↑)件(jiàn)是(shì)線下(xià)的(de),譬如(rú)這(zhè)份excelσε€存在多(duō)個(gè)人(rén)的(de)電(diàn)腦(nǎo)♣£α裡(lǐ),這(zhè)基本就(jiù)是(shì)新的(de)災難的(♦‌de)開(kāi)始。


      想辦法确保上(shàng)述矩陣表能(™±néng)自(zì)動更新,當測試用(y§£ε∞òng)例腳本中不(bù)管是(shì)新增測試用(yòng)例,還(hái)λ®是(shì)删除測試用(yòng)例,都(dōu)能(néng)↓∞自(zì)動更新上(shàng)述表格。且表格應該是(shì)基于測試計(™✔jì)劃的(de)角度來(lái)出具的(de)。即這(zhè)次測試計(jì)劃測試了♣'(le)多(duō)少(shǎo)需求,每一(yī)條需求是(shì)否對(duì)應了(le)測‌​✘試用(yòng)例,每一(yī)條測試用(yòng)例是(shì)否測試通(tōng)過,是(s↔•hì)否發現(xiàn)bug,bug是(shì)否解決,按照(zhào)這✔¥Ωα(zhè)樣的(de)順序來(lái)出具矩陣表。


      ↕₹按照(zhào)上(shàng)面的(de)思路(lù),我們開(kāi♣α★→)發的(de)MappingSpace也(yě)提供了(le)™π一(yī)個(gè)方案,用(yòng)于管理(lǐ)需求≠☆πδ和(hé)測試用(yòng)例,并且自(z↔↕¶ì)動化(huà)地(dì)建立它們之間(jiε©ε ān)的(de)追溯性。詳見(jiàn)下(xià)圖:

圖片


轉自(zì)汽車(chē)電(diàn)子(zǐ)與軟件(jσ←≈∑iàn)

北京德智尚車聯科技有限公司版權所有(yǒu) 京ICP證000000号   技(jì)術(shù)支持:網站(zhàn)建設