软件测试指南

我是在瀑布时代,测试被视为编程的单独活动,由不同的人完成,并在编程完成后进行。转向迭代和敏捷方法,特别是影响极限编程,已经改变了测试的角色——提高了它的重要性,并将它与核心开发工作集成在一起。

在我的哲学的核心,测试是我们想写自我测试代码,这意味着我们有一套自动化测试,可以轻松地针对代码库运行。我们应该有信心,这个套件将捕获软件中几乎所有的bug,这样当这个套件“变绿”(通过)时,我们就可以将该软件版本发布到生产环境中。这种环境既可以大大提高我们软件的健壮性,也可以使我们使用188app彩票ios在未来几个月提高我们的生产力和响应能力。

Martinfowler.com关于测试软件系统的材料指南。

自我测试代码

自我测试代码是我使用的名称188app彩票ios要参考与功能软件一起编写综合自动化测试的实践。如果做得好,您就可以调用执行测试的单个命令——并且您相信这些测试将揭示代码中隐藏的任何bug。

规范的例子

我在2002年在2002年在XP /敏捷宇宙中参加了研讨会,当时“按示例的规范”将我视为描述测试的角色之一XP.

由马丁

2004年3月18日

阅读更多…

bliki

测试需求分析

测试驱动开发

测试驱动开发(TDD)是一种构建软件的技术,它通过编写测试来指导软件开发。188比分直播完整手机版它是由Kent Beck作为极限编程的一部分。本质上,你要重复遵循三个简单的步骤:

由马丁

2005年3月5

阅读更多…

bliki

测试编程风格


你应该做哪些检查?

有许多形式的测试,这取决于他们试图验证什么,他们覆盖的代码库的范围,以及他们在软件过程中的角色。查看你的测试组合的一个流行方法是“测试金字塔”。

测试金字塔

测试金字塔是一种思考如何使用不同类型的自动化测试来创建平衡的投资组合的方式。它的要点是你应该有更多的低级别的单元测试比高水平BroadStackTests通过GUI运行。

由马丁

2012年5月1日

阅读更多…

bliki

测试

实用考试金字塔

“测试金字塔”是一个隐喻,告诉我们将软件测试分组到不同粒度的桶中。它还介绍了我们在每个组中应该有多少测试。虽然测试金字塔的概念已经存在了一段时间,但团队仍然努力将它放在实践中。本文重新审视了测试金字塔的原始概念,并显示了如何将其付诸实践。它显示了在金字塔的不同级别中寻找哪种测试,并提供了如何实现这些的实际示例。

由火腿Vocke

2018年2月26日

阅读更多…

文章

测试

微服务体系结构中的测试策略188比分直播网 坚持原创

在过去的几年中,基于服务的架构已经向更小、更集中的“微”服务转变。188比分直播网 坚持原创这种方法有很多好处,比如能够独立部署、扩展和维护每个组件,以及跨多个团队进行并行开发。但是,一旦引入了这些额外的网络分区,就需要重新考虑应用于流程应用程序中的单片集成的测试策略。在这里,我们计划讨论管理多个独立可部署组件的额外测试复杂性的许多方法,以及如何在多个团队分别充当不同服务的监护人的情况下,使测试和应用程序保持正确。

托比克莱姆森

2014年11月18日

阅读更多…

infodeck.

受欢迎的测试infodecksmicroservices


分类测试

很多人根据测试的目的和范围将其分类为不同的类别——但可悲的是,很少有人用相同的分类来表示相同的东西。以下是我如何对事物进行分类的方法,我试着让这个网站上的材料与这些分类保持一致。

单元测试

在软件开发中经常谈到单元测试,在我编写程序的整个过程中,我一直很熟悉这个术语188比分直播完整手机版。然而,就像大多数软件188比分直播完整手机版开发术语一样,它的定义非常模糊,当人们认为它的定义比实际的更严格时,我发现经常会出现混淆。

由马丁

2014年5月5日

阅读更多…

bliki

测试类别极限编程

广泛的堆栈测试

