近来,将我们的测试框架和市面上流行的测试软件做了对比,发现大家的想法都是一致的。我们也认识到,除了协同工作方面,其他方面还是做得非常好的。
办公协同?是的,Google已经退出在线版Office系列软件,而我们的测试框架也同样不能回避这个问题。一开始,我们是可能只有一两个人编写测试脚本,而且还可能两人商量着、研究着,因此开始时候,协同的需求并没有那么紧急。但随着脚本工程慢慢扩大(现在已经4000个测试步骤了),而两个人已经开始分工,各自负责各自的代码(一来两人的经验已经足够独立编写,而来如果不独立编写,进度就赶不上了)。协同一下子变成最最麻烦的事。
由于开始没有好好考虑过这个问题。解决方案有两个:
1.通过工程文件的合并。这是利用svn的Merge功能(或者WinMerge软件),因为工程文件的格式是xml的,可以比较出差异,这样只要有足够的耐心,绝对可以合并好。
2.通过IDE的脚本复制粘贴来完成合并。针对新建的或各自编辑的测试脚本,可以很方便地合并。只不过,如果针对细节做了小幅度修改,很难察觉并进行合并。
等到我们发现协同的问题的时候,参考编程语言中的协同方式,我们提出TestUnit的概念,类似于代码工程中的各个代码文件,这样大家可以将自己负责的模块独立成一个TestUnit,最后可以合并回去。
TestUnit中,重点考虑的是多人在自己的Unit中编辑TestStep的时候的ID分配问题,这里针对TestUnit提出了ID段的概念。假定TestUnit只有一个人编辑,这样我们在TestUnit创建的时候,就分配好范围为10万的段。这样就可以在约定上保障双方的TestStep不存在ID重复。这里面存在的可能性的重号,可以通过整体重新编号来解决。
这个并不是我们最满意的解决方法。我们考虑是否应该为测试脚本的IDE编写一个服务器,负责协同工作呢?一开始,我认为服务器会让一个软件依赖性增强,反而削弱了原有的灵活性。不过现在看来,这只是一个设计理念,而非设计原则。套用一句同事的话:有了网络版,软件才看上去像软件。也许在大部分人的眼中,都只是将单机的看成是工具罢了。
但是我确实不愿意编写一个服务器。我突然意思到其实消息队列(如微软的MSMQ)这种企业架构中常常出现的服务组件,其实正是我们这类软件在系统时候的服务器抽象。这让我对消息队列有了更深层次的理解。
我们以前编写服务器,第一想到的往往是自己软件的独特需求,反而容易忽略了服务器的本质所在。在这点上,协同和消息队列几乎是等价的。这就如Windows中的鼠标、键盘等操作系统为应用程序准备的进程消息队列。系统也正是通过这种类似的机制,完成了多个进程、窗体之间的协同。
采用消息队列实现的重点,是将自己的软件定义出操作接口。因为这将意味着从A系统中发生的变更a可以通过消息队列发送到B系统中,并将a变更更新到系统中。从而完成A和B之间的同步。真正难的地方还是在客户端!
关于TestUnit已经基本实现,而MQ还没有设计。在完成协同的需求之后,下面的需求可能是测试用例的管理。因为这段时间和大家讨论到这块,感觉非常有意义,当然了,那又会是一个大的话题了。
分享到:
相关推荐
自动化测试框架是软件开发过程中的重要组成部分,它能够提高测试效率,确保产品质量,并方便团队协作。本文将探讨如何构建一个通用的自动化测试框架,并解决在不同项目、产品和功能之间如何共享同一框架的问题。 ...
Java+Selenium+Maven+TestNG自动化测试框架是现代软件开发中的一个重要组成部分,尤其是在Web应用程序的质量保证阶段。这个实例项目展示了如何将这四个强大的工具集成为一套完整的自动化测试解决方案。 **Java**: ...
【QTP自动化测试框架】是一种高效且广泛应用的测试解决方案,主要针对软件的自动化测试需求。在本框架中,我们可以看到几个关键组成部分,这些组件协同工作,以实现对应用程序的全面和自动化测试。 1. **Driver**:...
Python3+RIDE+RobotFramework自动化测试框架搭建详解 随着软件行业的发展,自动化测试已成为提升测试效率与质量的重要手段。本文将详细介绍如何搭建Python3+RIDE+RobotFramework自动化测试框架。该框架通过Python3...
本文将探讨如何将QTP应用于自动化测试框架,以及其实施规划、源起、设计原则和挑战。 1. **自动化测试实施规划** - 阶段一:关注核心业务流程,确保结算和信贷等主要业务功能的自动化覆盖。 - 阶段二:扩展至业务...
- **框架管理**:引入了自动化测试框架来更好地管理和组织测试用例,提升测试效率。 3. **面临的挑战**: - **质量与覆盖率的平衡**:早期过分追求自动化测试覆盖率可能导致用例质量下降,进而影响测试的有效性。...
在软件开发生命周期中,自动化测试框架(Automated Test Framework,简称TAF)扮演着重要角色,特别是在敏捷开发方法论中。敏捷开发,特别是Scrum模式,要求软件产品能够快速迭代并持续交付增量功能。在这样的背景下...
自动化测试是一种在软件开发过程中广泛采用的技术,它利用专门的软件工具来执行预先定义的测试脚本,以检查系统是否按预期工作。自动化测试的主要目标是提高测试效率、准确性和可重复性,尤其是在大规模项目中,手动...
### SigmationTF自动化测试教程知识点总结 #### 一、自动化测试原理 ##### 1.1 测试理论概述 - **定义**:测试是产品在最终交付使用前对其功能、规格、性能等进行全面检查的过程,确保产品的质量符合要求。 - **...
1. **自动化测试框架**:安装包可能包含了流行的自动化测试框架,如Selenium用于Web应用测试,Appium针对移动应用测试,JUnit或TestNG用于Java应用测试,或者Pytest对于Python编程的测试。理解这些框架的基本用法和...
使用单元测试框架,如JUnit(Java)、pytest(Python)等,可以编写自动化测试脚本。 2. 集成测试自动化:在多个组件或模块组合后进行,确保它们协同工作。这一步通常涉及接口测试,检查不同组件间的交互是否正确。...
3. **基于功能分解的自动化测试框架** - 这种框架将复杂的业务功能分解为最基本的动作,每个动作对应一个可独立执行的脚本。 - **模块化设计**:通过业务数据驱动,实现测试用例的灵活组合,便于管理和维护。 - *...
《企业级UI自动化测试框架详解》 在当今的软件开发领域,测试已经成为不可或缺的一部分,而自动化测试更是提高效率、确保质量的重要手段。本文将详细解析一个名为“Test_framework-master”的企业级UI自动化测试...
《论基于QTP的金融软件自动化测试框架》 金融软件自动化测试框架是现代软件测试领域中的重要组成部分,尤其是在金融行业中,高效、准确的测试对于确保系统稳定性和安全性至关重要。QTP(QuickTest Professional,...
同时,选择合适的自动化测试框架如TestNG,可以提升测试效率,支持并行测试,提供丰富的断言和报告功能。 TestNG是一个强大的测试框架,支持多种测试类型,如单元测试、集成测试和端到端测试。它提供了灵活的注解、...
【标题】: "基于Selenium的Web自动化测试框架的设计与实现" 在当今的软件开发领域,Web应用程序的复杂性日益增长,确保其质量和稳定性成为一项关键任务。这就引入了自动化测试,尤其是对于Web应用,Selenium成为了...
2. **测试框架**:例如Selenium、JUnit、TestNG等,这些框架提供了自动化测试所需的基础设施,简化了测试脚本的编写和执行。 3. **测试数据**:用于测试的输入数据。对于复杂的测试场景,可能还需要专门的数据管理...
Selenium是一个开源的Web自动化测试框架,广泛用于跨浏览器和跨平台的Web应用测试。WebDriver是Selenium的一个组成部分,它提供了一种编程方式来控制浏览器并获取网页的状态。ChromeDriver就是WebDriver的一个实现,...