版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
在手機應用項目中建立符合持續(xù)交付的高標準自動化測試許均揚johnhsu@?Thecontentinthisslidesonlyrepresentstheviewoftheauthor,notIBM.?Therecommendedtechnicalsolutionspresentedinthisslidesarenotguaranteed,andtheauthororIBMtakesnoresponsibilityunderany/continuous-delivery顧客反饋商業(yè)決策:何時交付持續(xù)整合建置ProvisionEnvironment顧客反饋商業(yè)決策:何時交付持續(xù)整合建置ProvisionEnvironmentPProvisioEnvironment境發(fā)布至staging環(huán)境ProvisionEnvironmentProvisionEnvironmentProvisionEnvironment版本版本控制部部署至production環(huán)境ProProvisionEnvironment續(xù)測試(自動化)重點是隨時保重點是隨時保持在能交付的狀態(tài)?傳統(tǒng)自動化:?一天跑一次,甚至兩三天才跑一次?失敗了沒關系?通常不太在意代碼質量跟架構,甚至有不少的團隊使用錄制工具建立測試?不太在意測試覆蓋率,低于30%是非常常見的狀況?跑很久無所謂,因為一天才跑一次?持續(xù)交付自動化?一天跑十次甚至幾十次?不允許非bug造成的失敗?需要高覆蓋率,80%以上是基本要求?需要以對待產(chǎn)品代碼級別的標準來要求代碼質量與架構?需要在短時間內結束?真的失敗需要在短時間內快速找出問題點戰(zhàn)?夠快?非常穩(wěn)定?失敗時能快速精準找出問題?Build+UnitTest不能超過15分鐘,最好在十分鐘?AcceptanceTest最好在30分鐘以內,最多不超過60~90分鐘?1%失敗率很穩(wěn)定嗎??假設每一個testcase有1%概率由非bug問題造成失敗?100個testcase的testsuite跑一次完全沒失敗的概率是0.99^100=36%?1000個testcase呢?幾乎每次都至少會有一個testcase失敗?持續(xù)交付要求的穩(wěn)定是”完全不會因為非bug問題失敗”?事實上很難做到?但至少每一個testcase非bug造成失敗率不能大于百萬分之一?每次跑的間隔平均是8*60/10=48分鐘之前找出問題?或是一旦失敗就鎖死sourcecontrol不讓codecheckin,直到問題解決或是rollback?無論采取哪一種方法,找出問題都是分秒必爭?夠快?非常穩(wěn)定?失敗時能快速精準找出問題光是做到一項就是很大挑戰(zhàn),何況是?挑戰(zhàn)顯然是巨大的,因此解決方法也不可能只采用單一手段?戰(zhàn)略面跟戰(zhàn)術面都必須要有各種方法,多管齊下?戰(zhàn)略面一開始就錯了,戰(zhàn)術面再怎么強還是全盤?組織,流程與文化?開發(fā)團隊寫自動化測試?很多公司直接要求現(xiàn)有的手動測試團隊負責開發(fā)自動化測試高?測試團隊負責手動測試,測試案例review與工具平臺開發(fā)維護?以對待production代碼的態(tài)度對待自動化測試代碼?流程上必須要確保pipeline紀律的嚴格執(zhí)行?就算有全世界最好的自動化測試,沒人看沒人用的話也只是廢物?測試失敗必須立刻解決<非常重要?文化?持續(xù)改進的文化?維持持續(xù)交付pipeline的決心?ProjectManager與其他主管最常問的問題:我們自動化測試有哪些,覆蓋的哪些scenarios??請他們去看代碼?行不通?解決方案:Automationasdocument?年年都有新的測試工具,因此要時時更新知識?測試工具最好要能?自動處理UI的延遲,讓測試代碼中不需要寫sleep?簡單易懂?夠穩(wěn)定?夠快?官方支持優(yōu)先,其次才考慮開源第三方軟件方軟件可以功成身?非到萬不得已,絕對不寫sleep?Sleep是不穩(wěn)定測試的最大來源?Callback->PeriodicPoll->Sleep?每個TestCase必須能獨立執(zhí)行,不依賴其他TestCase幫它設定環(huán)境,也不影響其它TestCase?避免過度復雜的測試代碼?雖然說要用產(chǎn)品代碼級別要求代碼質量,但還是稍有不同,如何拿捏很重要?使用viewid或是accessibilitylabel/id定位view?字符串會變?坐標更容易變?ProposedbyMartinFowler?PicturefromRogerAlmeida’sblog:http://roger-almeida.blogspot.tw/2012/01/object-pattern-webdriver-spring.html?UnitTest只應該測試單一method?不連網(wǎng)?不連數(shù)據(jù)庫?不調用任何硬件功能如GPS,震動等等?Mock第三方軟件或是OSAPI的調用?Acceptancetest應該只測試單一component?不是integrationtest?Client或是Server,而不是endtoend?Mockclient或mockserver?或是把client跟server放在同一臺機器上?怎么處理這問題??If(waitfor(menuexists)){click(“ViewResults”);}?這樣做對嗎??我們是不是忘了一件事??takeSurvey(StringsurveyName,booleanmenuWillPopup){If(menuWillPopup){click(“ViewResults”);}}I?假設以下測試案例,測試目標為一cloud同步服務?上傳一文檔->編輯文檔描述->將文檔與另一人共享->上傳同一文檔的更新->刪除文檔?測試案例2?上傳一文檔->在文檔上留言->將文檔公開給所有人?同樣的動作,只需要在UI測試一次就夠了?第二個以后的測試案例,測試過的步驟都透過API執(zhí)行?假設以下測試步驟,目的為測試購物網(wǎng)站是否能正確使用信用卡付款?登入在線購物網(wǎng)站->尋找商品->找到商品,確認數(shù)量,?同樣的購物網(wǎng)站可能有數(shù)百個測試案例,前面幾步都完全一樣?手動測試沒有別的方法準備測試數(shù)據(jù)?但自動化測試中,我們有別的選擇de?測試工具也是人寫的軟件,也會有bug?等測試工具沒問題才開始自動化測試?那永遠都不會開始?手機上常見的測試工具bug?點不準?點了沒作用?動畫導致時間差?長按變短按,短按變長按?滑動失敗?解決方法?重試?還原后重試?關掉動畫?Espresso的重試?自己寫的重試?或是直接將這些代碼包裝成一個genericmethod?測試失敗時只有幾分鐘時間找出問題?報告應該要有?BDD中每一步的描述?每一步之下細項動作的記錄?更細的UIlifecycle記錄,如Espresso中的activitylifecycle如果是UI測試:失敗測試的屏幕截圖,最好有完整的videoreplay?報告要能分component列表,讓人一眼就看出失敗出在哪個component?常見的反應?測試能跑就好,為什么要我寫一堆Log??為什么還要規(guī)定Log的規(guī)范,會不會太麻煩??跟所有Agilepractice一樣,持續(xù)交付的自動化測試永遠可以有改進空間?如同對待production代碼一樣的對待自動化測試代碼,持續(xù)改進它,才是最重要的?只有使用技術跟工具,而沒有將持續(xù)改進的文化深植到團隊中,只能事倍功半??CopyrightIBMCorporation2016.Allrightsreserved.Theinformationcontainedinthesematerialsisprovidedforinformationalpurposesonly,andisprovidedASISwithoutwarrantyofanykind,expressorimplied.AnystatementofdirectionrepresentsIBM'scurrentintent,issubjecttochangeorwithdrawal,andrepresentonlygoalsandobjectives.IBM,theIBMlogo,andotherIBMproductsandservicesaretrademarksoftheInternationalBusinessMachinesCorporation,intheUnitedStates,othercountriesorboth.Othercompany,product,orservicenamesmaybetrademarksorservicemarksofothers.?StatementofGoodSecurityPractices:ITsystemsecurityinvolvesprotectingsystemsandinformationthroughprevention,detectionandresponsetoimproperaccessfromwithinandoutsideyourenterprise.Improperaccesscanresultininformationbeingaltered,destroyed,misappropriatedormisusedorcanresultindamagetoormisuseofyoursystems,includingforuseinattacksonothers.NoITsystemorproductshouldbeconsideredcompletelysecureandnosingleproduct,serviceorsecuritymeasurecanbecompletelyeffectiveinpreventingimproperuseoraccess.IBMsystems,productsandservicesaredesignedtobepartofalawful,comprehensivesecurityapproach,whichwillnecessarilyinvolveadditionaloperationalpr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年來賓市合山生態(tài)環(huán)境局招聘備考題庫及參考答案詳解1套
- 會議發(fā)言與討論規(guī)范制度
- 2026年石獅市部分公辦學校赴西南大學公開招聘編制內新任教師52人備考題庫附答案詳解
- 2026年黑旋風鋸業(yè)股份有限公司招聘備考題庫及答案詳解參考
- 2026年香山社區(qū)衛(wèi)生服務中心招聘備考題庫及完整答案詳解1套
- 中學學生社團活動經(jīng)費管理監(jiān)督制度
- 2026年石獅市部分公辦學校赴西南大學公開招聘編制內新任教師52人備考題庫及答案詳解參考
- 2026年羅甸縣第二醫(yī)共體逢亭分院面向社會公開招聘編制外衛(wèi)生專業(yè)技術人員備考題庫完整參考答案詳解
- 咸寧市第一高級中學2026年專項校園公開招聘教師30人備考題庫及一套完整答案詳解
- 2026年阿里地區(qū)精神衛(wèi)生福利院招聘生活護理員的備考題庫及答案詳解參考
- 光伏公司倉庫管理制度
- 營銷費用核算管理制度
- 2023-2029年中國檔案縮微產(chǎn)品行業(yè)市場全景評估及投資戰(zhàn)略研究報告
- 遼寧省大連西崗區(qū)2024-2025學年九年級上學期期末質量檢測物理試題(含答案)
- 四川省涼山彝族自治州2024-2025學年八年級上學期期末語文試題
- 原油儲存建設項目可行性研究報告
- 《鈉離子電池產(chǎn)業(yè)發(fā)展白皮書》
- 2025年新高考數(shù)學一輪復習:直線與圓錐曲線的位置關系(八大題型)(講義)(學生版+解析)
- 《跨境電商基礎與實務(第3版慕課版)》全套教學課件
- 遼寧衛(wèi)視小品趙本山小品《相親2》臺詞版
- 畢業(yè)生離校聚會安全應急預案
評論
0/150
提交評論