广泛的堆栈测试是一个测试大部分施用大应用的测试。它经常被称为端到端测试全堆栈测试.它与a相反组件,它只练习系统的明确定义部分。

由马丁

2013年4月22日

阅读更多…

bliki

测试类别

集成试验

集成测试确定独立开发的软件单元在彼此连接时是否能正确工作。这个术语已经变得模糊了,即使是在软件行业的分散标准下,所以我在写作中一直小心翼翼地使用它。特别是,许多人认为集成测试的范围必须很广,而在较窄的范围内可以更有效地完成它们。

由马丁

2018年1月16日

阅读更多…

bliki

测试类别

故事的测试

故事测试BusinessFacingTests用于描述和验证作为一个用户的故事.当一个故事被细化时,团队会创建几个故事测试,作为这个故事的验收标准。故事测试可以组合到软件的回归套件中,并提供从需求(用户故事)到测试以及(通过执行)到系统行为的可追溯性。故事测试通常BroadStackTests

由马丁

2013年4月24日

阅读更多…

bliki

测试类别不好的事情

合同的测试

最常见的使用testdouble.是当您与外部服务进行通信时。通常,这种服务正在由不同的团队维护,它们可能会受到缓慢和不可靠的网络,并且可能自己不可靠。这就是为什么测试双倍方便的原因,它会阻止您自己的测试缓慢而不可靠。但是,对双重的测试始终提出了双重确实是外部服务的准确表示的问题,如果外部服务改变合同,会发生什么?

由马丁

2011年1月12

阅读更多…

bliki

测试类别

组件测试

组件测试是一个测试,将锻炼软件的范围限制在被测系统的一部分。与a相反BroadStackTest这是为了在合理的情况下尽可能多地行使这个系统。

由马丁

2013年4月22日

阅读更多…

bliki

测试类别

业务面临的测试

面向业务的测试是一种用于帮助与开发团队的非编程成员(如客户、用户、业务分析师等)进行交流的测试。当自动化时,它们用面向领域的术语来描述系统,忽略了系统本身的组件体系结构。188比分直播网 坚持原创面向业务的测试经常被用作验收标准,通过这样的测试表明系统提供了客户期望的功能。

由马丁

2013年4月24日

阅读更多…

bliki

测试类别

皮下测试

我使用皮下测试意味着一个在应用程序的UI下运行的测试。当您对应用程序进行功能测试时,这是巧妙的有价值的:当您想要测试端到端行为时,但难以通过UI本身进行测试。

由马丁

2011年2月14日

阅读更多…

bliki

测试类别

阈值测试

阈值测试是插入A的测试部署障碍通过将当前构建的值与阈值进行比较来监控一些可测量的现象。如果当前构建的值传递阈值,则测试失败,无法构建。

由马丁

2013年9月12日

阅读更多…

bliki

测试类别


实施测试

良好的测试文化的很大一部分是设计测试基础结构,使其易于编写且高效的测试。

试验双

Gerard Meszaros是在书上工作捕捉模式,以便使用各种XUNIT.框架。他遇到的一个棘手的问题是,存根、模拟、假冒、假人以及其他人们用来排除用于测试的系统部分的东西的各种各样的名称。为了解决这个问题,他想出了自己的词汇,我认为这值得进一步推广。

由马丁

2006年1月17日

阅读更多…

bliki

测试

XUNIT.

XUnit是一系列在软件开发人员中广为人知的测试框架的家族名称。的派生名称JUnit,其中第一个广为人知。

由马丁

2006年1月17日

阅读更多…

bliki

测试

模拟没有存根

术语“模拟对象”已经成为一个流行的术语,用来描述模拟真实对象进行测试的特殊情况对象。现在,大多数语言环境都有框架,可以方便地创建模拟对象。然而,经常没有意识到的是,模拟对象只是特殊情况测试对象的一种形式,它支持不同风格的测试。在本文中,我将解释模拟对象是如何工作的,它们如何鼓励基于行为验证的测试,以及它们周围的社区如何使用它们来开发不同风格的测试。

由马丁

2007年1月2

阅读更多…

文章

受欢迎的测试

xUnit测试模式

