自动化测试缺点
- 开发和维护成本高。
- 不能完全替代人工测试。
- 无法完全保证测试的准确性 - 让代码去判断一段逻辑是否正确很容易,但是,让代码判断一- - 个控件显示是否正确却没那么容易。
在做自动化测试之前,首先要明白几个问题
- 这个测试业务的变动是否频繁?
- 这个测试业务是否属于核心功能?
- 编写测试代码的成本有多少?
- 自动化测试能保证测试结果的准确么?
测试种类
- 白盒测试
测试人员可以直接接触源代码, 进行单元测试, 设定输入值, 分析输出值, 得出测试结论, 测试代码, 一般有iOS开发编写.
- 黑盒测试
测试人员不接触源代码, 直接看, 数据逻辑以及UI的布局是否正确, 得出测试结论, 一般有iOS测试人员去执行.
框架选择 (xode 第三方库)
- 测试代码编写的成本
- 是否可调式
- 框架的稳定性
- 测试报告(截图,代码覆盖率,…)
- WebView的支持(很多App都用到了H5)
- 自定义控件的测试
- 是否需要源代码
- 能否需要连着电脑
- 是否支持CI(持续集成)
XCTest
- 单元测试
- 性能测试
- 异步测试
- UI测试
关于UI测试,有几个核心类需要掌握
-
XCUIApplication 测试应用的代理
-
XCUIElement 一个UI上可见的视图对象
-
XCUIElementQuery 查找XCUIElement
UI测试还有一个核心功能是UI Recording。选中一个UI测试用例,然后点击图中的小红点既可以开始UI Recoding。你会发现:
随着点击模拟器,自动合成了测试代码。(通常自动合成代码后,还需要手动的去调整)
通常,在视图切换的时候有转场动画,我们需要等待动画结束,然后才能继续,否则query的时候很可能找不到我们想要的控件。
另外,UI测试还会在每一步操作的时候截图,方便对测试报告进行验证。
可以在XCode的report navigator中查看测试结果。
- Tests 用来查看详细的测试过程
- Coverage 用来查看代码覆盖率
- Logs 用来查看测试的日志
Stub/Mock
- mock 表示一个模拟对象
- stub 追踪方法的调用,在方法调用的时候返回指定的值
网友评论