• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      探索性測試的實施與理解

      2013-12-31 00:00:00張歆薇
      電子世界 2013年22期

      【摘要】傳統(tǒng)的面向故障的軟件測試方法存在限制條件高精確程度與低誤報率無法兼得的瓶頸效果。而高誤報率直接導(dǎo)致軟件測試成本的增加和效率的低下。本文通過對探索性測試方法的研究中得出該方法的使用場合與特點,從而希望能在有限的軟件測試成本內(nèi)找出與腳本測試相結(jié)合的最佳方法。利用探索性測試,能顯著提高軟件測試的效率。

      【關(guān)鍵詞】軟件測試;探索性測試;測試方法;缺陷效率

      隨著軟件測試技術(shù)的不斷發(fā)展,各種新穎的測試技術(shù)越來越受到軟件測試人員的關(guān)注。探索性軟件測試是其中一種比較前沿的理論,尤其適用于那些要求在短時間內(nèi)發(fā)現(xiàn)被測軟件一些重要缺陷或事先沒有能夠進行詳細測試設(shè)計的情況。探索性軟件測試強大的缺陷發(fā)現(xiàn)效率是其得到眾多青睞的重要原因之一。如何選擇合適的測試方法?我們針對三種測試方法(腳本測試,探索性測試和自動化測試)區(qū)別以及他們之間的合作關(guān)系展開一定的討論。

      1.調(diào)研目的

      1.1 軟件測試現(xiàn)狀和問題

      軟件測試是軟件開發(fā)生命周期中不可或缺的用來保證軟件質(zhì)量、提高軟件可靠性的重要階段?;趥鹘y(tǒng)理論的軟件測試,理論上都要求盡可能早地引入軟件測試過程。

      而在實際的測試過程中,我們所遇到的問題很多:首當(dāng)其沖的就是長期處于瀑布模型下的軟件工程,將測試工作安排并推遲到了開發(fā)周期結(jié)束階段進行,導(dǎo)致大量的測試工作,包括功能測試、集成測試以及性能測試都堆積到了末期進行。其次,沒有有效地利用自動化測試這一先進技術(shù)也是目前軟件質(zhì)量備受質(zhì)疑的關(guān)鍵因素。雖然很多公司都非常推崇軟件測試自動化這一理念??烧嬲玫綄嵦幠軌蚴掳牍Ρ兜漠吘共皇呛芏唷5谌?,需求變更得頻繁性也是一個讓項目經(jīng)理頭大的問題??蛻粢桓脑俑牡那闆r,絕對不是少數(shù)。再加上項目進度、客戶壓力等其他其他因素,測試工作的時間和內(nèi)容被一壓再壓地縮減。這樣惡性循環(huán),誰也不敢保證軟件質(zhì)量。

      如何在減少重復(fù)性的測試工作的同時,發(fā)現(xiàn)盡可能多的軟件缺陷,并利用有效的自動化測試降低成本,同時還能夠及時高效的覆蓋到這些變更的需求。這些正是想要幫助大家解決的問題。

      1.2 探索性測試

      探索性軟件測試是不同于傳統(tǒng)方法的測試技術(shù),在某些情況下,它比腳本測試更高效。尤其適用于那些要求短時間內(nèi),或者在頻繁的需求變更下發(fā)現(xiàn)被測試軟件重要缺陷的情況。其實每個測試工程師都在不知不覺地使用探索性測試方法。其定義由James A.Whittaker提出:測試人員在測試應(yīng)用程序中可以天馬行空的想怎么測試就怎么測試,利用程序所提供的信息自由發(fā)揮,沒有限制,不受任何約束的探索程序各個功能,借由這一方法來發(fā)現(xiàn)測試用例以外的軟件錯誤。

      探索性測試,就是對手工測試用例加上自動化測試用例的一種補充。如果說手工測試和自動化測試在整個測試過程中占了70%,那我們所希望的就是通過探索性測試,能夠?qū)⑽覀兯雎曰蛘哌z漏掉的30%覆蓋到大部分。100%的覆蓋測試是不可能的。我們能做的就是通過各種測試途徑、測試方式,包括單元測試代碼,代碼覆蓋率工具等,盡可能的提高我們測試的覆蓋范圍。

      2.三種測試方法的比較

      2.1 探索性測試與腳本測試

      傳統(tǒng)手工測試通常是完全按照預(yù)先設(shè)計好的測試步驟一步一步人工驗證所有想要驗證的功能。但是人非萬人,總有缺漏。因此對于探索性測試的重要性是要予以肯定的。國內(nèi)外學(xué)者對探索性測試和腳本測試方法的缺陷發(fā)現(xiàn)率和測試成本進行比較。

      以上實驗數(shù)據(jù)是我們國內(nèi)的學(xué)者通過很多次對比試驗得出的結(jié)果。接下來,我們再來看一組國外研究學(xué)者們整理的數(shù)據(jù)報告。

      我們可以觀察到以下:首先在傳統(tǒng)測試方法中,結(jié)合使用探索性測試方法,缺陷的檢出率明顯高于單一的使用傳統(tǒng)測試方法;此外探索性測試能發(fā)現(xiàn)更多測試設(shè)計以外的缺陷;最后進行探索性測試時,測試人員的經(jīng)驗、態(tài)度、思維方法等方面都會影響測試的效果。[1]外國專家也得出“Defect Detection Effectiveness”(缺陷發(fā)現(xiàn)有效率)類似的結(jié)論。[2]

      1)Effectiveness:There is no difference between ET and TCT.(有效率:腳本測試和探索性測試的缺陷有效率沒有區(qū)別。)

      2)Efficiency:ET is more efficient as it requires less design effort.(效率:探索性測試能高效,因為需要更少的設(shè)計工作時間。)

      3)Both ET and TCT have problems,but the problems are different;in TCT,it is the quality of the test cases,and in ET,it is managing the testing activities and reporting.(腳本測試和探索性測試都存在問題,但是他們的問題不同。腳本測試中,對測試用例的質(zhì)量是需要考量的。同時在探索性測試中對測試活動和測試報告需要進行一定的管理。)

      2.2 探索性測試與自動化測試

      自動化測試就是把手工測試的每個步驟用自動化測試工具來實現(xiàn)。好處是不用人來做了,缺點就是機器在執(zhí)行測試過程中并不會變通。至于什么時候開始自動化測試,什么時候開始探索性測試?先自動化后探索性,還是反之,就要看項目產(chǎn)品的具體情況了。既然兩種方法都有了,為什么我們不也來比較一下他們的效率和優(yōu)勢呢?首先我們比較手工測試和自動化測試的成本比較。這里有幾個數(shù)據(jù)我們可以一起看一下:

      我們可以看到雖然自動化測試大大降低測試工作的成本,但不能完全取代手工測試的工作。完全的自動化測試只是一個理論上的目標,實際上想要達到100%的自動化測試是不可能實現(xiàn)的。從數(shù)據(jù)來看,一個40-60%的利用自動化的程度已經(jīng)是非常好的了。

      3.三種測試方法的結(jié)合

      各種數(shù)據(jù)可以告訴我們,腳本測試和探索性測試各有所長、相輔相成,不可能互相取代對方的作用。我們需要做是找到腳本測試和探索性測試的最佳結(jié)合點,實現(xiàn)優(yōu)勢互補,更好的完成測試任務(wù)。理論上,腳本測試應(yīng)該可以進行探索性測試所能做到的所有測試工作,但是腳本測試不可能涵蓋所有的測試,原因很簡單:這些已經(jīng)實現(xiàn)制定好的測試用例或者測試腳本,會規(guī)定了明確死板的輸入和輸出。如果想要設(shè)計好所有可能性的用例,又會有太多重復(fù)性的工作和龐大的文檔工作放在面前。如果想發(fā)現(xiàn)和業(yè)務(wù)邏輯有關(guān)的系統(tǒng)缺陷,那么測試人員所實施的手工測試才是理想的選擇。因為它充分調(diào)動了測試人員的聰明才智,能夠設(shè)計出符合真實情況的場景和案例。如果再用自動化測試代替這些手工測試,那么我們即能提高覆蓋率又能降低成本。考慮采用自動化測試,盡可能的增加多的適用的測試用例期望通過有線的測試找出盡可能多的軟件缺陷。我們可以使用不同的等價劃分法、邊界值分析化學(xué),以及白盒測試里的程序控制流分析、數(shù)據(jù)流分析、邏輯覆蓋、域覆蓋、符號覆蓋等其他方式來增加自動化測試的覆蓋率。

      在真實情況中,在手工測試的過程中已經(jīng)或多或少使用到探索性測試了。將探索性測試執(zhí)行過的步驟,加入到腳本測試用例中,或者加入到自動化測試中。在下一輪的測試中通過各種方式覆蓋這個測試,同時測試人員騰出手來做其他的探索性測試,這樣循環(huán)往復(fù),才能真正利用好探索性測試這個方法。

      4.結(jié)論

      任何一種偏向性的軟件測試方法,都不能滿足當(dāng)今對軟件測試質(zhì)量越來越高的用戶要求。利用探索性測試能顯著提高軟件測試的效率。探索性軟件是對傳統(tǒng)測試方法的補充,它只在特定的環(huán)境和要求下使用才能達到最好的效果。這是對測試人員根據(jù)現(xiàn)實情況進行的一種主動測試,需要測試人員具備更好的專業(yè)素質(zhì)。需要在有限的時間中選擇并做出正確的事情,需要有明確的戰(zhàn)略和方向但是有必須預(yù)留一定的空間和時間讓每個測試人員的大腦可以充分運作起來,在測試的過程中隨機應(yīng)變。探索性測試鼓勵著測試人員邊測試邊計劃,運用測試中收集到的信息,影響自己正在進行測試的實際方式。測試人員在執(zhí)行腳本測試的同時,將探索性測試的信息添加到腳本測試的腳本中,以保證下次不遺漏。盡可能的加到自動化測試用例中,加快測試速度,然后我們就會有更多時間執(zhí)行探索性測試發(fā)現(xiàn)更多的問題。只有正確的使用腳本測試,加上合理的自動化測試,外加利用探索性測試,才能加快測試的速度,有效的進行測試,并提高測試覆蓋率。

      在加深對探索性測試的理解過程中,將我們掌握的各種測試技術(shù)和方法用最佳的方法和比例結(jié)合在一起,在提高軟件質(zhì)量上發(fā)揮超出預(yù)期的結(jié)果。在國內(nèi)日趨成熟的軟件行業(yè),只有通過提高軟件的質(zhì)量,同時通過各種方式降低成本,才能提高在本行業(yè)中的核心競爭力。

      參考文獻

      [1]朱昭俊,蘇賽.探索性測試方法分析[J].計算機光盤軟件與應(yīng)用,2012(19):73-74.

      [2]ITKONEN J,M?NTYL? M V 2.Are Test Cases Needed?Replicated Comparison Between Exploratory and Test-case-based Software Testing[J].Empirical Software Engineering,2013.

      [3]史永莉,陳元琰,羅曉曙等.軟件自動化測試方案的效益分析[J].微計算機信息,2010(6): 218-219+228.

      图片| 唐河县| 贵定县| 日喀则市| 桓台县| 上虞市| 息烽县| 锡林浩特市| 乐亭县| 蒙阴县| 商丘市| 旌德县| 万宁市| 林州市| 即墨市| 扶余县| 湖口县| 扎囊县| 佳木斯市| 韶山市| 黑河市| 连江县| 长泰县| 青田县| 于都县| 宣威市| 淳化县| 大理市| 班戈县| 彭山县| 高唐县| 大姚县| 揭西县| 青龙| 湖口县| 嘉禾县| 基隆市| 兴宁市| 陵水| 丰顺县| 汨罗市|