02|自动化测试:从0开始为一个特性覆盖自动化测试
示例介绍
- 深入了解
- 翻译
- 解释
- 总结
本文通过一个登录示例,系统地介绍了自动化测试的实践过程,包括小型、中型和大型三种自动化测试的落地实践。在小型测试中,作者演示了单元测试的编写过程,包括设计测试用例和用例代码的结构化。中型测试则使用了Espresso和Robolectric框架对UI和业务逻辑进行测试覆盖。而大型测试则涉及了跨应用和系统UI交互的场景,作者使用了UI Automator完成大型测试。文章还强调了自动化测试的价值,包括提供多样化的编译调试、加强开发代码自测以及提供更安全的代码重构。总的来说,本文为读者提供了全面的自动化测试实践经验,涵盖了测试框架的选择、用例设计和编写,以及测试结果的展示。读者可以通过本文了解自动化测试的基本概念和实际操作,为软件开发中的自动化测试提供了有益的参考和指导。
《大型 Android 系统重构实战》,新⼈⾸单¥59
全部留言(9)
- 最新
- 精选
- peter今天刚看到这个课程,马上购买了,一口气读到了这里,每一课都有问题,集中在这里提问。 老师的课很不错。 Q1:高版本不支持ButterKnife吗? 我用AS3.5创建了一个项目,API版本是32,引用了ButterKnife,结果报错,网上搜索后在build.gradle中指定了用Java8来编译,但还是报错,而且错误原因难以理解。后来把版本降低到28,就可以了。请问,28以上的高版本不支持ButterKnife了吗?(注:第一次加入的是:compileOptions {sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}) Q2:版本管理和分支管理有什么区别? “工程化”部分,有两个子项“版本管理”和“分支管理”,我印象中版本管理包括分支管理啊,现在分为两个部分,有什么区别? Q3:“故事”是笔误吗? 第01课中多次用到“故事”,比如,“故事平均开发周期”等。感觉应该是“事故”? Q4:androidTest 目录下的用例运行需要依赖设备,真机或模拟器都可以吗? Q5:IDE应该是用AS吧。哪个版本?AS2021吗? Q6:在哪里执行命令行./gradlew test? 我在AS3.5的“terminal”窗口中,当前项目路径下,输入“AutoTest ./gradlew test”和“./gradlew test”,都不行,提示“'AutoTest' 不是内部或外部命令,”。
作者回复: peter,你好。非常开心收到你的留言,看了你总结的问题,就知道你非常认真地学习完成了前面几章的内容。下面我尝试来回答一下你提到的6个问题哈。 Q1:ButterKnife现在我用的也比较少了,是否考虑直接用Kotlin? Q2: 这边的版本管理主要是指二进制的版本管理。例如jar或者aar的版本,与分支不是一个概念。 Q3:故事不是笔误,故事是敏捷开发中常用的术语,例如用户故事(需求)。 Q4:是的。 Q5:目前我看到基本都是用AS,我现在用的是Android Studio Electric Eel | 2022.1.1 Q6: AutoTest是项目的名称,进入项目的根目录直接执行./gradlew test (mac系统),你也可以直接在gradle的窗口中双击test的task。
2023-02-14归属地:北京4 - 布魯斯~感谢老师的讲解,想请问一下老师,在现实生活上,许多登入是透过OAuth 2.0 去实现的,想请问一下老师,针对这种场景,要如何撰写自动化的大型测试吗?
作者回复: Hi,布魯斯。 在实际项目中,首先对于账号来说得有对应的测试账号,另外大型的测试与文中介绍的方法还是一致的,只不过需要加入一些等待及超时的机制(网络请求需要时间)。
2023-03-18归属地:澳大利亚1 - 余一老师,为啥我的测试类测不了protected修饰的isPasswordValid方法?明明加了@VisibleForTesting注解😢
作者回复: Hi,可以检查一下是不是在同个包一下。
2023-07-08归属地:广东 - le bonheur从上家公司开始要求跟学习写单元测试,开始爱上单元测试.终于看到了一篇比较综合写单元测试的文章.太高兴了
作者回复: Hi,期待一起完成专栏的学习。
2023-03-28归属地:江苏 - Geek_6f0f96这样做主要收益是回归流程嘛?因为感觉大多数需求如果写测试用例,可能比需求开发时间还多
作者回复: Hi,你好。回归是收益之一。正文中最后的第三个问题也有介绍关于自动化测试价值的问题。你可以跟着课程一起来练习体验一下,期待一起完成专栏的学习🤝。
2023-02-28归属地:上海 - 李鑫鑫抢了测试同学的工作了!
作者回复: Hi 鑫鑫,非常开心收到你的留言。 我想说的是:测试的工作永远不仅仅是测试同学的事情哈 😊
2023-02-16归属地:北京 - wangzhen666LoginActivityTest的should_show_failed_toast_when_execute_login_given_invalid_username_and_password()没有通过
作者回复: 可以提供一下日志以及相关的执行设备。中大型的测试相比小型测试的一个问题就是依赖设备,相对不稳定。
2023-02-16归属地:广东2 - wangzhen666老师方便的话把代码传一下吧~
作者回复: 示例的代码链接:https://github.com/junbin1011/AutoTest 期待一起完成专栏的学习🤝
2023-02-15归属地:广东 - 晓晓受益匪浅,期待更新!
作者回复: 期待一起完成专栏的学习💪
2023-02-14归属地:广东