When Programmers and Testers Collaborate
When Programmers and Testers Collaborate
Janet Gregory
SOMETHING MAGICAL HAPPENS when testers and programmers start to col- laborate. There is less time spent sending bugs back and forth through the defect tracking system. Less time is wasted trying to figure out whether some- thing is really a bug or a new feature, and more time is spent developing good software to meet customer expectations. There are many opportunities for starting collaboration before coding even begins.
Testers can help customers write and automate acceptance tests using the lan- guage of their domain with tools such as Fit (Framework for Integrated Test). When these tests are given to the programmers before the coding begins, the team is practicing acceptance test–driven development (ATDD). The program- mers write the fixtures to run the tests, and then code to make the tests pass. These tests then become part of the regression suite. When this collaboration occurs, the functional tests are completed early, allowing time for exploratory testing on edge conditions or through workflows of the bigger picture.
We can take it one step further. As a tester, I can supply most of my testing ideas before the programmers start coding a new feature. When I ask the pro- grammers if they have any suggestions, they almost always provide me with information that helps me with better test coverage, or helps me to avoid spending a lot of time on unnecessary tests. Often, we have prevented defects because the tests clarify many of the initial ideas. For example, in one project I was on, the Fit tests I gave the programmers displayed the expected results of
184 97 Things Every Programmer Should Know

a query to respond to a wildcard search. The programmer had fully intended to code only complete word searches. We were able to talk to the customer and determine the correct interpretation before coding started. By collaborating, we prevented the defect, which saved us both a lot of wasted time.
Programmers can collaborate with testers to create successful automation as well. They understand good coding practices and can help testers set up a robust test automation suite that works for the whole team. I have often seen test automation projects fail because the tests are poorly designed. The tests try to test too much, or the testers haven’t understood enough about the technol- ogy to be able to keep tests independent. The testers are often the bottleneck, so it makes sense for programmers to work with them on tasks like automa- tion. Working with the testers to understand what can be tested early, perhaps by providing a simple tool, will give the programmers another cycle of feed- back that will help them deliver better code in the long run.
When testers stop thinking that their only job is to break the software and find bugs in the programmers’ code, programmers stop thinking that testers are “out to get them,” and are more open to collaboration. When programmers start realizing that they are responsible for building quality into their code, testability of the code is a natural by-product, and the team can automate more of the regression tests together. The magic of successful teamwork begins.
When Programmers and Testers Collaborate的更多相关文章
- What is the PPA and How to do with it ?
Part of the appeal of Ubuntu is its six-month release cycle. Every six months a new version of the f ...
- (转)Awesome Courses
Awesome Courses Introduction There is a lot of hidden treasure lying within university pages scatte ...
- 简单介绍--TOSCA自动化测试工具
1.工具源自 TOSCA由公司Tricentis研发.这是一家来自奥地利的软件初创企业,专门帮助企业开发团队进行自动化软件测试.(百科) TOSCA的思想是,不用会编程的测试人员可以直接上手自动化. ...
- 10 Unit Testing and Automation Tools and Libraries Java Programmers Should Learn
转自:https://javarevisited.blogspot.com/2018/01/10-unit-testing-and-integration-tools-for-java-program ...
- penetration testers渗透测试,hack,vnc,nat,
penetration testers渗透测试,hack,vnc,nat,
- Functional Jobs // Hire Functional Programmers In Less Time
Functional Jobs // Hire Functional Programmers In Less Time Hire Functional Programmers Quick Save T ...
- learning - Haskell AND Lisp vs. Haskell OR Lisp - Programmers Stack Exchange
learning - Haskell AND Lisp vs. Haskell OR Lisp - Programmers Stack Exchange Haskell AND Lisp vs. Ha ...
- 【翻译】Why JavaScript Is and Will Continue to Be the First Choice of Programmers
花费2半小时,那么最终会被翻译.假设有问题,请提出,毕竟,自己的6不超过级别. 附加链接 Why JavaScript Is and Will Continue to Be the First Cho ...
- Learn golang: Top 30 Go Tutorials for Programmers Of All Levels
https://stackify.com/learn-go-tutorials/ What is Go Programming Language? Go, developed by Google in ...
随机推荐
- TIDB 安装
https://my.oschina.net/dmdgeeker/blog/718564 SQL 层一直是用 Golang 在开发,存储引擎 TiKV 用的 Rust
- mysql之select,insert,delete,update
写在前面 上篇文章学习了创建数据库和数据表,这篇文章将学习对数据表的增删改查操作. 系列文章 mysql之创建数据库,创建数据表 一个例子 上篇文章中,创建了数据库和数据表,数据表中还没有数据,这里我 ...
- EasyMvc入门教程-基本控件说明(5)小图标
我们网页很多时候需要小图标来进行美化,EasyMvc默认提供了100多种常用小图标,您可以根据实际情况选择使用,请看下面的例子: @Html.Q().Ico().Type(EasyMvcHelper. ...
- selenium firefox46.0.1设置禁用图片
firefox_profile = webdriver.FirefoxProfile()firefox_profile.set_preference('permissions.default.ima ...
- ElasticSearch查询max_result_window问题处理
需要出一份印地语文章的表,导出规则为: 1.所有印地语(包含各种颜色,各种状态)的文章 2.阅读数大于300 3.按照阅读推荐比进行排序,取前3000篇文章 说明: 1.文章信息,和阅读推荐数量在两个 ...
- Injection of resource dependencies failed解决办法总结
今天调试项目代码,出现的引resource的报错,查原因查了好长时间才找到,现在这里总结一下,以免以后忘掉以及给大家参考. 报错大致内容入下: org.springframework.beans.fa ...
- AutoIt3常见问题解答
Q1 如何调试脚本? MsgBox(0,"测试",$var) ConsoleWrite("var=" & $var & @CRLF) Q2 ...
- uboot下netconsole的原理及用法
近期发现uboot下一个非常有意思也非常有用的功能:netconsole,uboot下的netconsole相似于kernel下的telnet等网络终端功能,将网络作为输入输出的终端,这样就便于我们在 ...
- 96Boards扩展板 STM32 B96B-F446VE 牛刀小试
前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正常的链接.图片显示,请访问我的博客原文: http://www.cnblog ...
- hibernate uuid