在创建现代复杂的GUI应用程序的时候,功能GUI测试是程序开发和QA的一个重要组成部分。在一个可接受的时间内,手动测试无法独自审查应用的缺陷。自动化GUI测试可以快速的生成一个可靠的、可重复的结果和一小段时间的执行。自动化GUI测试帮助测试工程师提高测试的覆盖率,快速发现错误并尽早修复, 从而节省了时间和金钱。
创建一个可维护的和可靠的自动化GUI测试框架需要一个深入了解底层GUI测试技术的工具。
Froglogic公司的Squish是广受欢迎的跨平台、多技术融合的GUI 测试工具, 它能对现代所有种类的 GUI 应用进行自动化测试, 尤其是对如下应用提供专业和全面的支持:Qt、Java GUIs、Web、Linux、Windows、IOS和android等。
Squish平台有两大产品:
◆ Squish:自动化GUI测试
◆ Squish CoCo:代码覆盖率分析
Squish
◆ 行为驱动的开发与测试(BDD)
Squish支持完整的BDD集成,与Gherkin(标准BDD)语言完全兼容,创建、记录、维护和调试BDD GUI测试。
◆ 录制与回放
Squish GUI Tester自动化测试脚本记录和识别上层的交互和对象,而不是底层的事件。
◆ 测试验证与确认
在录制时,可以使用Squish验证点和Pick工具在构建脚本时插入验证点,验证对象属性,执行图像对比和验证表格数据等。
◆ 强大交互式测试生成环境
Squish GUI Tester集成了记录、测试执行和结果、脚本调试、对象监控和高级的脚本编辑和维护。
◆ 多脚本语言
Squish的自动化测试支持多种脚本语言:Python、Perl、JavaScript、Ruby和Tcl。
◆ 数据驱动的测试
使用来自于各种数据源(TSV、CSV、TXT、Excel spreadsheet、数据库等等)的数据驱动测试脚本,甚至使用Make数据驱动向导来提供帮助。
◆ 分布式批量测试
使用Squish GUI Tester执行脚本或批处理集,并查看详细日志记录和执行结果。
◆ 广泛的集成
ALM、测试管理、持续集成、构建集成和软件项目管理。
◆ Object Map和Object识别工具
简化测试创建、维护和故障排除,生成稳定而强大的测试脚本。
◆ 混合应用测试
使用Squish GUI Tester无缝自动化多技术应用程序或具有多个工具包的应用程序。
◆ 视觉验证
元素和控件组的高级验证选项。
◆ 基于图像的测试
识别自定义的控件或2D/3D图像。
Squish的多个版本
◆ Squish for Qt
自动化跨平台GUI测试,适用于用Qt Widget、QML、Qt Quick、Qt Webkit和Qt WebEngine编写的桌面、嵌入式和移动平台的应用。
◆ Squish for Java
自动化跨平台GUI测试,适用于AWT、SWT、RCP、Swing和JavaFx应用,支持嵌入式Webkit内容。
◆ Squish for Windows
自动化GUI测试,适用于原生Windows应用,特别是支持MFC、WinForms和WPF控件,也支持通过MSAA和UIAutomation的自动化。
◆ Squish for Mobile
自动化GUI测试,适用于设备和仿真器上的原生Android和iOS应用,支持嵌入式Webkit内容。
◆ Squish for Web
自动化跨平台GUI测试,适用于桌面、移动端和嵌入式平台上的Web和HTML5应用。
◆ Squish for Mac
自动化GUI测试,适用于原生macOS应用,支持嵌入式Webkit内容。
混合使用Squish多个版本,能够实现混合GUI应用的自动化GUI测试,比如带有嵌入式的原生的Windows控件的Qt应用或内嵌了Java小程序的Web应用。
Squish CoCo
CoCo是一个多语言代码覆盖率工具,使用对源代码的自动化插装测量语句、分支和条件的覆盖率,无需改动被测试的应用。
◆ 覆盖率等级
CoCo支持函数覆盖、行覆盖、语句覆盖、分支覆盖、条件覆盖、MC/DC覆盖和MCC覆盖(Multiple Condition Coverage)。源代码的覆盖用颜色可视化:
◆ 支持的平台和编译器
◆ 支持的平台:
√Linux(32和64位)
√Windows(32和64位)
√macOS(32和64位)
√Solaris、AIX和其它UNIX系统。
◆ 使用交叉编译器(需要Squish CoCo平台支持包),客户可以用在其它平台,包括:
√嵌入式Linux
√嵌入式Windows
√移动操作系统
√实时操作系统(QNX、VxWorks或FreeRTOS)
√无操作系统的微控制器和微处理器。
◆ 支持的编译器:
√GCC家族
√Microsoft Visual Studio(C、C++和C#)
√Clang
√Intel C/C++
√Oracle/Sun Studio C/C++
√Mono C# Compiler
√ARM C/C++(Keil μVision)(*)
√Green Hills Compiler for C and C++(*)
√HighTec(*)
√Atmel Studio C(*)
其中带(*)者需要Squish CoCo平台支持包。
◆ 支持的硬件:
目标系统的硬件基本是上述C、C++、C#编译器能支持的任何硬件,下面是一些常用的:
√Intel x86 and x64
√ARM
√IA64
√PowerPC
√SPARC
√MIPS
√AURIX? TriCore
√Microchip's SAM microcontrollers
◆ 支持的语言
支持Tcl、QML、C#和C/C++(包括SystemC)。
◆ 报告格式
产生报告的格式:HTML、XML、EMMA-XML、Text、JUnit、Cobertura。
◆ 持续集成
CoCo支持多种构建、测试和持续集成系统,比如JUnit、Jenkins、SonarCube和Bamboo等。
◆ 高级分析
混合多次执行的报告,提供更加高级的分析能力,比如计算测试执行的最佳次序、多次执行之间的对比分析、被测软件不同构建之间的覆盖率分析、评审过程中源代码补丁的覆盖率分析、确定覆盖源代码补丁的最小测试集。
◆ 确认与合格审定
适用于工业标准的功能安全认证和合格审定。
◆ 测试框架集成
使用CoCo Framework API(C和C++)可以收集其它测试框架的信息,包括:CppUnit、QTestLib、GoogleTest、CxxTest、NUnit。
◆ 执行时间
记录单个测试或测试集的执行时间。
◆ IDE插件
提供Microsoft Visual Studio插件,直接在开发环境内生成代码覆盖配置。