关于敏捷:细说敏捷测试敏捷实战中的探索-京东云技术团队

52次阅读

共计 3109 个字符,预计需要花费 8 分钟才能阅读完成。

1 什么是麻利?

麻利开发是一种思维或方法论,就是通过一直迭代开发和增量公布,最终交付合乎用户价值的产品

麻利思维源于最后的《麻利宣言》:

【麻利软件开发宣言】

  • 个体和互动高于流程和工具;
  • 工作的软件高于详尽的文档;
  • 客户单干高于合同会谈;
  • 响应变动高于遵循打算;

《麻利宣言》代表麻利的价值观,麻利开发准则则帮忙咱们通过更灵便的形式思考开发方法和组织;具体十二条麻利开发准则:

  1. 咱们最重要的指标是通过继续一直地疾速交付有价值的软件使客户称心;
  2. 怅然面对需要变动,即便在 开发前期也一样。为了客户的竞争劣势,麻利过程掌控变动。
  3. 常常地交付可工作的软件,相隔几星期或一两个月,偏向于采取较短的周期。
  4. 业务人员和开发人员必须相互合作,我的项目中的每一天都不例外。
  5. 激发个体的斗志,以他们为外围搭建我的项目。提供所需的环境和声援,辅以信赖,从而达成指标。
  6. 不管团队内外,传递信息成果最好、效率最高的形式是面对面交谈。
  7. 可工作的软件是进度的首要度量规范。
  8. 麻利过程提倡可继续开发。责任人、开发人员和用户要可能独特维持其不掉稳固、连续。
  9. 坚定不移地谋求技术卓越和良好设计,麻利能力由此加强。
  10. 以简洁为本,它是激励缩小不表要工作量的艺术。
  11. 最好的架构、需要和设计出自自组织团队。
  12. 团队定期地反思如何进步功效,并依此调整本身的举止体现。

麻利开发模式

[]()

2 什么是麻利测试?

‘麻利测试’既不是一种测试方法,又不是一种测试形式,而是为了适应麻利开发而特地设计的一套残缺的软件测试解决方案。这个解决方案应该可能反对继续交付,涵盖所需的、正确的价值观、思维形式、测试流程,一系列优良的测试实际和更适宜的测试环境,以及自动化测试框架和工具。

麻利测试能够采纳目前已有的各种测试形式,与传统测试相比,侧重点有所不同,次要的差异是价值观、思维形式、流程和实际等。

麻利测试包含(但不限于)的测试流动:在工作中用具体的实例领导开发人员做测试,评审测试想法和假如,开发测试自动化,执行探索性测试,执行验证品质属性的测试,如性能、可靠性、安全性等。

2.1 传统测试和麻利测试的差异

[]()

3 麻利思维形式

包含 成长性思维、团队对品质负责的思维 高低为驱动的思维与用户思维

3.1 成长性思维

成长性思维其主旨是“请置信,你能够提高”,领有成长性思维的人置信人的能力是能够被造就的,总是致力并一直成长;能够承受失败,但不会成为失败者,充斥自信,心田有力量,认为明天的失败不代表今天会失败,置信本人的后劲是未知的,肯定能克服困难,于是越战越勇,最终走向胜利;

领有成长性思维的测试工程师和领有固定性思维的测试工程师的比照

[]()

3.2 对团队品质负责的思维

麻利中,咱们强调的是共担

测试人员守护品质,提供品质信息,甚至帮忙团队改良品质,天然很有价值,然而如果依赖测试来保证质量,那么其实是很难保证质量的,而且老本很高。应该让整个团队关注品质,从需要开始尽可能一次把事件做对,从而构建出高质量的产品,这对企业来讲更有价值效率更高老本更低。

3.3 上下文驱动的思维

在麻利测试中要意识到上下文是始终在变的,测试策略和办法也要依据上下文几时调整,一直优化,尽可能达到更无效、更高效的测试状态;上下文能够简略地了解为我的项目所处的环境,包含人员、危险变动、研发状态和质量标准等。

3.4 用户思维

从用户视角登程,从用户故事角度思考的思维形式;

4 scrum 模式下的 测试流程

[]()

