Android GUI传统自动化测试与UGA方法的比较
更新时间:2022-08-03 09:18:49 作者:多测师 浏览:186
1. 传统自动化测试与UGA方法的比较
传统自动化测试对于应用的空间没有一个全局性的认识,因此自动化的测试可能在探索应用状态的过程中失去方向。除此之外,自动化很难达到一些需要复杂交互才能达到的应用状态,例如,使用微信“摇一摇”功能时的应用状态,使用自动化测试的时候几乎不能触发。而UGA方法则是记录人工执行过程,并选择特定的停止点,再进行自动化测试。这意味着需要人工触发的一些特定的复杂交互状态通过特定的停止点也可以在测试的过程中覆盖到。只需要找到人工触发的复杂交互状态的一个活动点,并以该活动点为起点进行自动化测试。
其中实现录制重放需要用到一个工具,RERAN,Android操作系统是基于Linux内核的,我们可以使用SDK中的adb工具连接手机并使用getevent命令将系统中带时间戳的内核事件记录下来,并保存在文件中。此时我们还需要一个重放的程序来使Android系统按时间戳顺序读入内核事件,因此来实现重放。
2.基于用户执行踪迹重放的移动应用测试方法之RERAN的应用与实现
交叉编译重播文件:/yourpath/to/replay.c arm-none-linux-gnueabi-gcc -static -o replay.exe replay.c
推送重播程序:adb push D:\RERAN\replay.exe /data/local
录制内核事件重定向到文件中:adb shell getevent -tt> D:\RERAN\recordedEvents.txt
kill掉getevent进程:adb shell ps
找到getevent的进程ID然后kill:adb shell kill PID
编译.Java文件:javac Translate.java
翻译:\yourpath\to\Translate java Translate D:\RERAN\recordedEvents.txt D:\RERAN\translatedEvents.txt
推送翻译后的文件:adb push D:\RERAN\translatedEvents.txt /data/local
执行:adb shell /data/local/./replay.exe /data/local/translatedEvents.txt
和我一起研读的同学使用该工具录制了一段愤怒的小鸟的视频,录制这个游戏是因为愤怒的小鸟游戏中是没有控件的。更能表现这个工具的强大之处。其中第一遍是用户手动操作,录入内核事件,第二遍是通过回放内核事件实现的。以下是视频链接https://pan.baidu.com/s/17OtHdQ3WLTClZ8QfK9bGYw。
当然,录制回放只是UGA方法中的一部分,但也是最核心的一部分,实现了可以根据用户的执行踪迹录制回放后,就可以选择回放到哪个停止点,在该停止点进行自动化测试。从而消除因不能达到特定状态而给自动化测试带来的障碍。
最后总结UGA方法的核心步骤。
3.UGA方法工作的步骤实现
(1) 记录用户的执行踪迹。
记录的信息要能够尽可能地还原用户当时操作的情况,记录的动作类型也要全面,除了屏幕上的操作信息以外,还要记录使用到的相关的信息,例如,GPS信息,震动传感器信息等涉及到的信息。
(2) 选择合适的停止点。
我觉得这是UGA方法的核心之一,只有选择了合适的停止点,才能真正发挥UGA方法的作用。选择的停止点除了自动化测试能探索到的状态以外,尽量选择自动化测试遍历不到的点,也就是一些自动化测试不能通过复杂交互触发但能通过人工执行触发的点。这样才能把测试的覆盖率提高到最大。
(3) 执行自动化测试。
普通自动化测试能够覆盖的状态或者说活动自然不用多说,直接执行自动化测试就可以了。使用UGA方法的亮点在于,在选择了一些需要复杂交互才能触发的状态为停止点后,以该停止点为起点,执行自动化测试覆盖该停止点相关联的一些功能或者说是状态。如此一来,普通自动化测试能覆盖到的状态都覆盖到了,普通自动化测试无法覆盖的方法通过人工执行后记录的停止点也覆盖到了,那么测试的覆盖率必然就会大幅提高。
以上内容为大家介绍了Android GUI传统自动化测试与UGA方法的比较,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/
上一篇:自动化测试理论知识概述