软件测试人员需要了解关于自动化的什么(译)
即使你正在使用人工測試,了解關(guān)于自動化測試進(jìn)展如何仍然是重要的。不管你的角色是什么,你的每日工作仍然可能通過使用這篇文章中的至少一些方法被加強(qiáng)。這里,學(xué)習(xí)一些普通術(shù)語的含義和一些他們可能如何別應(yīng)用在軟件開發(fā)工廠。
近日來我推特了關(guān)于軟件測試者需要了解自動化世界正在發(fā)生了什么。它得到了一個漂亮的溫暖的回復(fù),所以我想我應(yīng)該要透露我的想法。
這些天來不管你在測試?yán)锏慕巧鞘裁?#xff0c;你的每日工作將可能通過以下方法的至少其中一些被強(qiáng)化。從最低程度我建議了解這些術(shù)語的含義和他們可能被應(yīng)用在軟件開發(fā)工廠的一個例子。
持續(xù)的集成服務(wù)
過去十年來在軟件開發(fā)領(lǐng)域到來的自動化一個最大的變化是任務(wù)自動化。在過去,像構(gòu)建一個應(yīng)用的特殊版本,創(chuàng)建文檔,或者更新bug報告的狀態(tài)是人為的。一些團(tuán)隊甚至貢獻(xiàn)為了 啟動一個版本而負(fù)責(zé)的“創(chuàng)建人”責(zé)任。像這些人為的任務(wù)(或者是緊緊地綁定給個人或機(jī)器)是消耗時間的,并且創(chuàng)建來為了避免瓶頸,比如創(chuàng)建人占據(jù)私人的一天并阻礙新版本被完成。
幸運的是,持續(xù)集成(CI)工具通過允許任務(wù)被標(biāo)準(zhǔn)化和自動化來挽救。持續(xù)集成服務(wù)重要地安排和執(zhí)行任務(wù),一個規(guī)則的臺式電腦能做的任務(wù)并且讓這些任務(wù)在目標(biāo)機(jī)器上執(zhí)行而不是它自己。回到創(chuàng)建版本的例子,取代讓鮑勃為手工在他的機(jī)器上創(chuàng)建版本負(fù)責(zé),一個持續(xù)集成服務(wù)能被集成去選擇一個目標(biāo)機(jī)器并且在那臺機(jī)器上執(zhí)行版本。不僅使鮑勃不需要身體上在那臺版本機(jī)器出現(xiàn),而且能在任意時刻發(fā)生版本創(chuàng)建,不管是已安排的或者是為了響應(yīng)另一個動作。
舉個例子,測試者愛麗絲可能想要一個基于最新改變的應(yīng)用程序版本去看一個程序錯誤是否被修復(fù),而且她能自己發(fā)起版本創(chuàng)建。這個不僅使資源從做代表性任務(wù)中自由運作起來,而且給團(tuán)隊在個人以外和團(tuán)隊流程上給予了更多的控制。你也可以把持續(xù)集成任務(wù)綁定一起給更深的線程一些任務(wù)。學(xué)習(xí)一個持續(xù)集成如何工作是對沒有放很多編程的重點在自動化上很好的引子。
使用持續(xù)集成的一個途徑是跑端到端的測試套裝。這些測試經(jīng)常需要跑數(shù)分鐘甚至數(shù)小時。我使用過持續(xù)集成去自旋向上和自旋向下測試機(jī)器并且發(fā)起在那些測試機(jī)器上的測試。相對于在你自己機(jī)器上跑這些測試這是一個很大的幫助,因為它允許一個測試開發(fā)者當(dāng)測試到處跑的時候去做其他的工作。持續(xù)集成的服務(wù)器控制著所有這些任務(wù)的方方面面。
一些持續(xù)集成服務(wù)的普通例子是開源工具Jenkins,基于云的Travis CI,和專屬工具Bamboo,但是這些也是其他的一些。甚至更低技術(shù)是使用一個像克隆或者windows任務(wù)分配者的工具為了在單一機(jī)器上去使任務(wù)自動化。
CI對于開發(fā)軟件愛好之外的編程是獨立的,并且它是一個測試能確實增加價值的一個地方。
現(xiàn)代源碼控制
我首先需要指出我愛源碼。當(dāng)編寫代碼(或者博客!)時,它是一個很有幫助而不僅是工具。對于一個編碼的測試員,它是一個無需腦力者。甚至即使一個測試不編碼,當(dāng)測試軟件時以現(xiàn)代方法使用源碼控制可能是一個大的利益。
在現(xiàn)代我的意思是什么?我的意思是使用源碼控制1)集成其他工具,比如CI服務(wù)器或者問題追蹤器,并且2)允許使用好的團(tuán)隊流程習(xí)慣,比如基于干線的開發(fā)。好的源碼控制允許個人去分析變化和更深地挖掘軟件工程正在發(fā)生什么。
一個接近源碼歷史和一些基本培訓(xùn)的測試能問出像“在應(yīng)用里的哪個文件有最多的開發(fā)在它們上面工作?”“哪個文件有最大的變化?”“哪個變化的設(shè)置包含引起問題的代碼?”等待。這個信息有助于找到步調(diào)且暗示一些事件的引發(fā)。
用CI集成源代碼甚至能更加有力。在問題跟蹤者的事件能使它們的狀態(tài)在由開發(fā)引起的變化中更新。測試者能要求必要的需求在輸入的代碼被自動查找出來,比如通過自動測試或者代碼模式需求。建構(gòu)和部署能被改代碼發(fā)起。當(dāng)源碼控制被很好使用,在這種情況下有很多種可能,這是一個在持續(xù)傳遞后隱含的概念。
舉個例子,我在一個使用基于云集成服務(wù)的開源項目上工作為了檢查每一個由提交者提交的交付。在這個項目里,持續(xù)集成運行所有的自動化測試并且檢查所有為形式和格式增加的代碼。假如一個提交造成錯誤的測試,或者沒有滿足設(shè)置的風(fēng)格向?qū)?#xff0c;提交失敗了并且暗示了提交者和項目維持者去修改提交。這有助于提供項目歷史里以統(tǒng)一的風(fēng)格每一個提交并且暗示了提交者在增加或者更新模塊中可能的微小錯誤。
這些目前在源碼控制的熱點是Git,自由和開放代碼的,在它周邊有著健壯的生態(tài)系統(tǒng)。這些也是一些其他的方面,比如Subversion,Mercurial和微軟團(tuán)隊基金會。
遙測和監(jiān)控
這是一個我并不熟悉的主題,但是它確定是測試者們感興趣的。監(jiān)控是一種方法,從此掛鉤被放在一個應(yīng)用程序里去發(fā)回關(guān)于軟件是如何被使用的信息給軟件創(chuàng)造者。這能包含正被使用的后端/服務(wù)器應(yīng)用程序接口函數(shù),并且在哪個指令,由被使用的由用戶界面組成的部分和在什么頻率上,等等。
這個目標(biāo)不是為了發(fā)送特殊的用戶信息返回給開發(fā)團(tuán)隊,更普通的信息是關(guān)于一個應(yīng)用程序正在被用著的和如何被用的部分。這提供了終端用戶在做什么的視角,他們實際上如何使用應(yīng)用程序,并且特定屬性如何被得到。安蘭培是個微軟測試,曾經(jīng)簡短討論這酷斃事情的他曾做過的通過遙測和監(jiān)視的一部分。
類似于最小化資源控制歷史,監(jiān)視能幫助你找出答案,從簡單的問題中(”上周多少人記錄?”)到更特殊的和可視化的問題(“當(dāng)特性X被發(fā)布時用戶們?nèi)绾胃淖兯麄兊牧?xí)慣?”)。這些是幫助測試們執(zhí)行更好的測試策略的種類問題,并且,總的說來,幫助團(tuán)隊對用戶做更好的選擇。
更多的信息,請檢查AB測試播客頁面和布倫特詹森。一個主流產(chǎn)品如何使用遙測技術(shù),看一看Mozillla如何通過火狐使用監(jiān)測技術(shù)。
也使用Selenium
最后但是當(dāng)然不是最少,Selenium WebDriver是一個任一工作在網(wǎng)頁應(yīng)用的測試需要相當(dāng)熟悉的工具。在這一點上,WebDriver是一個用于自動驅(qū)動瀏覽器行為的標(biāo)準(zhǔn)工具,類似于一個人類用戶如何在瀏覽器中用網(wǎng)站app交互。它有一些語言綁定,和一些主流瀏覽器工作,并且是一款非常好的能被開發(fā)第一組件的可擴(kuò)展性API的例子。簡言之,它是一個優(yōu)秀的工作。
當(dāng)被靈活地使用時,WebDriver允許測試和開發(fā)去使用戶體驗性測試得到自動化,這個可以被放在一個持續(xù)性的可傳遞流程。我寫了一個簡單的基于網(wǎng)頁驅(qū)動的測試,可以找到像導(dǎo)航到登錄頁面的鏈接的事務(wù),而不是尋找用戶名和密碼場合(由于壞的部署),或者尋找一個不打開的對話當(dāng)一個控制被點擊成想象的(一個明顯的但嚴(yán)重的問題)。這些是很快被找到的事情但是不能被單元測試覆蓋。
WebDriver也能被用在寫自動化的測試,可以被本地執(zhí)行去雙重檢查那些不會以非預(yù)約的方式打斷重要特性的變化。這些甚至是WebDriver用于擴(kuò)展功能測試以外的用處。
對于對學(xué)習(xí)代碼感興趣的測試來說,WebDriver能提供一個好的學(xué)習(xí)代碼的介紹。自動化測試腳本能是一個容易的方法去熟悉編程而不是深入挖掘代碼語言鴻溝。它提供足夠的架構(gòu)去開始并且仍然使得好的測試工作被完成。
大腦有這些概念,加強(qiáng)測試自動化,不敢你在軟件開發(fā)中的角色是什么。
轉(zhuǎn)載于:https://www.cnblogs.com/fengye151/p/11519233.html
總結(jié)
以上是生活随笔為你收集整理的软件测试人员需要了解关于自动化的什么(译)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动设备的配置测试(译)
- 下一篇: 并发编程之秒杀