Scrum 模式下的麻利测试六层有 7 项流动:测试的剖析与定义、测试计划、测试设计、BVT、继续测试、版本验收测试以及测试交付与反思,然而不能了解位 7 个阶段,许多互动都是并行的,包含打算、设计都是贯通整个迭代的。

  1. 测试剖析与定义,对用户故事进行需要评审,为每一个用户故事建设验收规范,确保它具备可测试性,并从业务需要触发,理解要做哪些测试,初步界定测试范畴
  2. 测试计划,这里指以后迭代的测试计划,包含进一步明确具体的业务要求和质量标准,制订测试指标,明确测试范畴和测试项,合成测试字母表辨认出测试危险并制订测试策略等。打算是一个笼罩整个迭代的过程,也就是后面所说的,要基于上下文一直调整或优化测试计划,只是在迭代打算时先写出初步的测试计划,依照打算开始执行后续的测试过程。
  3. 测试设计,这里强调的是粗粒度的测试设计,包含事件流图、状态图等
  4. BVT(build verification testing)版本构建测试,每日构建或代码提交触发的软件版本构建,须要对软件版本进行主动验证,只有高成功率的继续集成才有意义。
  5. 岂但包含传统的冒烟测试,也包含代码扫描,查看代码规范性,安全性等 动态代码剖析。
  6. 继续测试是在迭代中的次要流动,包含设计评审、单元测试、用户故事实现的验证和集成测试等,也蕴含继续的新功能测试和继续的回归测试,以及性能测试、平安测试、兼容性测试等专项测试
  7. 版本验收测试。麻利的验收测试通常是指对用户故事的验收规范验证。
  8. 测试交付与反思。测试交付还包含品质剖析,并要回顾、扫视整个测试过程,找到测试不加的中央,从而在下一个迭代版本中改良。

5 麻利模式下如何发展测试?

5.1 构建弱小的麻利测试根底设计

继续集成和继续测试
继续集成(continuous integration,CI),在 1998 年就被列入极限编程的外围工夫。2006 年 马丁 福勒提出了比较完善的办法和实际:
继续集成是一种软件开发实际,即团队开发成员常常集成他们的工作,通常每个成员每天至多集成一次,这也就意味着每天可能会产生屡次集成,每次集成都通过自动化的构建(测试)来验证,从而尽快发现集成谬误。
继续交付(continuous delivery CD),继续交付是一种能力,可能以可继续形式,平安、疾速底把代码编程(包含个性、配置、缺点和试验)部署到生产环境上,让用户应用。

在继续集成中的测试流动
通过与自动化测试工具 / 框架的集成,在继续集成环境中执行自动化测试,然而这里须要思考继续集成中测试范畴和提供疾速反馈之间的均衡,个别继续集成自动化测试流动应该只蕴含 单元测试、代码动态测试和 BVT(基本功能验证)

[]()

测试左移:代码评审,有助于提前发现缺点,进步代码规范性进而促成研发团队常识共享。

5.2 麻利测试的设计和执行

1)创立 DOD
用户故事 DOD 维度
迭代 DOD 维度
公布版本 DOD 维度

DoD(definition of done) 工作实现的定义。在迭代初为一个迭代建设 DOD,并且在迭代实现时查看实现状况。

  • 所有代码通过动态检测,重大问题都已批改;
  • 所有新增代码失去人工评审;
  • 所有实现的用户故事都有对应的测试用例;测试用例都已执行;
  • 所有实现的用户故事失去 Product Owner 的验证。
  • ……

2)将用户故事转化成测试场景
3)摸索式测试和角色扮演的场景开掘
4)自动化测试、UI 自动化测试

5.3 测试右移

把软件测试从研发阶段延长到运维阶段,从研发阶段的继续测试延长到部署上线后的在线监控和在线测试。

1)在线性能测试

  • 全链路压测
  • 在线性能监控
  • 流量回放

2)AB 测试
经营剖析伎俩依据用户的不同反馈采取进一步的产品设计计划。

3)监控正告零碎
4)安全性监控
5)混沌工程

在受控的状况下,提前发现生产环境中的薄弱环节,进步零碎的可用性。但可用性的进步不能齐全依赖混沌工程,更为重要的是为零碎弹性做好设计。

6)智能运维与测试

6 分析测试后果和评估测试工作的品质

1)须要度量哪些方面:
测试品质(测试覆盖率,bug 脱漏率)和测试效率(测试用例设计、执行、自动化转化率,缺点验证周期等)

2)数据驱动改良

  • 做好测试过程、产品质量相干的数据收集工作
  • 做好数据的抽取与剖析
  • 度量后果的数据可视化出现
  • 更深刻地进行数据挖掘,找出更有价值的数据。

作者:京东物流 史松浩

起源:京东云开发者社区

正文完
 0