首页 > 其他分享 >传统测试与敏捷测试对比

传统测试与敏捷测试对比

时间:2022-08-25 11:48:38浏览次数:73  
标签:运维 项目 DevOps 部门 测试 敏捷 对比

 本文的内容是通过一个例子来全面比较一下传统测试与敏捷测试的区别,这个例子来自一本书——《凤凰项目:一个 IT 运维的传奇故事》。这是由美国的三位 DevOps 专家撰写的一本关于 IT 运维的小说。有人说,在 IT 咨询业,没读过这本书都不好意思跟人家谈 DevOps。本文的重点不是 DevOps,而是比较传统测试与敏捷测试,一千个人眼里有一千个哈姆雷特,尽管大家对 DevOps 有不同的理解,但是,你要知道,DevOps 其实是敏捷开发向 IT 运维的自然延伸,它的原则和实践与敏捷开发是一致的。从测试的角度看,这也是帮助我们理解敏捷测试的一本非常不错的书。

凤凰项目:一个 IT 运维的传奇故事

        考虑到不是每个人都读过这本书,先介绍一下这本书讲了一个什么故事。

        故事发生在美国一家历史悠久的汽车配件制造公司,有几年出现了经营困难,被竞争对手不断超越,公司经历了几轮裁员,但是情况还是没有好转。公司最大的竞争对手已经开始宣传它们可以提供客户在线定制汽车的业务,而公司的 IT 系统却满足不了这样的需求。为了扭转局面,公司把希望押在一个 IT 系统架构改造项目上——“凤凰项目”。取这个名字就有凤凰涅槃重生的意思,可见对于公司是至关重要的。这个项目需要对公司线下门店、网上商店销售系统和后台订单处理系统进行改造,但是已经难产了两年,预算大大超支。这个项目涉及三个主要部门:研发、IT 运维和零售业务部门,测试是研发部门的下属部门。研发部门负责新系统的软件开发,测试部门负责测试,IT 运维部门负责搭建测试环境、生产环境以及新系统的部署,零售业务部门负责网上商店及线下门店的销售业务。

 

 

        从以往合作来看,研发和运维部门关系紧张,经常互相甩锅。站在运维部门的角度看,开发部门每次都不考虑运维部署新系统需要花的时间,而且把项目时间都占用了,根本没有时间做测试。每次都是仓促上线部署,软件产品不稳定,质量很差,用户体验当然也不好。IT 部门甚至不得不靠每隔一小时重启一次服务器让系统得以运行。针对凤凰项目,运维部门迟迟拿不到关于产品和测试系统配置的具体技术参数,和需要的基础架构信息。而从开发的角度看,运维部门很少派人参加项目会议,从 IT 那儿拿到信息反馈往往要等上好几个星期,测试环境和生产环境部署需要的时间太长,而且经常不一致,导致上线后各种问题。

        可以说,凤凰项目是一个特别典型的 IT 项目,基本上囊括了现实中所有的项目问题:项目延期,代码质量低下,开发 / 测试 / 生产环境不一致,工期不考虑测试和部署,没时间测试,上线后每天救火,部门间不合作,出了问题互相指责,等等。

        故事的主人公比尔本来是一名 IT 总监,临危受命成为负责整个 IT 运维的副总裁。上任之初他可以说是焦头烂额,到处扑火,还经历了一次愤然辞职。幸运的是,在困难之际出现了一位高人——艾瑞克,他有可能成为公司董事会的成员,精通精益生产,练就独门绝技“三步工作法”。在艾瑞克的传授指点下,比尔奇迹般的完成了任务,不仅顺利地完成了 IT 系统的改造任务,而且引入了新的工作模式,让 IT 运维部门、开发部门、测试部门、业务部门协同工作实现了持续构建、持续交付、持续反馈,也帮助公司实现了销售额大增,顺利度过难关。

三步工作法

       让我们先来看看这神奇的“三步工作法”。

第一步,流动原则,建立开发到 IT 运维的快速工作流。减小批量大小,通过内建质量杜绝向下游传递缺陷,缩短代码从变更到上线所需的时间,同时还提高服务的质量和可靠性。

第二步,反馈原则,在技术价值流的每个阶段,包括产品管理、开发、测试、信息安全和运维,在所有工作执行的过程中,建立快速的反馈闭环。这中间包括创建自动化的构建、集成和测试过程,以便尽早检测出那些可能导致缺陷的代码变更,避免返工。

