Upload
chris-jeng
View
55
Download
1
Embed Size (px)
Citation preview
@Test 被註釋的類別或方法會在測試時被執行alwaysRun 如果設定為 true 就算他依賴的方法失敗,也會被執行dataProvider 這個測試方法的 data provider 的名稱dependsOnGroups 這個測試方法依賴的群組dependsOnMethods 這個測試方法依賴的方法priority 這個方法的優先性,愈低愈先被執行千年一遇 : TestNG 筆記 (1)Annotations 說明 - http://goo.gl/iFjkZl
JMockitFeatures
mocking API with expressive recording & verification syntax small but powerful faking API for replacing implementations scenario-based testing for Java EE and Spring-based apps code coverage tool with line and path metrics
AssertjFluent assertions for java
這個 library 可以讓我們斷言,從原本的assertEquals(expected, actual);
轉換成assertThat(actual).isEqualTo(expected);
這樣是不是可讀性更高了呢 ?
AssertJ 1.x requires Java 6 or higher (suitable for Android)
why MVP?分層 分職責抽象化依賴注入 多型 => 替換 !!!
符合物件導向原則 ?
SRP 單一職責原則OCP 開放封閉原則LSP Liskov 替換原則ISP 介面隔離原則DIP 依賴反向原則LKP 最少知識原則
AppiumAndroid SUPPORT
Versions: 2.3 and up
Versions 4.2 and up
iOS SUPPORT
Versions: 7.1, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1 and 9.2
Both SUPPORT
Mobile web & Hybrid
Page Factory Pattern
@AndroidFindBy(id = "detail_name")@iOSFindBy(xpath = "//UIAApplication[1]/UIAWindow[1]/UIAStaticText[1]") public MobileElement contactName;
https://github.com/ULei/Appium-cross-platform-example/blob/master/AppiumExample/src/test/java/PageObjects/ContactDetailPageBoth.java
Page Object Pattern將行為抽象為較高的層面,比較容易理解舉例來說登入,我需要找出帳號 / 密碼的欄位,輸入帳號 / 密碼,按下登入的程式實作,但我們可以將實作封裝成 login(account, password) ,不用在意更詳細的細節,用這樣的方式隱藏細節。
上層封裝,細節改變不影響上層,減少 UI 改變或實作改變的影響,測試腳本不變 !
https://github.com/ULei/Appium-cross-platform-example/blob/master/AppiumExample/src/test/java/Test/Test_ContactSearch.java
Page Object Pattern舉左圖例子來說登入頁 => LoginPage
動作返回 => LoginPage.back()
點選登入說明 => LoginPage.explanation()
登入 => LoginPage.login(String account, String password)
Behaviour-Driven Development(BDD)Acceptance Test Driven Development (ATDD)
作者表示Jbehava
BDD 是第二代的、由外及內的、基於拉 (Pull) 的、多方利益相關者的(Stakeholder)、多種可擴展的、高自動化的敏捷方法。它描述了一個交互循環,可以具有帶有良好定義的輸出(即工作中交付的結果):已測試過的軟件。Cucumber
BDD 的實踐者們通過溝通交流,具體的示例和自動化測試幫助他們更好地探索,發現,定義並驅動出人們真正想用的軟件
自動化測試不是萬靈丹 (銀彈 ) 要理解系統的本質 手動 =>系統化 => 自動化
夢想幻想 測試是甚麼 ? 能吃嗎 ? 喔喔~ 導入自動化測試找個自動化測試工程師就能解決我所有問題現實 連軟體工程和測試的觀念與方法都沒有,自動化測試不是仙丹,不能讓你跳過這些,而且它也不能解決所有問題該不該 ? 要不要 ?
你願意為軟體品質付出多少代價 ?
自學資源Appium
AWS Device Farm Appium tests - https://goo.gl/DhQj8D
AWS Device Farm sample Android app - https://goo.gl/wRhzVM
ULei/Appium-cross-platform-example - https://goo.gl/lUzz85
Unit Test
挑戰測試 101 - Quip - https://goo.gl/yKDwFS
自學資源MVP
"Standard Android", MVP and MVVM. - https://goo.gl/C0lF3V
A collection of samples to discuss and showcase different architectural tools and patterns for Android apps. - https://goo.gl/FwXr81
BDD
千年一遇 : BDD JBehave教學 (1) 使用心得 - http://goo.gl/M0S4qn
醒醒吧少年,只用 Cucumber 不能幫助你 BDD – TW洞見 - http://goo.gl/uDgO2v