首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试方法除了测试优先和测试最后?那么它们的变体呢?

单元测试方法除了测试优先和测试最后?那么它们的变体呢?
EN

Software Engineering用户
提问于 2014-12-03 02:43:02
回答 1查看 576关注 0票数 1

我想知道,除了传统的和tdd的单元测试方法之外,是否还有其他的方法,无论是旧的还是新的,以及它们是否可行。

我知道有行为驱动的开发,它也使用测试优先,但测试本身可以用作规范。什么其他人?

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-12-03 06:18:22

我认为没有更多,你可能是“接近”完整的图片(至少是我所知道的图片),所以我会给你一个列表的热门词。

  • 没有测试:不要使用!
  • 最后测试:从过去的旧垃圾,如医生不洗手或会计师试图跳过复式簿记。总比没有测试好,但还是不使用。
  • 测试-第一:要做的事情,但要做好,见TDD。
  • TDD:测试优先的形式化方法,基于测试驱动开发的三个定律,驱动我们通过一个红色绿色重构循环。
  • ATDD:测试的应用--验收测试的第一步。这3条规则从“写”改为“选”,因为我们通常不想等着写进一步的验收测试才能通过当前的验收测试。
  • 转换优先级前提:我们应该记住的转换序列,以便知道接下来使用哪些测试启动哪些测试,编写哪些测试(TDD)或挑选/添加(ATDD)。
  • 答:安排,行动,断言-测试用例的三个主要步骤。
  • 4A:3A的延伸:安排、行动、断言、消灭。别忘了打扫卫生。
  • BDD:将3A映射到良好的名称givenArrangement、whenAction、thenAssertion,理想的格式是非技术人员(如Gherkin )可读的文件格式。
  • 单断言-规则:每个测试用例只有一个逻辑断言。SRP在测试中的表现。
  • 模拟:用双测试替换组件/类/对象。用于覆盖测试所依赖的组件/类/对象所依赖的替换对象所需的接口。还用于加速测试(例如,假内存中的数据库将比真正的SQL db更快)。也有助于设计,特别是解耦,以减少固定和提高可重用性.本体:模拟扩展,间谍扩展,存根扩展,虚拟扩展抽象测试双重,假扩展抽象测试双重。但是,只有当它帮助您,例如,通过替换外部依赖项来加快测试速度时,才使用模拟。不要因为你能嘲笑而嘲笑,只有当你真正需要的时候才嘲笑。
  • 集成测试:测试组件/类/对象之间的组合交互。目前该行业最缺乏的领域,因为似乎没有人知道如何使这一部分正确。如果你想出名,就解决这个问题。

最后,什么是测试?测试是实际的需求规范。ppl用来称呼需求规范的实际上不是需求规范,而是需求模型(简化的和不完整的)。当我们发布软件时,我们并不是看一个屏幕上的代码和另一个屏幕上的需求文档,而是像检查清单一样检查它--而是运行测试。因此,测试是真正的需求规范。

与所有的准则和法律一样,在不遵守这些准则和法律时,也要作出判断。您不想告诉您的客户他们的信用卡被盗,因为您首先必须为您的客户发现的SQL注入错误编写测试。但是,您也不想告诉客户端他们的信用卡被盗,因为在修复了SQL注入错误之后,您没有编写测试来验证修复并查找更多类似的bug。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/264405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档