如何在Android上有效测试多线程,多进程,多设备代码?

时间:2019-04-26 19:32:25

标签: android multithreading testing process automated-tests

我已经编写了一个Android无线通信库,它本质上是多线程,多进程和(当然)多设备的。

Android世界中是否有针对此类代码的有效测试库/框架?

  1. 出于明显的原因,很难对多线程代码进行单元测试。单元测试不能很好地与线程配合使用。 (例如)如何对需要等待广播的功能进行单元测试?
  2. 大多数错误似乎仅限于“现实世界”。该库需要两个设备互相通信。如果我模拟一个完美的响应序列,那感觉就像在作弊。与现实世界不同,没有任何错误。而且,模拟过程非常复杂且耗时-与实际库相比,我编写的代码模拟方式更多。
  3. Android上的所有测试框架(有仪器的或其他的)一次只能用于一台设备。我不能同时在两个设备上运行同时,相互依赖的测试,可以吗?

我目前仅进行系统级测试,并且大多是临时性的。它只是带有简单控制器脚本的常规应用程序,它将应用程序推送到两个设备,分配它们的角色,运行高级功能测试,并在两个设备上轮询日志文件。如果在写入日志文件之前已达到超时,则脚本将返回错误代码。如果写入日志,则检查通信顺序是否正确。从理论上讲,可以将该测试添加到CI中,但是需要从具有物理连接设备的本地测试机上运行。我可以使该测试随着时间的推移变得更加强大,但是现在它非常脆弱。再次,我做到了这个特定的项目。

我不确定这里的方法。 Android生态系统中是否有任何现有工具可以帮助我测试这种项目?任何建议或朝正确方向的推动将不胜感激。

0 个答案:

没有答案