TotT系列
cleardo
这个作者很懒,什么都没留下…
展开
-
1.1 Testing on the Toilet背景介绍
Google的测试团队发明了一种提升团队测试水平的方式,该方式是“Testing on the toilet ”,简称TotT。TotT翻译成中文是“盥洗室测试法”,多有趣的名字。所以,有必要介绍一下TotT的起源。谷歌鼓励其工程师们用20%的时间去从事一些能激发工程师们个人兴趣的事情。这就意味着如果你有想法,你总是有时间去把你的想法付诸实践。BharatMediratta是一位谷歌软件工翻译 2016-10-27 21:00:08 · 1237 阅读 · 2 评论 -
测试状态与测试交互
作者:Andrew Trenk原文链接:http://googletesting.blogspot.tw/2013/03/testing-on-toilet-testing-state-vs.html通常有两种方法的单元测试可以验证测试代码是否工作正常:通过测试状态,或通过测试交互。它们之间的区别是什么呢?测试状态(方式)意味着,你要验证的是被测代码是否能返回正确的结果。翻译 2016-10-28 15:09:38 · 1673 阅读 · 0 评论 -
不通过GwtTestCase测试GWT
作者:佚名 原文链接:http://googletesting.blogspot.tw/2009/08/tott-testing-gwt-without-gwttest.html由于GWT(Google Web开发工具集)是新的,而且令人兴奋的是它很容易让人忽略那些累积了三十多年的GUI代码结构。GwtTestCase 很适合测试那些用Javascript编写的特定UI的代码。但如翻译 2016-10-28 14:58:45 · 923 阅读 · 0 评论 -
Truth:一个流畅的断言框架
作者:Dori Reuveni 、Kurt Alfred Kluever 原文链接:http://googletesting.blogspot.tw/2014/12/testing-on-toilet-truth-fluent.html作为工程师,我们花费大部分的时间来阅读现有的代码,而不是编写新的代码。因此,我们必须确保我们写的代码是清晰的、可读的。这同样适用于我们的测试;我翻译 2016-10-28 14:57:58 · 1310 阅读 · 0 评论 -
使用伪造,更好地测试
作者:Jonathan Rockway、Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2013/06/testing-on-toilet-fake-your-way-to.html在有了多年的博客经验后,你决定使用下博客平台的API。在使用后,你要思考:如何让你的代码可以不用跟服务器进行通讯而直接能工作?pub翻译 2016-10-28 14:56:59 · 604 阅读 · 0 评论 -
不要滥用Mock
作者:Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2013/05/testing-on-toilet-dont-overuse-mocks.html在编写测试代码的时候,使用Mock来规避代码依赖性是很容易的。public void testCreditCardIsCharged() {paymentProcesso翻译 2016-10-28 14:53:41 · 933 阅读 · 0 评论 -
基于用户行为的测试,而不是基于方法的测试
作者:Erik Kuefler原文链接:http://googletesting.blogspot.tw/2014/04/testing-on-toilet-test-behaviors-not.html在写完一个方法之后,很容易写一个测试用例来验证这个方法的所做的一切。但是,认为测试用例和公共方法应该是一比一的关系是不利于测试的。我们真正要测试的是用户的行为,一个简单方法可以包括很多翻译 2016-10-28 14:53:00 · 1245 阅读 · 0 评论 -
基于测试行为,而不是测试实现
作者:Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2013/08/testing-on-toilet-test-behavior-not.htmlCalculator类是最流行的开源项目之一,很多用户喜欢使用:publicclass Calculator {publicintadd(inta,intb)翻译 2016-10-28 14:52:12 · 1032 阅读 · 0 评论 -
转换测试信息的测试是有害
作者:Alex Eagle原文链接:http://googletesting.blogspot.com/2015/01/testing-on-toilet-change-detector-tests.html(有时)你只是完成了重构代码,但是没有修改代码的实际行为。在提交之前你执行了测试,结果…一连串单元测试可能会失败。当修复这些测试的时候,你会发觉你其实在对大部分单元测试做相同的机械翻译 2016-10-28 14:50:55 · 593 阅读 · 0 评论 -
用匹配器识字测试
作者:Zhanyong G. Mock Wan 原文链接:http://googletesting.blogspot.tw/2009/09/tott-literate-testing-with-matchers.html好吧,验证匹配器可以读取和写入,这听起来是一个好主意。但是这对我们程序员来说,具有什么意义呢?事实上,我们正在谈论编写测试的一种方式——这个方式使得测试代码以及代码翻译 2016-10-28 14:47:17 · 782 阅读 · 0 评论 -
提取函数让测试简单
作者:Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2007/06/tott-extracting-methods-to-simplify.html当一个方法很长、很复杂时,会难以测试。通过提取方法可以使这个方法变得简单:即在现有的复杂方法(或函数)中寻找某些代码,这些代码可以由方法调用(或函数调用)来替换。参考下面这个复杂的方法翻译 2016-10-28 14:43:55 · 578 阅读 · 0 评论 -
有效的测试
作者:Rich Martin原文链接:http://googletesting.blogspot.tw/2014/05/testing-on-toilet-effective-testing.html无论我们是在写一个独立的单元测试,还是在设计一个产品的整个测试过程,重要的是退一步思考 – 我们的测试能多有效地检测、报告代码中的错误。为了保证测试的有效性,每个测试需要最大限度地具备以下翻译 2016-10-28 14:42:35 · 592 阅读 · 0 评论 -
一个好的测试是什么
作者:Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2014/03/testing-on-toilet-what-makes-good-test.html单元测试是验证我们的代码是否正确的重要工具,但是编写一个好的测试不仅仅是为了验证正确性--- 一个好的单元测试应该体现其他更多的特性来确保可读性和可维护性。一个好翻译 2016-10-28 15:10:16 · 1246 阅读 · 0 评论 -
认识你的测试替身
作者:Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2013/07/testing-on-toilet-know-your-test-doubles.html测试替身在测试中用来代替真实的对象,就好比在电影中特技演员替身来代替演员一样。有时各类的测试替身都会被当成“mocks”,但实际上它们的用途是不同的,所以我们有必翻译 2016-10-28 15:11:07 · 3909 阅读 · 0 评论 -
风险驱动的测试
作者: Peter Arrenbrecht原文链接:http://googletesting.blogspot.tw/2014/05/testing-on-toilet-risk-driven-testing.html我们都习惯于依照代码来进行测试,如:单元测试,功能测试,UI测试等——这便是我们所有的工作内容。但别忘了,我们是专业人员,我们大多认为小版本的测试可以快速完成,而大项翻译 2016-10-28 12:11:46 · 1187 阅读 · 0 评论 -
更喜欢通过详细的实现类来测试公共API
作者: Andrew Trenk原文链接:http://googletesting.blogspot.tw/2015/01/testing-on-toilet-prefer-testing-public.html这个类需要测试吗?class UserInfoValidator { public void validate(UserInfo info){if (inf翻译 2016-10-28 14:38:03 · 751 阅读 · 0 评论 -
过多的测试
作者: 佚名原文链接:http://googletesting.blogspot.tw/2008/02/in-movie-amadeus-austrian-emperor.html在电影《莫扎特传》中,奥地利国王评论莫扎特的音乐中有“太多的音符”。对于一个功能来说,怎样的测试算“过多”呢?我们来看看decide方法: public void decide(int翻译 2016-10-28 14:39:02 · 664 阅读 · 0 评论 -
基于MVP应用框架的GUI测试
作者: 佚名原文链接:http://googletesting.blogspot.tw/2009/02/with-all-sport-drug-scandals-of-late.html由于最近的运动药物丑闻,近来已经很难找到一个好角色模型了。然而,当你的角色模型是一个领域模型(业务实体对象模型)时,你无需使用Model-View-Presenter来伪装成基于MVP应用框架。MV翻译 2016-10-28 14:39:48 · 696 阅读 · 0 评论 -
得到完美的匹配器
作者: Zhangyong G.Mock Wan原文链接:http://googletesting.blogspot.tw/2009/10/tott-making-perfect-matcher.html在上一期中,我们曾介绍过GoogleC ++ Mocking 框架的匹配器能使测试代码和测试输出更加易读。但万一无法找到合适的匹配器,这时你该怎么办?不要满足于任何不完美。不论是重翻译 2016-10-28 14:40:54 · 878 阅读 · 0 评论 -
使用EasyMock
作者:佚名原文链接:http://googletesting.blogspot.tw/2009/01/tott-use-easymock.html当前大家都意识到,mock和stub对象可以通过把要测试的类从外部依赖中独立出来使测试更简单。这与依赖注入相辅相成。尽管编写这些类是一件十分痛苦的过程。EasyMock为我们提供了一种选择。它动态的实现了那些能录制和回放你的期望行翻译 2016-10-28 15:18:50 · 1151 阅读 · 0 评论 -
如何避免C++里的友元函数难题
作者:佚名 原文链接:http://googletesting.blogspot.tw/2007/10/tott-avoiding-friend-twister-in-c.html在上一节课,我们在Python中提取方法来简化测试。这些提取的方法作为私有类成员是有用的,但是要如何编写产品代码使它不依赖于测试代码?在Python中这个很简单;但是在C++中,测试私翻译 2016-10-28 15:18:10 · 841 阅读 · 0 评论 -
让你的伪造保持简单
作者:佚名原文链接:http://googletesting.blogspot.tw/2009/01/tott-keep-your-fakes-simple.html当加利福尼亚的科学家想囚禁饲养秃鹰时遇到了一个问题。雏鸟不会从研究员手中吃食;它们需要它们的妈妈喂养它们。所以科学家拿了一个木偶,对于雏鸟来说,喂养它们的就像是它们的妈妈,但是在娃娃里实际是科学家的手。基于以下翻译 2016-10-28 15:17:15 · 805 阅读 · 0 评论 -
考虑下你的环境
作者:佚名 原文链接:http://googletesting.blogspot.tw/2008/10/tott-contain-your-environment.html许多模块必须访问它们的环境元素,这些元素在测试中可以说的上是十分重量级的。例如,文件系统或网络。为了使测试保持轻巧,我们可以模拟出这些元素。但是,如果没有可用的模拟接口,或者现有的接口会引入外部的依赖呢?翻译 2016-10-28 15:14:01 · 749 阅读 · 0 评论 -
别把逻辑带进测试代码
作者:Erik Kuefler原文链接:http://googletesting.blogspot.tw/2014/07/testing-on-toilet-dont-put-logic-in.html程序语言给予我们丰富的表达能力。诸如运算符和条件语句之类的方法是能帮我们在编写程序时处理有大范围输入的重要方法。但是这些灵活的运用是以增加复杂度为代价的,使的我们的程序更加难以理翻译 2016-10-28 15:13:04 · 908 阅读 · 0 评论 -
编写描述测试的名称
作者:Andrew Trenk 原文链接:http://googletesting.blogspot.tw/2014/10/testing-on-toilet-writing-descriptive.html你需要多久才能从下面的代码中了解什么行为正在被测试?@Test public void isUserLockedOut_invalidLogin() {auth翻译 2016-10-28 15:11:54 · 801 阅读 · 0 评论 -
调试 IDs:让web测试更简单
作者:RuslanKhamitov原文链接:http://googletesting.blogspot.tw/2014/08/testing-on-toilet-web-testing-made.html为Dom元素添加ID属性,能够更容易地编写DOM的交互测试(比如:WebDriver的测试)。例如,以下的DOM有两个按钮,只有标签内的文本不同:Save butt翻译 2016-10-28 14:41:54 · 825 阅读 · 0 评论