智能化试验因其节省成本、降低成本、增加全自动干预等竞争优势已经日益成为试验人员的“流行时尚”,从业者日益清楚地明白实现智能化架构是应用软件智能化工程项目赢得成功的关键所在之一。第一集该文将从什么是真正的智能化试验架构、自动化JAVA怎样工作以及智能化试验架构会怎样在试验过程中为你提供更多竞争竞争优势三个各方面进行阐述,让您透过这一篇该文,踏进智能化试验架构的领域。
智能化试验的竞争优势
智能化试验的流行和诸多竞争优势并不意味着它是螺科榧,订制型工程项目、周期长、试验可用性等情况并不适合智能化试验。但众所周知的是,假如认真计划和继续执行智能化试验架构,确实会为应用软件设计和试验公司带来以下好处:
最短时期-最小投资收益
构筑任何可取的智能化试验架构和智能化JAVA都能最小程度地增加撰写和运转试验所耗费的天数,从而能在短时期内赢得最小的输出。除此之外,保有优秀的智能化试验架构后,物力就能从譬如并行、错误管理、本地配置,调查报告聚合、解释等这些示例中证悟出来。
可生物降解和复本的智能化标识符
当你使用现有模块复本提到的标识符时,大能放心,它在以后的天数内仍然是复本和可生物降解的,因此所有相关任务(如调查报告、并行和机械故障排除)都将变得更易访问。 天然资源强化 一些公司没有如设想的一般从智能化实施中受益,因为从智能化试验中赢得的效益取决于采用它的稳定性。 假如智能化掌控系统是灵活的,因此与从事各个模块的不同团队相容,那么在天然资源强化和科学知识共享资源各方面能提供更多巨大的投资收益。
智能化试验框架的定义
在其他很多金融行业中,“智能化”指的是透过布喇格自动处理业务流程,业务流程运转是很少或完全不须要芒翁。而在应用软件金融行业中,智能化试验指的是透过智能化辅助工具(授权版或开放源码版皆可)对应用应用软件程序进行各种测试。从技术角度来说,智能化试验架构是几组订制的、能用来继续执行JAVA化试验和全面调查报告试验结论的互动式模块。 要赢得成功地构筑智能化试验架构,须要考虑到应用软件质量保障专家的建议,他们能协助观察并协助掌控整个试验过程,提高试验结论的准确度。经过精心安排的智能化试验架构能让试验人员以一种新颖、精简的方式继续执行智能化试验。 智能化试验架构的类型 以辅助工具为中心的架构 不管是商业智能化辅助工具和开放源码智能化辅助工具,都有有助于在试验环境中聚合调查报告、试验组件和分布式掌控系统试验继续执行的掌控系统基础设施。比如Selenium 智能化架构,该架构具有主要模块WebDriver——基于Web插件的插件,用于掌控和操作 Web 插件中的插件的 DOM 模型。Selenium 试验智能化架构还保有新颖的代码库和记录回看辅助工具。
除此之外一个专用于辅助工具的重要架构是 Serenity,它是围绕 Selenium Web 驱动程序构筑的加速器。 在这种情况下,为加快试验智能化实施过程的速度,社区将特定模块组合在一个公共实体中。
譬如 TestComplete,Ranorex HP QTP 这些辅助工具专用架构时,就很难做出明确的判断,因为它们都是由带有动作模拟器、调查报告和JAVA IDE 的已部署基础架构预先构筑的。
以应用为中心的架构
这种类型的架构是为实现某个特定插件工程项目智能化而订制的。以应用为中心的架构支持某个指定目标的插件实现试验智能化的需求,由从开放源码库构筑的模块驱动。这种架构能围绕SUT创建友好的试验环境来运转一些基本功能,包括部署开发的插件、运转插件、试验用例继续执行、直接试验结论调查报告和便于代码的包装器控件。以应用为中心的架构还会有一个模块来支持在不同操作掌控系统和插件上跨各种云环境的试验运转。 关键字驱动架构 关键字驱动架构主要能吸引缺乏代码经验的新手开发和试验人员,它既能是以辅助工具为中心的架构,也能是以工程项目为中心的架构。关键字驱动架构能让代码不熟练的员工参与撰写、理解智能化JAVA。用于代码的关键字集(如 Login、NavigateToPage、Click、TypeText)作为关键字存储库安装在标识符库里,根据提供更多的关键字引用撰写JAVA的电子表格将被传递到关键字解释器来继续执行试验 。理想的智能化试验架构的主要模块
假如要实现功能强大且性能卓越的试验智能化架构(无论是开放源码还是商业的),就必须把包括构成其核心的某些模块考虑在内。 有些架构可能包括所有模块,也有些架构只包括其中几个,所以不必在每个架构中都涉及到下面提到的所有模块。
1. 试验基础模块
a)单元试验 单元试验基础模块能作为任何智能化试验架构的基本部分。它能用于以下情况:
l 透过@test 或[test]等特定的形式来定义正在使用的试验方法
l 继续执行影响智能化试验最终结论的断言
l 运转简单明了的试验
无论是从命令行、IDE、专用辅助工具还是 CI(持续集成)掌控系统运转试验,为了确保单元试验以简单的方式运转,单元试验库都提供更多了试验运转器。
单元试验库支持几乎所有编程语言,比如以下这些:Java 的 JUnit 和 TestNG,.NET 的 NUnit 和 MSTest,Python 的 unittest(前身为 PyUnit)。
b)集成和端到端试验 在继续执行集成和端到端试验智能化的同时,也非常合适去实践现有试验库提供更多的功能。由插件UI驱动的API级试验须要有消除不必要的代码负担的模块,这样能让与被测插件的交互变得更容易。因而,试验人员就不会受到连接到插件、发送请求、接收结论响应这些代码工作的困扰。
这种类型的几个重要试验模块有:Selenium(可用于主要语言)、protractor(特定于 JavaScript)、Karate DSL(Java 特定的 API 级集成试验)。
c)行为驱动开发(BDD)
专门用于BDD的模块以行为规范为目标,以可继续执行标识符的形式创建可继续执行规范。在这部分,试验人员能将预测行为的不同特性和场景转化为标识符。尽管不像其他试验辅助工具哪有直接跟被测插件交互,但能作为BDD过程的支持,创建与智能化试验的范围和意图相一致的活动文档。BDD模块的典型例子有:cucumber(支持主要语言)、Jasmine (JavaScript)、SpecFlow (for .NET)。 2、试验数据管理 在应用软件试验智能化和试验创建过程中,最小的困难是怎样利用试验数据管理掌控系统。随着智能化试验数量的增加,始终存在这样一个问题:确保继续执行特定试验所需的某些试验数据在继续执行试验时可用或可创建。目前对这种情况并没有一个万无一失的解决方案,这就要求采用可靠的试验数据管理方法来让智能化工作赢得成功运转。
因此所采用的智能化试验架构须要配置充分,以便能提供更多基本的补救措施来进入或创建、清除要继续执行的试验数据。解决这一问题的方法是使用适当的模拟辅助工具,使数据更加精简、更加清晰、更易于理解。
3、mock、stubs和虚拟资产
在对智能化试验进行实践和探索的历程中,可能会出现以下情况:
· 希望将模块与在单元试验中有经验的已连接模块隔离
· 处理在现代插件的集成,或端到端试验中常见的繁琐而关键的依赖关系
在这些情况里,就会觉得创建mock、stubs和虚拟资产来反映连接模块的行为模式是非常必要的,还可能会发现处理 mock 和 stub 是一项大范围、大体量的任务。无论怎样,试验人员都会意识到,在开发智能化试验架构期间选择有用的虚拟化辅助工具是件十分重要的事。 实现模式的通用机制 除了以上提及智能化架构模块,还有一些有用的机制能协助创建、使用和维护智能化试验,例如:
包装器方法(Wrapper methods):使用 Selenium WebDriver 模块时,创建自定义包装器会让人更轻松地处理错误。 创建了用于 Selenium API 调用的自定ds):抽象机制意味着复本性的提高和冗余细节的掩盖。例如,在创建 Selenium WebDriver 试验时使用页面对象的目的是在网页上公开用户输入操作,包括输入凭据或单击页面上的某处,目标是透过超越或绕过探索页面特定元素的需求来实现高级试验方法。 此方法适用于许多类似的插件和智能化试验。
试验结论调查报告
在选择将试验结论调查报告到智能化架构中的库或机制时,须要将查看这份调查报告的目标受众考虑在内。在这方面,需遵循以下几个注意事项:
· 譬如 Junit 和 TestNG 之类的单元试验架构聚合的调查报告主要针对如 CI(持续集成)服务器之类的接收掌控系统,这些掌控系统最终会对其进行解释并以其他应用软件可使用的 XML 格式进行呈现。
· 当寻求使用大多数人都能理解的语言作为进行调查报告的辅助工具时,你可能须要考虑使用与单元试验架构相容的商业辅助工具,比如用于 Junit、NUnit 和 TestNG 的 UFT-Pro。
· 另一种选择是利用譬如 ExtentReports 之类的第三方库,该库以易于理解的格式创建试验结论调查报告,包括透过饼形图、图形或图像进行可视化解释。 辅助平台
除了智能化试验架构本身,一些跟持续集成相关的辅助平台也会对智能化试验有很大的协助。比如CI能进行交付件部署、试验调度;源标识符平台可管理产品和试验JAVA的标识符;依赖管理器一般是针对某种语言类库的依赖管理辅助工具,比如用nexus管理公司员工开发的通用java类型;禅道ZTF包含持续集成、单元试验和版库管理等特性。
CI平台
为了以更快、更连贯的方式进行插件试验,持续集成平台能协助您定期构筑应用软件并为新版运转各种试验。 当开发和部署新功能以及更新现有功能时,此方法使开发人员和试验人员对插件质量赢得定期反馈和迅速响应。 当前一些突出的持续集成平台有TeamCity、CircleCI、Jenkins 等。
源标识符管理
与全自动试验一样,智能化试验也涉及撰写和存储源标识符版。 每个开发公司都有一个精选的源标识符和版掌控掌控系统来保存并保护源标识符。 智能化试验须要完善的源标识符管理掌控系统,该掌控系统在处理生产标识符时会非常方便。 典型的源标识符管理示例有 Git和Subversion 。
创建依赖管理器
依赖性管理器的主要目的是协助收集、管理现有的已经应用在智能化应用软件解决方案 的功能中的依赖性和库。某些辅助工具(例如Maven和Gradle)同时充当依赖管理器并协助构建辅助工具。构筑辅助工具旨在协助您从源标识符和支持库开发智能化应用软件并运转试验。这各方面的辅助工具包括Ant,npm 和 NuGet。 禅道ZTF ZTF支持与禅道无缝集成,可将禅道用例和智能化试验JAVA一一绑定,继续执行的结论能提交到禅道中作为试验结论,继续执行失败的JAVA也能自动创建bug。ZTF智能化试验架构实现了与Jenkins持续集赢得成功能打通。用户发起任务后,透过ZTF自动继续执行试验JAVA,把单元试验的结论回传给禅道,二者合作打通了持续集成闭环。 架构的搭建和实施过程
以下是规划实现智能化试验解决方案的几种方式:
· 从客户的角度探讨智能化的实际适用性、从各个角度检查其外观是否良好、并在未充分使用的技术上进行试验。 与之相比,假如智能化开发的努力大大超过预期的竞争优势,那智能化试验就没有什么必要。
· 建议采用基于阶段的实现方法,其中每个阶段都具有交付智能化试验JAVA的优先级,同时添加架构功能以实现预期的JAVA继续执行。
· 在启动应用软件智能化试验之前,为了确保正确继续执行智能化决策,必须首先估算实施后的投资回报率、概念证明、运转全自动回归或冒烟试验的天数以及每个版的运转周期数 。
结论
在当今快节奏、残酷的应用软件设计生态掌控系统中,智能化试验架构在保持应用软件试验周期的速度、效率和清晰度各方面起着不可或缺的作用。随着人工智能被引入到应用软件试验中,考虑采用智能化试验架构的组织必须深入研究最终架构的设计之后才能涉足这一领域。良好的架构设计和使用模块的策略将为最终的智能化试验架构奠定基础。
构筑成熟、精细、灵活的智能化试验架构体系结构的最好方法是从小处着手,频繁地进行试验和审核,并逐步向更高的层次构筑扩展版。从早期开始准备大量的智能化试验很方便,能更快地看到工作架构,避免之后在智能化试验阶段出现冲突或受损的情况。 上面阐述的指南旨在协助应用软件试验人员和公司,以让大家从那些赢得成功的继续执行智能化试验的工程项目中汲取经验。