当今激烈的商业竞争中,企业中的服务和产品需要更快速的版本迭代和高质量的软件交付,同时减少完成项目所需的成本和时间,不少企业引入了DevOps概念来提升软件研发交付效率。DevOps是开发和运营的结合,代表着一种文化和实践,强调了软件开发人员(Dev)和信息技术(IT)运营与维护(O&M)专业人员(Ops)的协作和交流,同时促进了软件交付和基础架构变更。它旨在建立一种文化和环境,使软件构建,测试和发布可以更加方便,频繁和可靠地进行。DevOps中的测试是自动化的,不同于传统的手工测试,自动化测试通过测试工具或者框架,录制编写测试脚本,对软件功能进行测试,能够快速检测错误并查找可能对用户体验产生负面影响的问题,从而更快的发布高质量产品。
本文通过介绍自动化测试体系概念,带你了解自动化测试在实现高质量产品方面的重要作用。具体内容如下:
自动化测试是使用工具、脚本和软件对重复、预定义的操作来执行测试用例的过程。由于自动化测试是通过自动化工具完成的,因此在增加总体测试覆盖率的同时,它在探索性测试中花费的时间更少,在维护测试脚本时花费的时间更多。
自动化测试的基本概念是测试金字塔。它演示了如何解决项目的自动化测试:构成金字塔基础的哪些部分首先要进行测试,以及在金字塔最后阶段剩下什么?
按照测试金字塔的模式,首先是单元测试层,即开发人员在编写代码时经常执行的代码测试。然后是API测试所属的服务器层。稍后,当前端完成时,将进行UI测试。
图:三层测试自动化金字塔
自动化测试的类型
自动化测试是软件开发生命周期的重要组成部分,主动修复错误需要对基础代码进行的每个小更改都进行测试和重新测试。随着时间的流逝,回归测试的数量将会增加,测试人员将承受很大的压力,而创新和增长的时间会越来越少。此外,至少有四个因素导致测试成本上升:
通过自动化测试可以带来以下好处:
在快速且连续的产品开发中,手动测试是验证终端用户工作流程的最有效方法。但实际情况是,手工测试并不能完全做到重测每个功能,持续测试工作中需要编写快速且频繁运行的自动化测试,找出生产版本中的缺陷。
通过以下对比,让我们来了解测试工作中手工测试与自动化测试之间的区别:
特征 | 手动测试 | 自动化测试 |
---|---|---|
准确性和可靠性 | 精度低,手动测试更容易出现人为错误 | 使用工具和脚本的准确性很高 |
所需时间 | 手动测试比自动化慢,手动运行测试耗时多 | 自动化运行测试用例的速度明显快于人力资源 |
投资成本 | 成本低 | 初始成本比手动测试高 |
用法 | 适用于探索性,可用性和临时测试 | 适用于回归测试,性能测试,负载测试 |
体验 | 首次使用手动测试执行测试用例很顺利,但面对频繁变化的需求,捕获回归缺陷能力有限 | 能快速适应代码频繁更改的测试 |
DevOps中持续测试是软件产品交付管道中执行自动化测试的过程,其目的是获取有关最新构建或预发布的版本中业务风险的快速连续反馈。然后,可以使用此信息来确定软件产品是否已准备好在任何给定时间通过交付管道进行升级。由于测试提早开始并连续执行,因此减少了发现和修复缺陷所需的时间和精力,可以提高交付高质量软件(满足对可接受风险水平的期望的软件)的速度和频率,并减少技术负担。
持续测试包括对功能需求和非功能需求的验证,均与自动化测试有关。对于功能测试,持续测试通常涉及单元测试,API测试,集成测试和系统测试。非功能性测试涉及诸如静态代码分析,安全性测试,性能测试等实践。
Choerodon猪齿鱼目前支持的自动化测试有:API测试、性能测试、流量回归测试、UI测试,允许测试人员通过关键测试信息来完成测试操作,无需编程。
ChoerodonAPI测试模块通过集成Jmeter,实现了API用例的添加、归集、管理与执行的功能。其中支持基于接口URL或Swagger文档快速编排接口测试用例,而导入或添加API测试用例的整个过程免代码编写,技术门槛低,适合敏捷团队中各个角色使用。
Choerodon性能测试也是通过集成Jmeter测试工具,支持用户在已有的测试任务基础上调整执行参数(线程数、预热时长、循环数)来对系统的各项性能指标进行测试,从而发现性能瓶颈与性能缺陷,以便更好地优化系统或产品的整体性能。
Choerodon流量回归测试适用于:批量录制产品界面操作并将得到的用例进行集中管理,以便后续进行批量的回归测试。此功能通过使用Goreplay录制产品界面中的操作生成流量文件,然后将其导入Choerodon平台生成用例进行管理与执行。
ChoerodonUI测试适用于:测试人员通过插件录制web应用的界面操作,生成对应的测试用例与步骤;而后便能直接执行对应的测试文件来对界面UI操作进行测试。
自动化测试能够提高测试人员的工作效率并且优化测试速度,提高软件产品的准确性和稳定性,代替人工完成各种业务场景,使资源最大化利用,增加软件的信任度。希望以上关于自动化测试的概念对你有所帮助。
Choerodon猪齿鱼作为开源全价值链多云敏捷协作平台,是基于开源技术的Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷,持续交付,容器环境,微服务,DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而转变,更替代地交付更稳定的软件。
更多内容
大家可以通过以下社区途径了解Choerodon猪齿鱼文档,最新动态,产品特性:
【Choerodon官网】
https://choerodon.io/zh/
【汉得开放平台】
https://open.hand-china.com/
【汉得开放论坛】
https://openforum.hand-china.com/
也可以加入Choerodon猪齿鱼官方社区用户交流群,交流猪齿鱼使用心得,Docker,微服务,K8S,敏捷管理等相关理论实践心得,群同步更新版本更新等信息,大家可以加群讨论交流。
①-Choerodon猪齿鱼官方交流(已满);
②-Choerodon猪齿鱼官方交流(可加);【微信号发至客服邮箱[email protected],运营小伙伴拉您入官方交流群】
欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。