本世纪,程序员测试有了显著的增长,程序员负责为自己的代码编写测试。我们发现这有助于减少bug,使API设计更容易思考,并支持重构。188app彩票ios这在很大程度上归功于xUnit系列的简单测试框架,它起源于Kent Beck和Erich Gamma的工作。但是,尽管xUnit是一个简单的工具,但有效地使用它需要经验和技能。Gerard Meszaros是这些工具和使用模式来帮助人们学习软件设计技术的思想的早期采纳者。它提供了一个词汇来帮助我们交流如何使用测试,并为有经验的实践者将他们的知识传递给新一代提供了一个基础。

由杰拉德Meszaros

2007年

阅读更多…

后藤失败、心脏出血和单元测试文化

2014年初发现了两个计算机安全漏洞:苹果(Apple)的“goto fail”漏洞和OpenSSL的“Heartbleed”漏洞。两者都有可能出现广泛而严重的安全故障,其严重程度我们可能永远不会知道。考虑到它们的严重性,软件开发专业人员考虑如何检测它们是很重要的,这样我们就可以提高我们在未来188比分直播完整手机版防止这些缺陷的能力。本文考虑了单元测试可以扮演的角色,展示了单元测试以及更重要的单元测试文化是如何识别这些特定的bug的。文章接着分析了这种文化的成本和收益,并描述了谷歌是如何灌输这种文化的。

迈克平淡

2014年6月3日

阅读更多…

文章

测试

消除测试中的非决定论

一个自动化的回归套件可以在软件项目中扮演重要的角色,对于减少产品中的缺陷和进化设计来说都是有价值的。在与开发团队的交谈中,我经常听到关于非确定性测试的问题——有时通过,有时失败的测试。不受控制的、不确定的测试会完全破坏自动化回归套件的价值。在本文中,我概述了如何处理非确定性测试。最初的隔离有助于减少它们对其他测试的损害,但您仍然需要尽快修复它们。因此,我将讨论导致不确定性的常见原因的处理方法:缺乏隔离、异步行为、远程服务、时间和资源泄漏。

由马丁

2011年4月14日

阅读更多…

文章

持续交付测试

测试癌症

由于我的职业已经变成了全职作者,我经常担心自己与日常软件开发的现实脱节。188比分直播完整手机版我见过其他名人与现实脱节,我担心同样的命运。我对此最大的阻力来自ThoughtWorks,它是让我脚踏实地的一剂现实药。金宝搏亚洲体育博彩

金宝搏亚洲体育博彩思考作业也充当了该领域的思想来源,我喜欢写作我同事发现和发展的有用事物。通常这些都是有用的想法,我希望我的一些读者能够使用。我今天的主题并不是一个愉快的话题。这是一个问题,我们没有答案。

由马丁

2007年12月6日

阅读更多…

bliki

测试不好的事情

测试覆盖率

我不时地听到人们问他们应该以测试覆盖率(也称为代码覆盖率)的价值为目标,或者自豪地陈述他们的覆盖率级别。这种说法没有抓住要点。测试覆盖对于寻找代码库中未测试的部分是一个有用的工具。测试覆盖率作为测试好坏的数字声明用处不大。

由马丁

2012年4月17日

阅读更多…

bliki

测试指标

测试影响分析的兴起

测试影响分析(TIA)是一种加快构建的测试自动化阶段的现代方法。它的工作原理是分析源代码的调用图,以确定在更改生产代码后应该运行哪些测试。微软已经在这种方法上做了大量的工作,但是开发团队也可以以相当低的成本实现一些有用的东西。

保罗Hammant

2017年8月22日

阅读更多…

文章

测试

TDD死了吗?

Ruby在Rails的Ruby创造者的David Heinemeier Hansson给了一个主题在铁路斯科夫,他宣称TDD已经死了。这在铁路和更广泛的软件开发社区中引起了可预测的大量争议。188比分直播完整手机版它也导致了大卫,肯特和我自己之间的一些有趣的对话。我们决定这些谈话有趣,其他人可能想看它们,所以录制了一系列视频环聊,我们讨论了TDD在软件开发中的作用。188比分直播完整手机版

