軟件測試 | 走出自動化測試認知的誤區(qū)
在考古界有這樣一種共識,那就是識別識別一件古畫仿品比較容易,但要肯定一幅畫作是真跡卻很困難。同理,逼著想要界定什么是“好”的自動化測試體系比較困難,但如果僅僅是為讀者指出一些認知上可能存在的“誤區(qū)”,還是容易辦到的。
誤區(qū)一:自動化測試是一種比人工測試更先進的高級測試。
自動化測試只是眾多測試方法中的一種,并不比人工測試更好或者更先進。與人工測試相比,它既有優(yōu)點又有自身的局限性。表1-2是分別適合兩種測試情況的總結(jié)。

誤區(qū)二:測試應(yīng)該追求100%的自動化
切忌追求100%的自動化測試,在可以預(yù)見的將來人工測試讓然非常重要。片面地追求自動化率,不僅無法提高軟件產(chǎn)品的質(zhì)量,還會讓測試人員勞于奔命,帶來更大的軟件質(zhì)量風(fēng)險。針對“圖形用戶接口測試”,筆者推薦最高60%的自動化率,追求超過60%的自動化率,會帶來天文數(shù)字的維護工作量。
誤區(qū)三:自動化測試能夠發(fā)現(xiàn)大量的缺陷,就發(fā)現(xiàn)缺陷而言,它比人工測試更有效率。
根據(jù)筆者的經(jīng)驗,自動化測試只能發(fā)現(xiàn)30%以下的缺陷,而人工測試能夠發(fā)現(xiàn)70%以上的缺陷。就發(fā)現(xiàn)缺陷而言,自動化測試的效率低于人工測試。
誤區(qū)四:應(yīng)該對一次性的軟件項目采取自動化測試。
自動化測試的投入成本,至少要在3~4個發(fā)布版本之后才能收回,因此針對一次性的軟件項目,應(yīng)該避免采取自動化測試。
誤區(qū)五:自動化測試只能通過軟件系統(tǒng)界面進行測試。
自動化測試有多種實現(xiàn)方式,并不一定要通過軟件系統(tǒng)界面進行測試。
誤區(qū)六:自動化測試與測試自動化完全沒有區(qū)別,只是叫法不同而已。
自動化測試與測試自動化有細微的差別,不過即便測試人員將它們混為一談,也沒有太大問題。
自動化測試與測試自動化有細微的差別,不過即便測試人員將它們混為一談,也沒有太大問題。
自動化測試(Automated Test)是指使用測試工具自動地執(zhí)行某項測試任務(wù),概念范圍比較窄。例如使用某個測試工具完成軟件系統(tǒng)的功能測試或者性能測試等測試任務(wù),而測試計劃的設(shè)定、自動化測試案例的設(shè)計、實現(xiàn)、管理還是人工完成的。
測試自動化(Test Automation)是指整個測試過程都是自動完成的,完全無須人工干預(yù),體現(xiàn)了更加理想化的測試思想,但是實現(xiàn)非常困難。它不但要求由測試工具完成測試的具體執(zhí)行,還要求測試案例的設(shè)計和管理也能由機器完成。例如前面提到大基于模型測試。
誤區(qū)七:自動化測試是一次性的工作,自動化測試案例開發(fā)完成后,自動化測試工作就結(jié)束了。
誤區(qū)八:自動化測試只是測試部門的事情,開發(fā)部門完全不用參與。
如果在軟件開發(fā)過程中,完全不考慮軟件系統(tǒng)的可測試性,會導(dǎo)致設(shè)計自動測試案例難度加大,甚至完全無法實現(xiàn)自動化測試。
誤區(qū)九:商業(yè)自動化測試工具更好,一定要選用商業(yè)自動化測試工具。
測試組織應(yīng)該根據(jù)自身的實際情況,靈活選擇自動化測試工具,就自動化的測試工具而言,“不求最好,但求最貴”的心理是不可取的。