提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2021-01-20 14:27:44.153|阅读 160 次
概述:敏捷和DevOps通常是作为一种以更少的资源来更快地完成软件的方式而出售的。但是质量呢?在本文中,学习如何通过连续测试快速实现质量。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
敏捷和DevOps通常是作为一种以更少的资源来更快地完成软件的方式而出售的。但是质量呢?在本文中,学习如何通过连续测试快速实现质量。
每个人都想要质量更高,速度更快的软件。从竞争加剧和市场压力,功能和复杂性增加到对产品质量、安全性和可靠性的更高期望,对现代软件开发团队的需求是巨大的。敏捷开发方法之所以经常被人们追捧,是因为它有望对变化做出更好的响应,并更好地满足客户需求。
但是,敏捷和DevOps经常被作为一种用更少的资源来更快地完成软件的方式而出售,尽管这并不是故意的。实际上,随着多达70%的IT项目失败或未达到目标,精明的开发团队正在寻求改善其开发实践,以便他们不仅可以成功完成项目,而且可以为未来的迭代和产品创建可重复的流程。在本文中,我们将讨论如何实现敏捷和迭代方法所需的敏捷性,而不仅要获得最终产品,还要达到和超过质量和安全性目标的产品。
事实证明,测试既是问题所在,也是更快地获得更好质量的解决方案。在敏捷过程中,可以缩减许多开发步骤,以便创建合理的功能来进行设计和实现;但是,集成新功能存在风险,测试范围尚不清楚。正如我在上一篇文章中谈到的那样,测试是软件团队在采用敏捷方法时费劲的关键原因之一。团队失去了他们追求的敏捷性,因为他们陷入了过多或不足的测试困境。
持续测试被视为解决采用DevOps和敏捷开发的软件团队所面临问题的解决方案。 Wikipedia将持续测试定义为“……作为软件交付管道的一部分执行自动测试的过程,以获取与候选软件版本相关的业务风险的即时反馈。”尽管定义简单明了,但随着时间的推移进行连续测试并对其进行优化是完全另一回事,而这就是我今天将重点介绍的内容。
理想的测试金字塔定义了在项目上投入时间和精力的最佳位置。在理想的金字塔中,您将宝贵的时间和精力投入到金字塔基础上的全面的单元测试套件中,该单元测试由API和服务测试支持,而在金字塔的顶部,数量较少的系统和基于GUI的测试。
但是,这个金字塔经常被倒置为所谓的冰淇淋蛋筒。团队在易碎和复杂的系统级GUI测试上花费了很多时间和精力,这些测试需要实现和集成完整的功能-导致在SDLC的早期阶段无法连续执行测试。成功进行连续测试的关键是融化冰激凌,并专注于创建可在开发人员实施新功能时连续执行的自动化单元和API测试。
1.建立单元测试的基础
通过自动化创建,执行和维护测试的过程,为单元测试奠定基础。只有使单元测试的工作更易于创建和维护,开发团队才能对所有组件采用项目范围内的单元测试。
在测试创建、执行和管理中均采用测试自动化,从而扩展了当前的单元测试套件,以包含尽可能多的产品代码。
2.避免依赖后期UI中心测试
避免依赖于后期的、脆弱的、以用户界面为中心的测试,这只会导致诊断和修复最耗时,最昂贵。与其专注于自动化所有手动测试场景,不如为单元和API测试打下坚实的基础,以确保与UI进行通信的体系结构首先是牢固的。
尽管系统级测试仍然很重要并且是必需的,但它不应该是第一位的。现在也不是时候发现关键的体系结构、性能和安全性问题。软件团队可以通过建立单元和API测试的坚实基础来减少对这些UI和系统测试的依赖。通过遵循此处的其他建议,应在系统级测试开始之前对许多系统进行充分的验证。
确保还使用静态分析来分析整个代码库,包括旧代码和第三方代码,以帮助检测测试可能遗漏的错误和安全漏洞。静态分析对于执行项目编码标准也很重要。
3.了解整个测试金字塔的代码覆盖率
了解整个金字塔的上下代码覆盖范围以及对需求/用户故事的可追溯性,因为没有它,开发团队就不会真正知道测试过什么和没有测试过什么。另外,不了解测试范围意味着不知道要在金字塔的每个级别上测试什么,这意味着即使是很小的更改也需要进行大量测试,这会使整个过程陷入困境。请参阅我以前的有关基于变更的测试的文章。
4.通过服务虚拟化向左移动
利用应用程序依赖项的服务虚拟化,可以在开发生命周期的更早阶段进行自动化API测试。自动化程度的提高和漏洞的早期发现对于成功至关重要。提早进行API测试有助于发现系统的关键方面,例如性能和体系结构健全性。这也是安全测试的重要阶段。
5.利用变化影响分析来加速敏捷
通过基于每个构建的变更影响分析来加速敏捷开发,以了解每次新迭代引入的风险的详细信息。变更影响分析提供的分析对于使测试仅集中于绝对需要测试的内容而不是其他方面使用的shot弹枪方法至关重要。
只有通过基于数据的明智决策,才能进行真正的连续测试。使开发团队专注于最少的测试集,以确保每次迭代都覆盖适当的范围,这是使敏捷性回归敏捷开发方法的关键。
毫不奇怪,最好的入门方法是检查测试金字塔,然后评估项目当前的位置。是否有基于每个构建运行的自动化单元测试的坚实基础?是否有尽可能多的产品API经过自动化测试?是否使用虚拟化?测试是否依赖于一套复杂的手动UI测试套件,这些套件要等到系统即将完成后才能运行?改进之路基于构建适当的测试金字塔,自动化以及数据收集和分析。
现代软件开发团队承受的巨大压力使按时按规范构建产品变得困难。诸如敏捷开发之类的新开发方法已帮助团队专注于为客户构建正确的东西,但是项目仍为时已晚且容易出错,而测试是继续困扰现代开发方法的开发的关键方面。要获得重大改进,请采用自动化单元测试的坚实基础,并尽早(通常通过服务虚拟化)执行API测试。而且不要忘记,通过使用来自高级软件测试分析的数据来驱动测试管理,测试结果会大大改善。
将您的冰淇淋蛋筒变成金字塔
通过连续测试快速实现质量的五个步骤
改善之路
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
人工智能和机器学习赋能 API 和 Web 服务测试
Parasoft Virtualize用于创建、部署和管理模拟的开发与测试环境的虚拟解决方案
Parasoft SOAtest with Load Test通过使用现有的功能测试来解锁早期的负载和性能测试
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