测试驱动的编程是XP困扰程序员的一个方面。
对于测试驱动的编程意味着什么以及如何去做,大多数人都做出了不正确的假设。
这个月,XP方面的讲师兼Java开发人员RoyMiller谈论了测试驱动的编程是什么,它为什么可以使程序员的生产力和质量发生巨大变化,以及编写测试的原理。
请在与本文相随的论坛中提出您就本文的想法,以飨笔者和其他读者。
(您也可以单击本文顶部或底部的“讨论”来访问该论坛。
)最近50年来,测试一直被视为项目结束时要做的事。
当然,可以在项目进行之中结合测试,测试通常并不是在所有编码工作结束后才开始,而是一般在稍后阶段进行测试。
然而,XP的提倡者建议完全逆转这个模型。
作为一名程序员,应该在编写代码之前编写测试,然后只编写足以让测试通过的代码即可。
这样做将有助于使您的系统尽可能的简单。
先编写测试XP涉及两种测试:程序员测试和客户测试。
测试驱动的编程(也称为测试为先编程)最常指第一种测试,至少我使用这个术语时是这样。
测试驱动的编程是让程序员测试(即单元测试―重申一下,只是换用一个术语)决定您所编写的代码。
这意味着您必须在编写代码之前进行测试。
测试指出您需要编写的代码,从而也决定了您要编写的代码。
您只需编写足够通过测试的代码即可―不用多,也不用少。
XP规则很简单:如果不进行程序员测试,则您不知道要编写什么代码,所以您不会去编写任何代码。
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。
本文从开发人员使用的角度,介绍了TDD优势、原理、过程、原则、测试技术、Tips等方面。
背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。
国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。
最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。
其中比较基础、关键的一个技术就是测试驱动开发(Test-DrivenDevelopment)。
虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。
下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解、掌握、应用这种技术。
下面分优势,原理,过程,原则,测试技术,Tips等方面进行讨论。
1.优势TDD的基本思路就是通过测试来推动整个开发的进行。
而测试驱动开发技术并不只是单纯的测试工作。
2023/9/24 18:44:46 360KB 测试驱动开发 TDD
1
目标利用流量控制的构建方法阅读和理解测试输出以开发工作程序更加熟悉测试驱动开发的概念关于本指南的注释之前,我们已经介绍了测试驱动的开发,阅读和理解RSpec测试的概念。
每次您运行learn来运行实验室的测试时,您都在运行RSpec测试套件-这就是我们在Learn上构建实验室的方式。
您已经阅读这些测试已有一段时间了,但是TDD是一个重要的话题,我们将在这里进行仔细研究。
仍然没有要求您编写自己的测试。
我们只是想了解测试的目的,稍微了解一下其背后的理念,以及更多关于如何更好地阅读RSpec测试的知识。
请记住,当我们引用RSpec或rspec,这等效于运行“learn或“learntest命令,该命令调用spec的“学习”测试文件。
您必须安装了learn-cogem。
如果您通过“学习”设置环境并且之前使用过“learn命令(很可能到目前为止已经做了),
2023/8/24 13:41:56 14KB Ruby
1
Python测试驱动开发:运用Django、Selenium和JavaScript进行Web编程非扫描版可编辑电子书
2018/3/2 5:46:02 10.95MB TDD Python
1
Python测试驱动开发:运用Django、Selenium和JavaScript进行Web编程非扫描版可编辑电子书
2018/3/2 5:46:02 10.95MB TDD Python
1
模型验证小型框架,用于检查模型是否正确验证。
对于模型开发的TDD(测试驱动开发)方法,我也很有用。
它几乎可以与任何测试框架一起使用!从NuGet安装它::主要特点检查模型验证明际上是否因错误的值而失败。
检查是否已测试所有属性。
检查是否已测试所有类级别的验证属性。
检查是否已测试所有属性级别验证属性。
检查错误消息实际上是否正确。
例C#查询示例:[YoungSkywalker]//Surname==Skywalker&&Age<25publicclassRebel{[Required][MaxLength(10)]publicstringName{get;set;}[Required]publicstringSurname{get;set;}[Range(10,900)]publicintAge{get;set;}[RebelWeapon]//Color
2021/9/9 10:39:35 33KB validation aspnetcore aspnet aspnet-mvc
1
测试驱动开发》(中文版)设想把编程看成是转动曲柄从井里提一桶水上来的过程。
如果水桶比较小,那么仅需一个能自由转动的曲柄就可以了。
如果水桶比较大而且装满水,那么还没等水桶全部被提上来你就会很累了。
你需要一个防倒转的装置,以保证每转一次可以休息一会儿。
水桶越重,防倒转的棘齿相距越近。
测试驱动开发中的测试程序就是防倒转装置上的棘齿。
一旦我们的某个测试程序能工作了,你就知道,它从现在开始并且以后永远都可以工作了。
相比于测试程序没有通过,你距离让所有的测试程序都工作又近了一步。
现在我们的工作是让下一个测试程序工作,然后再下一个,就这样不断进行。
分析表明,要编程解决的问题越难,每次测试所覆盖的范围就应该越小。
2020/6/15 1:32:45 35.27MB 测试驱动开发 带书签 完整中文版
1
测试驱动开发:实战与模式解析,测试驱动引荐书籍
2017/11/10 8:52:31 6.9MB 测试驱动
1
自动化测试(automatedtesting)在好多书籍中被引见了,但很少注意讲怎样去组织这些测试。
当测试写的越多时,很难知道把这些测试放到哪或者用什么去调用它们。
在极限编程---ExtremeProgramming(xp),测试驱动开发Test-DrivenDevelopment(TDD)盛行的时代,这成了一个很大的问题。
你可以把测试驱动开发(TDD)认为是"Developmentthroughtesting"开发由经测试。
 TDD的主要条款:在任何代码片段之前,必须先写好自动检测这段代码功能的程序。
