自動(dòng)化測試的一點(diǎn)看法 軟件測試
現狀:自動(dòng)化的推廣困難;自動(dòng)化模式不成熟,測試人員編寫(xiě)的腳本效率低下、移植性差。腳本代碼量大不易于維護;如果開(kāi)發(fā)和測試的過(guò)程中頁(yè)面或者某個(gè)應用發(fā)生變化,原先寫(xiě)的自動(dòng)化腳本不符合新的情況,于是測試再對同一個(gè)功能點(diǎn)重新編寫(xiě)腳本。
實(shí)際情況是“好的測試人員并不一定是好的程序員”。如果產(chǎn)出的代碼維護時(shí)間>手工測試時(shí)間,就失去它的意義。以前,是在回歸的時(shí)候寫(xiě)自動(dòng)化腳本,回歸結果的特點(diǎn)是bug數量特別少、遇到的bug基本上是前些輪測試曾經(jīng)發(fā)現過(guò)的、bug的修復比較緊急。這個(gè)時(shí)候編寫(xiě)自動(dòng)化腳本,重用性和重要性都沒(méi)有早期編寫(xiě)來(lái)的明顯。而項目上線(xiàn)后,就不再進(jìn)行自動(dòng)化測試了,除非有一期二期或者其他情況。這樣,自動(dòng)化的長(cháng)期價(jià)值體現不出來(lái)。
自動(dòng)化測試的特點(diǎn)應該是前期投入多,后期收入大。根據現狀,測試輪數多、重復測試多、一個(gè)TC需要海量數據,前期編寫(xiě)的腳本在中期就能為我們節省時(shí)間。項目前期,測試人員要了解需求、理解UC、編寫(xiě)測試用例,時(shí)間很少,這個(gè)時(shí)候是進(jìn)行測試數據準備,最重要的是TC,并非自動(dòng)化。
經(jīng)驗豐富的測試工程師對bug有著(zhù)敏銳的嗅覺(jué),TC的質(zhì)量至關(guān)重要;如果開(kāi)發(fā)的模式是瀑布模式并非迭代式的,隨著(zhù)項目開(kāi)發(fā)的進(jìn)行,我們測試需要不斷完善自己的腳本。問(wèn)題是,測試的時(shí)候要編寫(xiě)自己不擅長(cháng)的腳本程序,自動(dòng)化未必就趕得上手工測試,測試工程師沒(méi)有看到實(shí)際的好處,抵觸就很大。所以現在將人員分層,一層是傳統手工測試,另一層支持自動(dòng)化,來(lái)解決這個(gè)矛盾。
現在的自動(dòng)化測試模式還不成熟。理想太大,短期內就不容易實(shí)現。如果選擇一個(gè)主線(xiàn)作為試驗田,投入相當人力和測試人員重視,吸取過(guò)程中的經(jīng)驗教訓,分享其中的好處。當人人都看到通過(guò)自動(dòng)化,不用手工測試到一半才發(fā)現環(huán)境換了,bug的檢測方便了,測試們不再加班了,肯定有更多的人加入。
下面我們了解一下什么是自動(dòng)化軟件測試
自動(dòng)化軟件測試的定義包括了所有測試階段,它是跨平臺兼容的,并且是進(jìn)程無(wú)關(guān)的。一般來(lái)講,當前作為手動(dòng)測試程序部分的各種測試(如功能、性能、并發(fā)、壓力等測試)都可以自動(dòng)化。大家經(jīng)常問(wèn)這個(gè)問(wèn)題:“手動(dòng)測試和自動(dòng)化測試有什么不同呢?”答案如下:
自動(dòng)化測試可以完成手動(dòng)測試難以完成的工作,可以提高手動(dòng)測試的工作效率。
自動(dòng)化測試也是軟件開(kāi)發(fā)。
自動(dòng)化測試不是要取代手動(dòng)測試人員所需要的分析技能、測試策略知識和對測試技術(shù)的理解。手動(dòng)測試人員的經(jīng)驗會(huì )作為AST的藍圖。
自動(dòng)化測試不可能完全和手動(dòng)測試分開(kāi)。相反,自動(dòng)化測試和手動(dòng)測試是相輔相成的。
盡管開(kāi)發(fā)軟件將今天已有的手動(dòng)軟件測試全部轉換成自動(dòng)化測試是有可能的,然而我們的經(jīng)驗表明,為了適應自動(dòng)化,大多數手動(dòng)測試都必須經(jīng)過(guò)修改。手動(dòng)測試技術(shù)、實(shí)踐和知識與AST是相互交織的,所以也會(huì )在本書(shū)中對其進(jìn)行討論,以對AST技術(shù)提供支持。而自動(dòng)化是否可以產(chǎn)生合理的ROI(Return On Investment,投資回報率)是另外一個(gè)問(wèn)題,這需要通過(guò)評估。經(jīng)驗表明,即使可以將所有測試自動(dòng)化,但并不是所有測試都值得自動(dòng)化。當決定是否要自動(dòng)化時(shí),我們需要考慮各種準則。如何確定哪些測試應該自動(dòng)化會(huì )在第6章進(jìn)一步探討。要將ROI銘記在心,我們對AST的高層次定義是:
以改進(jìn)軟件測試生命周期(Software testing lifecycle,STL)的效率和有效性為目標,貫穿整個(gè)STL的應用程序和軟件技術(shù)的實(shí)施。
AST是指跨越整個(gè)STL中的自動(dòng)化工作,以及關(guān)注自動(dòng)化集成測試和系統測試的工作。AST的總體目標是設計、開(kāi)發(fā)和交付自動(dòng)化測試,并通過(guò)重復測試來(lái)提高測試效率。若成功實(shí)施,那么它可以大幅度減少針對軟件密集型系統的傳統測試和評估方法、過(guò)程相關(guān)的成本、時(shí)間和資源。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/