单元测试的五个主要准则.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单元测试的五个次要准绳 2021-12-30 自动化测试是全部大型软件项目不行或缺的一部分。它是提高质量、生产力和机警性的一种手段。因而,对系统架构进行合理地设计以便利后续的开发和自动化测试变得至关重要。 自动化测试的好处 1、质量得以提高 由于自动化测试让我们能在开发阶段早日发觉并处理问题,这避开了在变更部署到生产环境并提交给最终用户使用时发觉问题。 2、生产力得到提高 由于在开发周期中发觉问题的时间越早,修复该问题的成本越低,这不言而喻。假如软件开发人员能够在将代码集成到主代码仓库前运转自动化测试套件,那么可以快速发觉新引入的 bug 并将其修复。但是,假如没有这样的测试套件,那么新引入的 bug 可能仅在最终用户使用测试阶段中消灭,甚至消灭更晚,这会导致开发人员暂停常规开发工作流程来对 bug 进行调查和修复,影响项目进度。 3、机警性得到改善 有了测试套件的挂念,开发人员在进行代码重构、升级代码依靠包及修改系统特性时会更有决心,由于测试套件有格外高的测试掩盖率,可以便利地评估代码变更带来的影响。 在争辩自动化测试时,我也宠爱将风险管理的话题引入进来。作为首席软件工程师,风险管理是我工作的重要组成部分,它涉及指点开发团队进行工作和流程管理,削减产品技术退化的风险。从上面列出的好处中可以明显看出,进行充分的自动化测试格外必要,这可以挂念减轻软件项目中的风险。 自动化测试类型 接下来,我们可以依据实现和运转自动化测试的策略将其分为至少三种不同类型,如下图有名的测试金字塔所示: 从时间和资源使用而言,单元测试的开发及运转成本低,并且单元测试专注于测试与外部依靠项隔离的单个系统组件(例如,业务规律)。 集成测试向前更进一步,并且在不隔离外部依靠关系的情况下进行开发和运转。在这种情况下,我们有爱好评估全部系统组件构建在一起并面临集成约束(例如:联网、存储、处理等)时能否按预期进行交互。 最终,在金字塔的顶端,GUI 测试是整个自动化测试中代价最高的。他们通常依靠 UI 输入/输出脚本以及回放工具来仿照最终用户与系统图形用户界面的交互。 在本文中,我们将重点引见测试金字塔的基础——单元测试,以及接受单元测试的系统体系结构在构建时的留意事项。 有效单元测试的属性 首先,让我们说明一下什么是有效的,设计良好的单元测试。 · 简短——只要一个测试目的 · 简约——设置及拆卸便利 · 快速——可以快速执行 · 标准——遵照严格的商定 抱负情况下,单元测试应具有全部上述这些属性,下面将具体说明缘由。 假如单元测试不够简短,将很难阅读并理解其目的,精确?????地说是很难理解测试内容。因而,出于这个缘由,单元测试应当有一个明确目标,并且只评估测试一件事,而不是尝试同时执行多个测试目的。这样,当某个单元测试失败时,开发人员将愈加轻松快捷地定位问题并进行修复。 假如单元测试需要大量精力来设置他们的测试环境,然后将其拆除,那么开发人员通常会开头质疑,花费在编写这些测试上的时间能否值得。因而,我们需要供应一个编写单元测试的环境,该环境要管理测试上下文的全部简单性,例如依靠注入,数据预加载,缓存清除等。编写单元测试越简约,开发人员创建它们的动力就越大! 假如执行一组单元测试需要花费大量时间,则开发人员自然会削减执行频率。这里的问题在于拥有如此冗长的单元测试套件变得不切实际,开发人员会跳过运转单元测试或有选择地运转,从而降低了其有效性。 最终,假如测试没有肯定的标准,不久之后你的测试套件开头看起来像未拓荒的美国西部一样,编写单元测试所使用的编码风格有时会有所不同,甚至会发生冲突。因而,在整个单元测试的范围内追求系统设计的连贯性在整个系统中都是有价值的。 一旦我们对有效的单元测试的架构达成共识,就可以开头定义提升其功能的系统架构准绳,如以下各节所述。 01软件简单度 除其他因素以外,软件简单度还源于系统内组件之间不断添加的交互及其内部形态的演化。随着简单度的提高,无意识地干扰简单的组件交互网络的风险也随之添加,这可能导致在代码变更时引入缺陷。 此外,通常情况下,系统的简单性越高,维护和测试就越困难,这引出第一个(一般)准绳: 亲密关注软件的简单度并遵照设计准绳来把握它 在提高测试功能的同时管理简单性的方面,值得一提的一个实践方法是,在系统设计中尽可能接受纯函数和不变性。纯函数是具有以下属性的函数: · 对于相同的参数,其前往值是相同的(不随局部静态变量,非局部变量,可变引用参数或来自I/O设备的输入的变化而变化)。 · 它的评估测试不会产生副作用(局部静态变量,非局部变量,可变引用参数或I/O流不会因测试遭到影响)。 从其属性可以明显看出,纯函数格外适合单元测试。它们的使用也衰退了很多补充性实践的需求,这些补充性实践将在以下各节中争辩,以处理大

文档评论(0)

bob157641554 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档