b. 系统, 系统经常有各种更新的弹窗,特别是IOS。利用网络,屏蔽这些无用的推送把。android则是找个稳定的ROM。 c. 账号资源,有很多软件账号资源都是不能重用的,或者重用了之后,用例之间会相互影响。这里需要有账号资源池的概念,类似SVN, 通过CGI, 来取了资源,可以加锁,还回去,再解锁。 d. 手机与电脑,肯定不能长时间运行,不然他们也会发脾气。所以定期重启手机和电脑,似乎是必不可少的一步。
另外一种用例生成,则是用例逻辑的自动生成,想想,只要定义好每个Action在不同状态下切换到的新状态,状态机算法就帮助我们生成一系列的用例。这个技术叫MBT, Model Base Testing。现在各种语言都有Model Base Testing的库,跟UI自动化结合起来就可以了。python的就例如pyModel。但是为什么这么好的东西一直没有做起来呢? 1. 入门稍微困难了一点,需要理解一下状态机本身的算法。这个对测试本身的素质要求更高 2. 如果说UI自动化测试的维护大部分在于排错,那么基于MBT的自动化,则排错更加困难了。原因是什么呢?因为脚本逻辑是生成的,所以对于依赖固定逻辑的Assert会变得非常复杂,但是也不是不可行。况且,退一步说,验证CRASH这种简单的Assert是没有问题的。只要能把排查错误的能力在普通UI自动化测试下做到极致,排查时间能够控制在几分钟之内,那么结合MBT当然也就不是梦想了。另外,最能证实可行性的证据,应该就是“即时战略”游戏里面的电脑,他们就是状态机编程的结果,比一个应用复杂得多,都尚且能无差无错的完成。