既然代码不存在,那么测试在一开始就失败。
在测试通过之后,复制的代码必须删掉。
 象这样的方式每
2020/1/12 5:23:49 268KB 测试实践:Eclipse之JUnit
1
测试驱动开发(TDD)已经是耳熟能详的名词,既然是测试驱动,那么测试用例代码就要写在开发代码的前面。
但是如何写测试用例?写多少测试用例才够?我想大家在实际的操作过程都会产生这样的疑问。
3月15日,我参加了thoughtworks组织的“结对编程和TDDOpenworkshop”活动,倾听了tw的资深咨询专家仝(tong2)键的精彩讲解,并在讲师的带领下实际参与了一次TDD和结对编程的过程。
活动中,仝键老师对到底写多少测试用例才够的问题,给出了下面一个解释:我们写单元测试,有一个重要的原因是用来防止自己犯低级错误的。
我们不能把写实现代码的人当作我们的敌人,一定要把全部情况都测到,以防止他们在里面
2015/7/19 20:24:39 176KB TDD中的单元测试写多少才够?
1
火龙果软件工程技术中心介绍现在IT开发人员比以往任何时候都愈加关注测试的重要性,没有经过良好测试的代码更容易出问题。
在极限编程中,测试驱动开发已经被证明是一种有效提高软件质量的方法。
在测试驱动的开发方式中,软件工程师在编写功能代码之前首先编写测试代码,这样能从最开始保证程序代码的正确性,并且能够在程序的每次演进时进行自动的回归测试。
单元测试是和开发人员最密切相关的测试类型。
它通常由开发人员编写和执行。
由于单元测试通常发生在错误产生之后不久,因此通过单元测试发现错误然后进行修正的代价通常比较小。
单元测试是如此重要,以至于一些极限编程爱好者主张任何未经测试的代码都应该被自动删除。
JUnit是Jav
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