<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            我們的測試為什么不夠敏捷?

            發(fā)表于:2014-09-03來(lái)源:uml.org.cn作者:殷坤點(diǎn)擊數: 標簽:敏捷測試
            測試是為了保證軟件的質(zhì)量,敏捷測試關(guān)鍵是保證可以持續、及時(shí)的對軟件質(zhì)量情況進(jìn)行全面的反饋。由于在敏捷開(kāi)發(fā)過(guò)程中每個(gè)迭代都會(huì )增加功能、修復缺陷或重構代碼,所以在完成

              測試是為了保證軟件的質(zhì)量,敏捷測試關(guān)鍵是保證可以持續、及時(shí)的對軟件質(zhì)量情況進(jìn)行全面的反饋。由于在敏捷開(kāi)發(fā)過(guò)程中每個(gè)迭代都會(huì )增加功能、修復缺陷或重構代碼,所以在完成當前迭代新增特性測試工作的同時(shí),還要通過(guò)回歸測試來(lái)保證歷史功能不受影響。為此我們期望:

              測試范圍足夠廣:

              測試用例要覆蓋所有功能;

              要在各種可能的環(huán)境下作兼容性測試;

              系統的穩定性、性能都要測試;

              測試頻率足夠高:

              每日構建產(chǎn)生的版本要保證可用;

              每個(gè)迭代都需要對歷史功能做回歸測試;

              釋放前或上線(xiàn)后如果打了補丁,就需要回歸;

              但實(shí)際情況往往不遂人愿:

              實(shí)際測試周期變短:

              上線(xiàn)時(shí)間提前確定,研發(fā)進(jìn)度延期,測試計劃被迫延后;

              最后階段經(jīng)常會(huì )臨時(shí)增加測試任務(wù);

              所有人都知道還需要再經(jīng)過(guò)一輪測試,但時(shí)間沒(méi)有了;

              有效測試資源稀缺:

              臨時(shí)從其他項目抽調的測試人員不能立刻有效的開(kāi)展測試工作;

              “搞不清楚”本項目的研發(fā)人員到底是不會(huì )做測試還是不愿做測試;

              因此由于客觀(guān)上的資源和時(shí)間限制,完整的、及時(shí)回歸測試在人工測試情況下,往往是不可能完成的任務(wù)。團隊內部也會(huì )產(chǎn)生各種爭執:

              提交給測試的版本為什么研發(fā)人員不先做通過(guò)性測試?

              這次代碼改動(dòng)量不大,有必要再花那么多時(shí)間回歸么?

              當初不是承諾這次修改肯定不會(huì )影響以前的功能么?

              怎么不早說(shuō)要支持Chrome瀏覽器,現在哪還有時(shí)間測試啊?

              怎么能讓現場(chǎng)出現這種低級的Bug,打補丁后為什么不仔細回歸一遍?

              爭執越演越烈,最終有團隊成員爆發(fā)了:“這簡(jiǎn)直不是人干的活!”。

              您怎么看待這句話(huà)呢?

              其實(shí)話(huà)糙理不糙,用更理性的語(yǔ)言翻譯一下就是“有些工作不應該以人工的方式來(lái)完成”,比如:

              大量機械的、重復性的回歸測試;

              結果的正確性不依賴(lài)主觀(guān)判斷的測試;

              需要模擬大量數據、大量并發(fā)量的測試;

              需要不間斷執行的測試(比如7*24小時(shí)持續執行);

              需要短時(shí)間內完成的大量測試用例執行(比如完整的功能回歸測試);

              通過(guò)自動(dòng)化測試可以極大的提升回歸測試、穩定性測試以及兼容性測試的工作效率,在保障產(chǎn)品質(zhì)量和持續構建等方面起到舉足輕重的作用。特別是在敏捷開(kāi)發(fā)模式下,自動(dòng)化測試是必不可少的。

              目前業(yè)界的商業(yè)/開(kāi)源自動(dòng)化測試工具有很多,比如,功能測試工具有QTP、Selenium等,性能測試有LoadRunner、JMeter等。其工作原理無(wú)非都是通過(guò)“測試腳本”和“測試數據”來(lái)完成“測試過(guò)程”,并比較“測試結果”,進(jìn)而形成“測試報告”。

              本文不對這些測試工具的差異或優(yōu)劣進(jìn)行對比,只以作者目前采用的Selenium為例進(jìn)行分析:敏捷開(kāi)發(fā)模式需要自動(dòng)化測試,但自動(dòng)化測試本身的敏捷性又如何呢?

              Selenium是針對Web應用的開(kāi)源自動(dòng)化測試工具,通過(guò)編寫(xiě)模擬用戶(hù)操作的腳本,它會(huì )打開(kāi)瀏覽器對Web應用進(jìn)行黑盒測試??梢苑奖愕挠糜诠δ軠y試、兼容性測試、 穩定性測試及并發(fā)測試。目前已被主流瀏覽器廠(chǎng)商廣泛支持,同時(shí)也是很多其它自動(dòng)化測試工具(比如,RobotFramework)的底層核心技術(shù)。Selenium由IDE、Remote Control(簡(jiǎn)稱(chēng)RC)、WebDriver、Grid四個(gè)工程組成:

              Selenium IDE

              是一個(gè)用于錄制/回放測試腳本的Firefox附加組件,錄制的腳本可以生成基于Selenium RC的測試代碼(Java、Ruby、C#等)。適用于快速入門(mén),不太適用于實(shí)際較大的測試項目;

              Selenium RC

              RC由Server和Client組成兩部分組成,Server負責加載/關(guān)閉瀏覽器以及作為HTTP代理來(lái)訪(fǎng)問(wèn)Web應用,Clinet支持多種編程語(yǔ)言和測試框架(TestNG、JUnit、NUnit等)。

              Selenium WebDriver

              WebDriver作為Selenium2的核心特性提供比RC更簡(jiǎn)潔易用的API,是官方推薦的RC替代方案??梢愿玫闹С謩?dòng)態(tài)網(wǎng)頁(yè),不需要再額外啟動(dòng)一個(gè)獨立的Server。

              Selenium Grid

              是Selenium的一個(gè)擴展工具,可以很方便地同時(shí)在多臺機器上和異構環(huán)境中并行運行多個(gè)RC或WebDriver用例。

              Selenium RC是通過(guò)在瀏覽器加載時(shí)“注入”JS函數來(lái)操縱后續的瀏覽器行為,Selenium WebDriver則通過(guò)直接調用各個(gè)瀏覽器內置的本地事件來(lái)達到這一目的。WebDriver目前已經(jīng)作為W3C規范草案,提交由Google、Mozilla等瀏覽器廠(chǎng)商討論。

            原文轉自:http://www.uml.org.cn/Test/201301282.asp

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>