第三步,持续学习与实验原则,建立学习型组织和质量文化,既鼓励探索、反复实践,又能够把个人经验转化为组织的财富。

        简单的说就是持续交付、持续反馈、持续学习,是不是和敏捷很相似?所以说,精益、敏捷、DevOps,本质上是异曲同工。

        这本书里给出的目标是在生产环境一天完成十个部署,在现在来看是一个很低的目标,但是要知道这本书是 2013 年出版的,在当时,大部分 IT 部门是每季度甚至每年完成一个部署。你可能认为故事里描述的项目改造后的情况太理想了,不太可能在短短几个月时间里发生这么大的变化。故事当然是经过艺术加工的,是生活的浓缩和提炼,而且现实中很难遇到像艾瑞克这样的高人,多数情况下还得靠自救和不断试错。

凤凰项目改造前后对比

        那么现在,让我们来总结一下凤凰项目改造前后和测试有关的变化,基于变化,相信你能体会到传统测试与敏捷测试之区别。

 

传统测试和敏捷测试的区别

最后,我们再对传统测试和敏捷测试的区别进行一个系统性的总结。

(1)传统测试更强调测试的独立性,将“开发人员”和“测试人员”角色分得比较清楚。而敏捷测试可以有专职的测试人员,也可以是全民测试,即在敏捷测试中,可以没有“测试人员”角色,强调整个团队对测试负责。

(2)传统测试具有明显的阶段性,从需求评审、设计评审、单元测试到集成测试、系统测试等,从测试计划、测试设计再到测试执行、测试报告,一个阶段一个阶段往前推进,但敏捷测试更强调持续测试、持续的质量反馈,没有明确的阶段性界限。

(3)传统测试强调测试的计划性,而敏捷测试更强调测试的速度和适应性,侧重计划的不断调整以适应需求的变化。

(4)传统测试强调测试是由“验证”和“确认”两种活动构成的,而敏捷测试没有这种区分,始终以用户需求为中心,每时每刻不离用户需求,将验证和确认统一起来。

(5)传统测试关注测试文档,包括测试计划、测试用例、缺陷报告和测试报告等,要求严格遵守文档模板,强调测试文档评审的流程与执行等,而敏捷测试更关注产品本身,关注可以交付的客户价值。敏捷测试中,强调面对面的沟通、协作,强调持续质量反馈、缺陷预防。

(6)传统测试鼓励自动化测试,但自动化测试的成功与否对测试没有致命的影响,但敏捷测试的基础就是自动化测试,敏捷测试是具有良好的自动化测试框架支撑的快速测试。

标签:运维,项目,DevOps,部门,测试,敏捷,对比
From: https://www.cnblogs.com/miaojjblog/p/16623733.html

相关文章

  • NIG-AP:自动化渗透测试的新方法
    目录NIG-AP:自动化渗透测试的新方法一、摘要二、背景知识介绍三、算法实现四、实验评估五、总结文章信息NIG-AP:自动化渗透测试的新方法一、摘要本文提出了一种NIG-AP信......
  • pytest系列——allure(四)之在测试用例添加描述(@allure.description())
    前言allure支持往测试报告中对测试用例添加非常详细的描述语用来描述测试用例详情;这对阅读测试报告的人来说非常的友好,可以清晰的知道每个测试用例的详情。allure添加描......
  • 软件测试内容
    学习并了解业务,分析需求点测试需求分析的目的:把用户需求转化为功能需求对测试范围进度量对处理分支进行度量对需求业务的场景进行度量明确其功能对应的输入、处理......
  • pytest系列——allure(二)之添加测试用例步骤(@allure.step())
    前言在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景,一般流程性的测试用例的测试步骤比较多,我们在测试用例中添加详细的步骤会提高测试用例的可阅读性......
  • 解决在 Spring Boot 中运行 JUnit 测试遇到的 NoSuchMethodError 错误
    在本文章中,我们将会解决在SpringBoot运行测试的时候,得到 NoSuchMethodError 和 NoClassDefFoundError 的JUnit错误。这个错误的原因,通常是因为我们的系统中有2......
  • Monkey测试详解
    一、测试工具Monkey是什么?Monkey是AndroidSDK提供的一个命令行工具,可以简单,方便地运行在任何版本的Android模拟器或实体设备上。Monkey就是猴子,Monkey测试,是指像猴子一样......
  • 自动化测试如何解决日志问题
    前言前几天在知识星球会员群里,有同学问了一个自动化测试实践中遇到的问题:持续集成的自动化用例很多,测试环境日志level为debug,日志量大概40G/每天,定位问题时日志查询很慢......
  • 测试用例模板
       用例编号功能模块用例标题前置条件操作步骤预期结果优先级测试结果备注 ......
  • WebApi传数据以及Postman测试
    1.参数传值代码截图postman截图postman结果截图2.参数传json数据2.1传一条数据代码截图postman截图postman结果截图2.2传一个集合(多条数据)代码截图pos......
  • 测试
    ceveqdqdceveqdqdDqceveqdqdceveqdqdceveqdqdDqceveqdqdDqceveqdqdceveqdqd......