北(běi)京軟件(jiàn)開(kāi)發公δ★β₽司軟件(jiàn)實驗室自(zì)動測試代技(&≤☆Ωjì)術(shù)的(de)發展,以限制(z₹β§₽hì)過度的(de)測試工(gōng)作(zuò),并加強對(duì)敏π₩捷開(kāi)發的(de)效率 - 一(yī)個(gè)漸進的♣δ✘(de)方法來(lái)開(kāi)發軟件(jiàn≥ε$β),逐步增加了(le)小(xiǎo)規模的(de)函數(shù),然後一₩ (yī)個(gè)接一(yī)個(gè),讓他(tā)們使用Ω♠π(yòng)。自(zì)動測試代技(jì)術(sh®γ§ù)分(fēn)析源代碼,并生(shēng)成新的(€≈"☆de)測試用(yòng)例來(lái)測試詳盡的(de ')軟件(jiàn)。
然而,在一(yī)個(gè)敏捷開(kāi)發方法,經常,反複的(de)≥ ♥§修改的(de)源代碼中有(yǒu)大(dà)量的(de)結果☆₹€測試用(yòng)例和(hé)過度測試工(gōng)作(zuò)。實驗室現(x¥Ω←iàn)在已經開(kāi)發了(le)自(zì)動φ&測試生(shēng)成技(jì)術(shù),可(kě)以有(yǒu)≥±>α效地(dì)搜索源代碼中的(de)變量的(de)影(yǐ≥π$ng)響,其中添加了(le)新的(de)軟件(jiàn)≥♥₩∞功能(néng)的(de)代碼段,并在本地(dì)∏$ 修改,并在變量層面加入到(dào)測試的(de)部分(fēn)。在這(zhè£↑β)種應用(yòng)這(zhè)些(xiē)技(jì)術(shù↕★✔)的(de)修訂版試用(yòng)開(kāi)源軟件(jiàn)有(yǒu)•★&大(dà)約五千行(xíng)源代碼,實驗室證實它是(shì)可(kě)±™"₹以大(dà)幅縮短(duǎn)測試代碼到(dào)以前的(de≥♥)水(shuǐ)平的(de)1/24日(rì)的(de)增加。這(zhè×")将通(tōng)過自(zì)動化(huα≥>à)測試,這(zhè)是(shì)以前很(₩♦hěn)難适用(yòng)于敏捷開(kāi)發能(néng)夠在開(kΩ✘±≈āi)發效率。它也(yě)将大(dà)大(dà)'₩β減少(shǎo)所造成的(de)短(duǎn)暫的(× de)期間(jiān)反複增加的(de)功能(néng),從(cóng)×σ↓而縮短(duǎn)整體(tǐ)的(de)開(kāi)發時(shí)間(jiā>↑n)的(de)測試時(shí)間(jiān)的(de)增加。
開(kāi)發背景
敏捷開(kāi)發正在推進作(zuò)為(wèi)軟件(jià↑Ω☆δn)開(kāi)發方法,可(kě)以通(tōng)過添加到(£ ≥dào)在要(yào)求的(de)變化(huà)和(hé)規格迅速>γ±和(hé)靈活地(dì)應對(duì),在很(h¥↓ěn)短(duǎn)的(de)時(shí)間(jiān),小(xiǎ×β↕↑o)規模的(de)函數(shù),然後使它們經過另'÷π 一(yī)個(gè)可(kě)用(yòng)之一(yī)。實驗室正在開(kāiφ$)創自(zì)動測試生(shēng)成技(jì)術(shù),敏捷開≠♥(kāi)發,它通(tōng)過分(fēn)析源代碼自(zì)動測試詳©"盡軟件(jiàn)的(de)開(kāi)發。
問(wèn)題
當源代碼增強制(zhì)成,與傳統的(de)自(zì)動測試代技(÷'♦jì)術(shù),可(kě)能(néng)存在先Ω≠★前可(kě)用(yòng)的(de)測試情況下≈λ(xià)是(shì)不(bù)能(néng)用(yò₹€↕ng)于測試增強的(de)情況。在這(zhè)種α&∏情況下(xià),有(yǒu)必要(yào)産生(sh®β₩×ēng)并添加一(yī)個(gè)新的(≠φ←₹de)測試情況。這(zhè)意味著(zhe),在敏捷開(kāi)發,這(γΩ♥σzhè)裡(lǐ)的(de)修改是(shì)頻(pín)繁,加入測試用( ≠yòng)例的(de)數(shù)量變得 ↔(de)過多(duō),和(hé)任務,如(rú)處理(lǐ)測試的(de)情∏∑況下(xià),檢查測試結果,以及測試用(yòng)例維護"₽☆₩成為(wèi)問(wèn)題(圖1)。
新開(kāi)發的(de)技(jì)術(÷¶shù)
現(xiàn)在,通(tōng)過有δ≤∑₩(yǒu)效地(dì)分(fēn)析輸入變量和(hé)源代碼的(de)訂正部分 ←✔(fēn)之間(jiān)的(de)關系,從(cóng)而使測試代碼可(✔Ω✔kě)以在輸入變量電(diàn)平被重用(yòng),實驗室≠& ★已經開(kāi)發出自(zì)動測試代技(jì)術(s€₩&¥hù)限制(zhì)在測試的(de)數(shù)量的(de)δ£☆↔增加由于源代碼的(de)修改情況。新開(kāi)發的(de≠↕)技(jì)術(shù),具有(yǒu)以>§€下(xià)特點:
1.技(jì)術(shù),在輸入變量級重用(yòng)的(de)測試代<>碼
通(tōng)過修改隻對(duì)相(xiàng)關的€♥§(de)源代碼的(de)改變的(de)部分(fēn)←☆的(de)輸入變量的(de)測試代碼,實驗室已₹→經開(kāi)發測試碼再生(shēng)技(jì)術(shù),可(kě)以Ω≈<限制(zhì)在測試用(yòng)例的(de)增加(圖2)。與以前的π₩φ(de)技(jì)術(shù)中,響應于源代碼修改,每個(gè)♣>∏≠測試用(yòng)例不(bù)得(de)不(bù)重新用(yòng)作(zu£♣ò)是(shì),本來(lái)要(yào)加入一(yī)個(gè)新的 ₽(de)再生(shēng)試驗的(de)情況下(xiࣣ±∞),或原已被替換,而所有(yǒu)這(zhè)樣的(de)選•± ♠擇必須在要(yào)進行(xíng)測試®$↑案例的(de)水(shuǐ)平。用(yòng)這(zhè)種新開(kλ↕āi)發的(de)技(jì)術(shù),≤作(zuò)為(wèi)供試碼在單個(gè)♦π±π輸入變量電(diàn)平改寫,所以可(kě)以有(yǒu)效地(dì)再×®生(shēng)測試用(yòng)例。
2.技(jì)術(shù)來(lái)有(yǒu)₹φ效地(dì)找到(dào)有(yǒu)關線的(de)γ≤π↑源代碼的(de)輸入變量
識别與源代碼訂正段輸入變量需要(yào)大(dà)量的("€de)存儲器(qì)(圖3)。實驗室開(k×βāi)發的(de)技(jì)術(shù),可(kě)©φ以找到(dào)相(xiàng)關的(de)源代碼行(xíng™δ→),同時(shí)大(dà)大(dà)降低(dī)的(d∑φ♣e)存儲器(qì)使用(yòng)量,通(tōng)過表示相( ×♥xiàng)關的(de)代碼行(xíng)中的(de÷✘↔≠)曲線路(lù)徑的(de)輸入變量和(hé)部分(fēn)地(dì)與其©γσβ它線路(lù)共享這(zhè)些(xiē)路(lù)徑的(de)輸入↕ '變量的(de)源代碼。
在施加這(zhè)種技(jì)術(shù)的(de)大(dà)約5千♦✘₹行(xíng)開(kāi)源軟件(jiàn)修訂一(yī)個(gè)試驗中 ©δ,它被示出,以減少(shǎo)在測試代碼到(dào)以前的(de)水♦γ&✘(shuǐ)平的(de)1/24日(rì)的(de)增加。有(y→'→₹ǒu)了(le)這(zhè)項技(jì)術(shù),就(jiù)∏"φ≠可(kě)以使用(yòng)自(zì)動測試 £♣↑-generation技(jì)術(shù),敏捷開(λ©kāi)發,縮短(duǎn)開(kāi) ↑↓¥發時(shí)間(jiān)。