2>開發在寫api請求相關**的時候沒有做資料容錯,測試在人工測試的時候都是正常的資料,所以測試通過。上線了之後,後台配置資料的時候出了點小問題,導致大面積崩潰,crash
自動化測試:
自動化測試就是寫一些測試**,用**代替人工去完成模組和業務的測試。(自動編譯**
自動化測試有很多優點:
測試速度快,避免重複性的工作。
避免regression(回歸),讓開發更有信心去修改和重構**
有了自動化測試,持續整合(ci)會變得更可可靠
迫使開發人員寫出更高質量的**。(自動化測試不通過,**不允許合併)
自動化測試也有一些缺點:
開發和維護成本高;
不能完全替代人工測試;
無法完全保證測試的準確性 - 讓**去判斷一段邏輯是否正確很容易,但是,讓**判斷乙個控制項顯示是否正確卻沒那麼容易。
/*ui測試:ui測試是模擬使用者操作,進而從業務處層面測試。在做自動化測試之前,首先要問自己幾個問題?
這個測試業務的變動是否頻繁?
這個測試業務是否屬於核心功能?
編寫測試**的成本有多少?
自動化測試能保證測試結果的準確麼?
*/
關於ui測試,有幾個核心類需要掌握
xcuielement
xcuielementqueryui測試還有乙個核心功能是ui recording。
選中乙個ui測試用例,然後點選圖中的小紅點既可以開始ui recoding。你會發現
隨著點選模擬器,自動合成了測試**。(通常自動合成**後,還需要手動的去調整)
點選小紅點即可自動編譯-生成**。
在寫ui測試用例的時候要注意:測試行為而不是測試**.
對應測試**如下:
- (void)setup
- (void
)teardown
- (void執行效果如下圖所示:)testlogin
補充:列舉一些常用的斷言:
xctfail(format…) 生成乙個失敗的測試;xctassertnil(a1, format...)為空判斷,a1為空時通過,反之不通過;
xctassertnotnil(a1, format…)不為空判斷,a1不為空時通過,反之不通過;
xctassert(expression, format...)當expression求值為true時通過;
xctasserttrue(expression, format...)當expression求值為true時通過;
xctassertfalse(expression, format...)當expression求值為false時通過;
xctassertequalobjects(a1, a2, format...)判斷相等,
[a1 isequal:a2
]值為true時通過,其中乙個不為空時,不通過;
xctassertnotequalobjects(a1, a2, format...)判斷不等,
[a1 isequal:a2
]值為false時通過,
xctassertequal(a1, a2, format...)判斷相等(當a1和a2是 c語言標量、結構體或聯合體時使用,實際測試發現nsstring也可以);
xctassertnotequal(a1, a2, format...)判斷不等(當a1和a2是 c語言標量、結構體或聯合體時使用);
xctassertequalwithaccuracy(a1, a2, accuracy, format...)判斷相等,(double或float型別)提供乙個誤差範圍,當在誤差範圍(
+/-accuracy)以內相等時通過測試;
xctassertnotequalwithaccuracy(a1, a2, accuracy, format...) 判斷不等,(double或float型別)提供乙個誤差範圍,當在誤差範圍以內不等時通過測試;
xctassertthrows(expression, format...)異常測試,當expression發生異常時通過;反之不通過;(很**)
xctassertthrowsspecific(expression, specificexception, format...) 異常測試,當expression發生specificexception異常時通過;反之發生其他異常或不發生異常均不通過;
xctassertthrowsspecificnamed(expression, specificexception, exception_name, format...)異常測試,當expression發生具體異常、具體異常名稱的異常時通過測試,反之不通過;
xctassertnothrow(expression, format…)異常測試,當expression沒有發生異常時通過測試;
xctassertnothrowspecific(expression, specificexception, format...)異常測試,當expression沒有發生具體異常、具體異常名稱的異常時通過測試,反之不通過;
xctassertnothrowspecificnamed(expression, specificexception, exception_name, format...)異常測試,當expression沒有發生具體異常、具體異常名稱的異常時通過測試,反之不通過
單元測試框架進行自動化測試
到底單元測試是做什麼用的?單元測試是一種測試,它不是 的一部分 單元測試是最低層級的測試,它只保證函式的可靠性,不保證其它 單元測試應該能保證每乙個函式的可靠性。單元測試是一種測試,所以,我們應該以一種測試的眼光去面對它 我們要測試正常情況,邊界條件,要對它的測試目標 函式做黑盒分析,白盒分析,選擇...
selenium自動化 單元測試框架
單元測試框架 在自動化中,單元測試框架是管理測試用例的,控制測試用例的執行順序和次數 unittest 前置條件 setup 一般是開啟瀏覽器操作 後置條件 teardown 一般是關閉瀏覽器 原始碼 coding utf 8 from selenium import webdriver impor...
安卓自動化單元測試 登入模組測試
參考資料 android自動化測試 從入門到入門 構建之法上說單元測試要整合到自動化框架中,要和產品 一起儲存和維護,不是很明白自動化框架是什麼。android 還需要在build.gradle中增加instrumentation testing所需要的依賴 dependencies android...