GXtest:为 GeneXus 平台开发的自动化测试解决方案
发表时间:2024-07-13 08:02:14
文章来源:炫佑科技
浏览次数:160
菏泽炫佑科技
GXtest:为 GeneXus 平台开发的自动化测试解决方案
它是基于专门为该平台开发的应用程序的自动化测试解决方案。
我们强调“解决方案”和“自动化”这两个词:
每个IDE的版本要求不一样,可以通过IDE菜单“知识库管理”à“管理参考模块”进行更新。
当前IDE版本信息可以在以下网站查看。
,+,
2.单元测试
版本的单元测试适应性:
单元测试是独立、快速、可重复地测试业务逻辑的*有效方法。单元测试的测试对象是封装业务逻辑代码的过程——这些过程可以在不同的场景中重用,包括、、。
单元测试用于以下业务场景:
单元测试的目的主要是为了验证程序是否按照产品规格说明运行。
当然,正如前面所说,Unit Test的测试对象不仅限于此,还可以进行测试。
Unit Test主要提供给开发人员使用(自动化测试另行讨论):
1)开发者可以在集成测试和正式发布之前自行检查错误;
2)测试速度非常快,测试结果可以立即反馈给开发人员
3)开发人员可以与其他人分享自己的测试程序
4)不需要其他测试工具GXtest:为 GeneXus 平台开发的自动化测试解决方案,直接在IDE中测试即可
5)提供完整的测试框架,开发人员不再需要自己定义业务场景、设计测试接口
3. UI 测试
UI测试是通过在网页上进行相关操作,模拟真实用户与软件系统的交互,验证UI和数据库上的输出结果,确认业务流程的完整性和可靠性。
在这个版本中,Web应用程序的测试通过协议完全符合W3C标准,这意味着UI Test可以在流行浏览器的*新版本上进行测试——这些浏览器的核心一般基于、、Edge和IE。
开发者关注的是业务在网页界面上是如何呈现的,并不能完全理解和控制HTML元素,因为提供了业务抽象层来屏蔽底层的技术应用。同样,UI 关注的是用户的操作和信息交互是如何体现在网页上的。
UI Test工具的用户不需要懂开发技术,通过一个小插件就可以把自己在网页上的操作转换成测试脚本,这些测试脚本用来简化UI Test的自动化和重复测试。这个插件是使用扩展录制器提供录制功能,在电脑上安装这个扩展后,你可以浏览要测试的网页应用,获取测试步骤和验证,形成测试脚本。
4. 自动化测试(基于ROI)
软件产品的价值只有尽快交付高质量的软件才能体现出来,测试自动化流程是系统交付有价值软件的重要关键。
重复性的工作就应该交给计算机来完成,频繁的编译、重复的测试是测试中不可避免的任务,如果这些工作都交给计算机来完成,将大大减少项目组的工作量,降低人为失误的概率,提高反馈和沟通的效率。
就测试工作而言,单元测试往往由开发人员完成,代码完成后通常只测试一次;UI 测试可以测试全过程,但是测试过程冗长,测试人员没有耐心等待结果,更没有兴趣重复测试。
接下来我们来详细分析一下。
在测试自动化层自动化软件开发,Unit Test和UI Test的应用场景和使用价值是不一样的,Unit Test速度*快,成本也*低,而UI(端到端)测试则非常慢,成本也比较高。
当然每个应用团队的技术/业务水平不一样,每个系统的业务复杂度也不一样,所以对单元测试或者UI测试的选择和投入也是不一样的。
为什么单元测试*快、*便宜?单元测试是应用程序中*重要的测试层:
开发人员经常会在写完自己的程序后立即运行/调试。过去,开发人员一般会使用自己的 Web 和 UI 界面来测试输入/输出,并且需要准备大量不重复的输入数据来模拟一些业务场景。当然,即使没有新功能,开发人员也可以将这些测试界面和测试数据保存为 KB 的重要组成部分。
但这样做还是有个缺点,那就是这种测试是孤立进行的,即便开发人员完成开发后对部分功能进行了测试,但仍然不能保证系统在集成其他组件后整体不会产生 Bug。应用程序通常使用 SOAP 或 REST API 来提供公共服务接口,这就要求必须同时进行和重复所有的单元测试,这也是我们建议尽可能实现自动化测试目的的原因。
自动化框架的优点是:
当核心业务逻辑封装在 和 中时,单元测试拥有*佳的ROI(投资回报率);而如果业务逻辑不是 ,而是封装在面板上(比如 或 ,这对你来说是很糟糕的编程习惯),那么就需要其他的测试方法了。
因此UI Test是自动化测试的*后一层,对测试基础设施(硬件/网络/存储等)、数据、框架、浏览器版本等要求较高,但它是模拟真实用户与软件系统交互的唯一方式。
我们建议为了提高UI Test的效率可以从两个方面入手:
5. 测试工具比较
在单元测试领域,唯一支持对编程对象功能进行单元测试的工具,Unit Test工具在IDE中直接使用语法编写测试数据(输入输出)、验证程序、测试程序代码。
在接口测试领域,除了UI Test工具,目前还没有其他接口自动化测试框架可以如此“轻松”地对开发出来的应用进行测试。需要注意的是,其他接口测试工具需要在浏览器上模拟真实用户与软件系统的交互,这往往需要“重度”编程才能实现,比如复杂的显式“等待”事件编程或者复杂的功能。
在现代软件开发行业中,单元测试是测试中*重要的一环,而接口自动化测试则把关端到端业务流程中的关键部分。在方法论上,持续测试是“尽早交付优质软件、体现软件产品价值”的重要保障,而它恰好是可以融入流水线、实现持续测试的基础工具。
我们与几款主流的测试工具软件做了简单的对比,包括几个方面:IDE集成、单元测试、服务/API测试、接口自动化测试、SCM集成、CI/CD集成、性能测试、报告等,对比结果如下:
笔记:
:表示该工具在这方面还存在不足,或者正在向预期目标努力。
:表示此工具可以与第三方工具无缝集成,实现目标