由于9款工具比较多,分三期发布,这期(上)重点讨论两款工具 Applitools、Appvance IQ,讨论详细地,让大家更有收获,后面两期(中、下)讨论另外7款工具,其实只介绍6款工具,因为有一家公司在去年疫情期间已倒闭。
3年前介绍Applitools时,侧重介绍其自适应算法的可视化测试(或者说 “视觉验证” ),即可以在JUnit + Selenium 测试脚本中嵌入视觉插件Eyes(),然后就可以调用这种视觉验证能力。
今天 Applitools在拥有这种Visual AI能力的基础之上,推出了Ultrafast Test Cloud (超快的测试云),并且它被定义为下一代测试自动化平台。经过三年的发展,Applitools的客户明显增多,包括全球前十大软件公司和美国前十大商业银行中的五家(占了一半),今年6月该公司还宣布其在金融服务领域的年经常性收入同比增长超过200%,也初显AI测试工具的威力,不再是玩具或试验性工具。2020年11月24日,Applitools获得了“2020 Red Herring Top 100 North America Award”,这个奖 “Red Herring Award” 是表彰某个洲最激动人心和最具创新精神的私营科技公司。
今天Applitools Visual AI的 号称突破了10亿张图像分析的里程碑,实现了99.9999%的准确率,其测试能力渗透到软件功能测试的各个方面,包括AI自动维护和智能辅助、可视化AI驱动的A/B测试等,在移动UI/UX测试、跨浏览器测试、跨设备测试等方面体现了其显著的优势,而且提供了非常丰富的SDK,无需创建新的测试或学习新的框架,可以和主流的测试工具(如Selenium、Cypress、WebdriverIO、Selenium IDE、Testcafe、grandor等)实现无缝集成,只要增加一段代码,Applitools Eyes()就能捕捉并分析应用程序的整个屏幕。Applitools还宣布与GitHub Actions和微软的Visual Studio应用程序中心的集成,允许开发人员在每个构建和拉取请求中添加基于Visual AI的测试。
Applitools Ultrafast Grid(即前面说的Ultrafast Cloud)通过将屏幕截图作业分布到云中数百个浏览器的网格中进行并行操作——完成界面操作,可以支持不同类型的浏览器类型、不同尺寸的屏幕、模拟或真实设备及其组合的操作。Applitools 的这种操作不是屏幕截图(screenshots),而是借助Applitools SDK实现DOM快照(Snapshots),这种快照包含呈现页面所需的所有资源(HTML等),而数据量比屏幕截图小得多,因此上载速度要快得多。
DOM快照会上传到Applitools Ultrafast网格,而Applitools Ultrafast网格使用容器技术,这样在不同的浏览器上能以更快、更可靠的方式呈现网页。Applitools Ultrafast Grid还采用了缓存技术,这样无需为每个页面上传快照。如果一个页面的资源没有改变,UltrafastGrid不会再次上传它们。由于大多数页面资源不会从一个测试运行更改到另一个测试运行,因此传输的时间更少,上传时间以毫秒为单位。
3年前,在介绍Appvance IQ时,主要展现了它的两种能力:
- 由机器学习引擎创建应用程序蓝图:它封装了对被测应用程序的操作流程的理解,随后蓝图还能集成真实用户如何浏览应用程序的大数据分析,即能进行用户活动分析;
- 自动生成脚本:使用应用程序蓝图作为被测应用程序中可能的指导,以及服务器日志作为实际用户活动的大数据源,完成脚本的生成。
今天,Appvance IQ 强调自己是一个AI驱动的无代码测试创建、自主测试、持续测试的系统,实现统一的功能测试、性能测试和安全测试,给测试创建和执行两个方面都带来了革命性的效能提升。
喜欢 “无代码测试创建、自主测试、持续测试” 这三大特性,去年特地写了一篇文章: 2020年软件测试趋势报道:无代码化的测试自动化 ,今年一月还发布了:《持续测试白皮书》。做到自主测试,非常重要,是“持续测试”的基础或必要条件。有了自主测试能力,和CI和发布流水线集成起来,强有力支持 “持续交付(CD)”,很完美,所以有必要讨论 “自主(autonomous)测试” 这个特性。
那下面说说 “自主测试” 究竟是怎样的特性呢?
自主测试是说Appvance IQ 系统可以自行生成脚本、运行测试并发现bug,而无需任何人工干预,也就是说将人工减少到接近零,并获得接近100%的代码、页面和操作覆盖率,比手动测试或传统脚本更快地发现更多错误。估计你看到这里不相信,我都有点不相信,但其官方网站(https://www.appvance.com/appvance-iq/ai-scripting)就是这么写的。网站宣称:AIQ能为任何应用程序自动生成一组全面的用户流,无论是新的或旧的应用程序,也无论是Web的还是移动的app,其机器学习过程不需要应用程序加载项或日志来操作,但可以选择从中学习,以获得与真实用户流更强的相关性。
AIQ在AUT(Application under test,被测应用)上聚集了一大群机器学习机器人(bots),每次测试会激活100多个异常聪明的机器人,这些机器人协同工作,在AUT中探索每一条可识别的路径,边探索边创建用例。当得出一条完整的业务操作路径时,结束这次探索,重新激活一批新机器人,从头开始,探索不同的路线,直到每个用例都被映射,一批测试用例得到创建。机器人超人的智慧是由超过六种专利的数学和数学方法所驱动的(大家有时间可以搜索一下他们的专利)。
机器生成的测试组合比手工创建的脚本组合要全面得多,这点我相信。Appvance IQ 拥有约400万行代码,号称是全球最大的测试自动化平台,这个,你信吗?
(文章未结束,待续)