最近在做一个SDK开发和维护方面的工作,涉及到的修改,必须对影响到的接口进行严格测试,如果不测,虎了吧唧交给测试,有可能你把很基础的调用都改坏了,自己还不知道,或者交付给用户很久了,发现一个接口实现有问题,这种就会很尴尬。确实有一个测试工具App,但是大家都在用,你也不好胡乱改,改动之后涉及的变动,只有我自己知道要怎么测,另外也不可能为每一个调用都写一个ui测试入口。于是乎想找一个自动化的测试方案,写好一些测试用例,相关模块改动之后,鼠标点点跑一遍,很安心,岂不爽哉。
对于 Java 项目的单元测试,因为它不依赖特定设备,在本地 JVM 上跑就行,所以基本上一个 JUnit 就解决了吧。研究了一下 Android 的测试,还是挺纷繁复杂的。本文基于 Android developer 官方文档,做一个总结,想看更加详细和权威的文章,直接看官方文档:在 Android 平台上测试应用 | Android 开发者 | Android Developers
官方文档的概览 在 Android 平台上测试应用 | Android 开发者 | Android Developers,说了很多测试的好处之类的:
快速获得故障反馈。
在开发周期中尽早进行故障检测。
更安全的代码重构,让您可以优化代码而不必担心回归。
稳定的开发速度,帮助您最大限度地减轻技术负担。
。。。blahblah
总结起来一句话:要重视测试。
理想很丰满,现实很骨感,我们国内应用测试基本靠手,开发点一点,功能正常,再找测试点一点,就上了,很少有人写测试代码,作为应用开发,其实也够了。但是如果你做一个SDK就不行了,靠手点,你覆盖不了多少东西。做技术应该往正规化,自动化的方向走,否则怎样做产业升级,跟老外竞争呢。我们可以糙快猛,但是科学的方法,慢慢我们也要搞懂用起来。