肯特·贝克,马丁·福勒和大卫·海涅迈尔·汉森

2014年5月9日

更多…

视频

测试ruby

页面对象

当您针对网页编写测试时,您需要引用该网页内的元素,以便单击链接并确定显示什么。但是,如果您编写的测试直接操作HTML元素,那么您的测试将很容易受到UI变化的影响。页面对象使用特定于应用程序的API包装HTML页面或片段,允许您在不深入HTML的情况下操作页面元素。

由马丁

2013年9月10日

阅读更多…

bliki

测试封装web开发

自动初始化假

使用testdouble.是调用远程服务时。远程服务通常很慢,而且通常不可靠,因此使用double是使测试更快更稳定的好方法。

由马丁

2009年8月4日

阅读更多…

bliki

测试

谦卑的对象

某些程序元素本质上是困难的,甚至无法测试。因此,这些元素中的任何逻辑都容易出现错误,并且难以发展。要缓解此问题,请将尽可能多的逻辑移动,从难以测试的元素中,进入代码库的其他更友好的部分。通过使物体不谦虚,我们减少了他们怀有邪恶虫的机会。

由马丁

2020年4月29日(

阅读更多…

bliki

测试

现代嘲笑工具和黑魔法

现代模拟工具对我们使用遗留代码的能力的积极影响,以及使用这些工具可能产生的负面影响。

布雷特·l·Schuchert

2012年9月10日

阅读更多…

文章

测试

钟包装

如果需要在代码中获取当前日期或时间,不要直接访问该数据的系统例程。在它周围放置一些包装,允许您通过将“当前日期/时间”设置为特定值来覆盖它。这对于简化测试非常重要。

由马丁

阅读更多…

bliki

测试

对象的母亲

对象母类是一种用于测试的类,用于帮助创建用于测试的示例对象。

由马丁

2006年10月24日

阅读更多…

bliki

测试

测试资源池

我在翻看一些旧笔记时,发现了Rich Garzaniti给我的一个简单但有用的建议。

由马丁

2004年8月12日

阅读更多…

bliki

测试


自动化测试是不够的

尽管我提倡将自动自我测试作为有效开发工作的核心部分——这种测试不能完成您在测试或质量保证中需要完成的所有工作。自动化测试提供了一个很好的bug捕获网,但是您需要探索性测试来确定这个网是否真的覆盖了您需要的所有内容。虽然测试通常是在代码投入生产之前就应该完成的工作,但现在我们将监视和可观察性视为确定软件运行状况的重要工具。

QA在生产

传统上,QA专注于在释放到生产之前测试软件,以查看它是否已准备好此类版本。但越来越多的现代QA组织也将注意力关注在生产中运行的软件。通过分析日志和其他监控工具,他们发现对开发组织突出显示的质量问题。这种方法特别适用于使用持续交付的组织,将新版本的软件迅速和可靠地投入生产。

由Rouan Wilsenach

2017年4月4

阅读更多…

文章

持续交付测试

探索性测试

探索性测试是一种测试风格,强调学习、测试设计和测试执行的快速循环。探索性测试不是试图验证软件是否符合预先编写的测试脚本,而是探索软件的特征,然后将发现分类为合理的行为或失败。

由马丁

2019年11月18日

阅读更多…

bliki

测试

面向领域的可观测性

在我们的软件系统中,可观测性一直是有价值的,在这个云和微服务的时代更是如此。然而,我们添加到系统中的可观察性本质上是相当低层次和技术性的,而且似乎经常需要用对各种日志、工具和分析框架的笨拙、冗长的调用来丢弃我们的代码库。本文描述了一种模式,它可以清理这种混乱,并允许我们以一种干净、可测试的方式添加与业务相关的可观察性。

综合监测

综合监控(也称为语义监控)定期对实时生产系统运行应用程序的自动化测试的子集。结果被推送到监视服务中,当出现故障时将触发警报。这种技术结合了自动化测试和监视,以检测生产中失败的业务需求。

作者:Flávia Falé和Serge Gebhardt

2017年1月25日

阅读更多…

bliki

持续交付测试