Why Johnny Can’t Test and Can Test-Driven Development Help: A People-Centered Analysis of Testing Orit Hazzan [Based on an invited talk at IBM, 14.11.2005]

Slides:



Advertisements
Similar presentations
Oral Presentations.
Advertisements

Gallup Q12 Definitions Notes to Managers
The Perfect Job Written and Presented by: Seikou Triangle.
#IWishMyTeam Growing Effective Agile Chief Scientist – Bouvet.no.
PS4: Test Driven Development Based on Test Driven Development by Example By Kent Beck.
Motivation Why are you doing it? These reasons may include a drive, a need, a desire to achieve a goal, a state of being, or an ideal. In human beings,
Performance Appraisals How Not to Hate Them. Why We Hate Them 1. They are a lot of work. Going back over the last year, remembering the highs and lows.
Patterns in Game Design Chapter 9: Game Design Patterns for Narrative Structures, Predictability, and Immersion Patterns CT60A7000 Critical Thinking and.
Motivation Are you motivated to achieve what you really want in life? And how hard do you push yourself to get things done? Wanting to do something and.
EXtreme.NET Dr. Neil Roodyn. eXtreme.NET Who is Dr. Neil? MISSION: To increase the value of your Software Business Working with software for way too long.
Project Work Playtesting + Postmortem. Plan for today Lecture + discussion Groups status report New Features /Changes in game engine LUNCH BREAK Group.
Quality assurance of agile software engineering Shipeng Xu.
Classroom Observations: Open Conversations about your Practice for student improvement. How do we change things? There is some magic stuff being done by.
Test-Driven Development “Test first, develop later!” –OCUnit.
Hannah Guldin Chrystol White Aimee Kanemori.  Form an alliance between the teacher and parent “Above all parents need to know that their child’s teacher.
© Telephone Doctor, Inc. | Business Friendly Customer Service.
thinking hats Six of Prepared by Eman A. Al Abdullah ©
SELF ESTEEM Character building and Emotions. Mental health- the ability to accept yourself and others, express and manage emotions, and deal with the.
Helpful Hints to Have Fun with Your Sports Team or Club We would like to help coaches and athletes cooperate together. Here is some suggestions on how.
Communication Skills Anyone can hear. It is virtually automatic. Listening is another matter. It takes skill, patience, practice and conscious effort.
LOCUS OF CONTROL Manishaa & Dayaanand.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
“DO Now” Open your TNT Student Workbook, and finish “Making a Decision” on Page 7. Make sure to circle the positives or negatives and total them up. When.
Goal Setting A projected state of affairs that a person plans to achieve A desired end point Desire, Intention, Purpose, Result It has been shown time.
Goal Setting The foundation of a plan for success includes goal setting and the achievement of goals.
OB : Building Effective Interviewing Skills Building Effective Interviewing Skills Structure Objectives Basic Design Content Areas Questions Interview.
purposes: scientific, business, diploma
Welcome Minnesota WIC PCS Mentors!
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
I am a Person Who… Re-Write and complete the following sentences as quickly as possible. Write the 1 st thing that comes to mind!! I am a person who likes.
Getting It Together: PRINCIPLES Objectives: Determine what it means to live a principled life. Determine what it means to live a principled life. Decide.
Helping Your Child Cope With Stress Building Resiliency.
Self-Esteem & Emotions. Learning Log  Name 3 or more mental challenges that you face everyday in school.  e.g.  Low test score  Failing to make a.
St. Peter the Apostle High School Sports Performance 15 Coaching (1) Lesson 3: Team Building.
Teamwork in Software Engineering. Main problems in teamwork Suggest problems of (general) teamwork. Suggest problems of software teams. Suggest solutions.
Bishop Loveday CE Primary School Help your child with reading Year Five.
Main, Music aur Woh. Lets play it together.
Social Media Roundup Bad social media: 7 Ways to lose your audience.
Wolcott High School School Counseling Department.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Helping Children Develop Healthy Attitudes Toward Stuttering J. Scott Yaruss, Ph.D. Stuttering Center of Western Pennsylvania University of Pittsburgh.
Office © 2013, WORK FAMILY & HEALTH NETWORK Manager Only Session.
Human Resources. Soon you will become a job-seeker… Once you understand what employers are looking for, you can begin building your skills and personal.
1 Legacy Code From Feathers, Ch 2 Steve Chenoweth, RHIT Right – Your basic Legacy, from Subaru, starting at $ 20,295, 24 city, 32 highway.
How to Improve Your Self-Esteem
Introduction to Public Speaking
Self-Esteem & Emotions. Learning Log  Name 3 or more mental challenges that you face everyday in school.  e.g.  Low test score  Failing to make a.
What is Personal Development? Personal development is a lifelong process. It’s a way for people to assess their skills and qualities, consider their aims.
Visions and Ventures. You can:  be your own boss.  do the kind of work you enjoy.  set your own working hours.  set up your office or workshop the.
Human Resources. Soon you will become a job-seeker… Once you understand what employers are looking for, you can begin building your skills and personal.
The Power of YET! The power of believing that you can improve. So when you can’t do something now – it is a can’t do it ‘YET’!
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Talking With Students About Mindsets. One day, in a class that is really important to You, and that you like a lot, the teacher returns an important paper.
Developing a growth mindset in the face of challenge
TEMPTATIONS OF A CONSULTANT As consultants we are susceptible to temptations just as the CEO described in Lencioni's fable "The Five Temptations of the.
Motivation LET II. Purpose Leaders spend a great deal of time and effort studying the technical aspects of their jobs. However, in order to lead effectively,
MENTAL & EMOTIONAL HEALTH UNIT 2. HAVING POSITIVE EMOTIONAL/ EMOTIONAL HEALTH… Means you can manage your emotions in a healthy way & deal with the demands.
How to Maximize Learning from a “Failure”! Any questions Contact: Mr. Ballard.
Dana Nau: CMSC 722, AI Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
Click the mouse button or press the space bar to display information. 1.Describe behaviors typical of people who relate in harmful ways, including the.
SPIRITUAL REFLECTION… LEARNING TO LIVE LIFE TO THE FULL.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Fostering Self Esteem Ways to help your child build self- esteem.
国外教学法 澳洲学习汇报. Concept Check Questions  We use concept check questions to help clarify meaning and to check students’ understanding rather than saying.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
SUNY Oswego Survey Employee Comments-Snapshot
Do you want to be a By: Ashity Patel.
Understand the personal attributes valued by employers: Attitudes
Social-Emotional Learning
Presentation transcript:

Why Johnny Can’t Test and Can Test-Driven Development Help: A People-Centered Analysis of Testing Orit Hazzan [Based on an invited talk at IBM, ]

Outline Working assumption: Software is not tested enough  Why people don’t like testing?  How may Test Driven Development (TDD) help?  TDD within Extreme Programming

Outline  Why people don’t like testing? Cognitive Social Affective Managerial Think about TDD…  How may TDD help?  TDD within Extreme Programming

Why people don’t like testing? Observation 1: In traditional development environments, testing appears as one of the last stages and is usually done under pressure.

Software Engineering/Hans Van Vliet P : … the testing activity often does not get the attention it deserves. By the time the software has been written, we are often pressed for time, which does not encourage thorough testing. p. 397: Postponing test activities for too long is one of the most sever mistakes often made in software development projects. This postponement makes testing a rather costly affair. Yet, this book presents the traditional life cycle of software development.

Why people don’t test Observation 1: In traditional development environments, testing appears as one of the last stages and is usually done under pressure.  Time pressure is a naive explanation: it is based on an external/technical factor  The truth should be looked after in people’s behavior, emotions and cognition

Some Observations Observation 2: Testing may give a negative feedback (and who likes it?)

Hamlet and Maybee

Some Observations Observation 2: Testing may give a negative feedback (and who likes it?)  The game ends with a failure  Popper's perspective

Some Observations Observation 3: Testing in traditional environments is done by someone else  The responsibility is transferred Especially, if it gives a negative feedback!

Some Observations Observation 4: Testing in traditional software development environments is carried out at the end of the production line, and, inspired by tradition working class jobs, gets low status (which further intensifies the conflict just mentioned).  There is a tension between different groups

CACM, 47(1): Managing Conflict In Software Testing, Cohen et al. Though most organizations recognize the need for high- quality testers and their specialized skill set, testers still struggle to win the respect they deserve. One manager told us, “If you had a diagram with God at the top, the engineers [developers] would put themselves above that.” Many testers feel they struggle to maintain their place relative to that of developers. P. 80: The lack of status and support makes the tester’s job more difficult and time consuming, as the struggle for recognition becomes part of the job itself.

Additional Observations Managerial difficulties:  Testing slows down development  It’s hard to manage testing (when) Cognitive difficulties:  It’s hard to know what to test  It’s hard to know how much testing should be done

Summary of Part A Why people don’t like testing? Testing is hard  Time pressure  Testing gives negative feedback  The responsibility is transferred  Low status of testing  More…  Conflicts within the person and between teams Plausible explanation: Software intangibility

Outline  Why people don’t like testing?  How may Test Driven Development (TDD) help?  TDD within Extreme Programming

Kent Beck (2001). Extreme Programming Explained, p. 116

How TDD copes with the challenge Time pressure – TDD inspires a controlled process: it is done all the time; it is not postponed to the end of the process; it is done is small steps. Testing gives negative feedback – in TDD the rules of the game are reversed; TDD ends with a success.

Practitioners’ reflection Code Unit Test First Code Unit Test First Why don't people like testing? Well, the traditional way of testing is tough to take. You write what seems to be perfectly sensible code, then you write a test and the test tells you that you failed. No one wants to hear that. Let's turn it around. Write the test first; run it. Of course it fails.. You haven't written the code under test yet. Start writing code.. keep testing. Soon, the test will tell you that you've succeeded! MichaelFeathersMichaelFeathers When it says your code failed (because it wasn't written yet), the UnitTest has itself succeeded. -- EricScoutenUnitTestEricScouten

How TDD copes with the challenge Time pressure – TDD is done all the time; it is not postponed to the end of the process Testing give negative feedback – TDD ends with a success The responsibility is transferred – TDD is done by the developers who write the code Low status of testing – All developers are testers

Additional Observations Managerial difficulties:  Testing slows down development  It’s hard to manage testing (when)  TDD fosters development processes  TDD turns development (and testing) to be a controlled process  Automatic (not manually) process

Practitioner’s reflection A key aspect of this process: don't try to implement two things at a time, don't try to fix two things at a time. Just do one. When you get this right, development turns into a very pleasant cycle of testing, seeing a simple thing to fix, fixing it, testing, getting positive feedback all the way. Guaranteed flow. And you go so fast! Try it, you'll like it. RonJeffries RonJeffries

Additional Observations Managerial difficulties: TDD turns development (and testing) to be a controlled process Cognitive difficulties: TDD improves understanding of what you develop It’s hard to You know what to test (what) It’s hard to You know how much testing should be done

Outline  Why people don’t like testing?  How may Test Driven Development (TDD) help?  TDD within Extreme Programming

What is Extreme Programming

Note: nothing is new; gathering the practices together is XP uniqueness Source: Beck, K. (2000). eXtreme Programming explained, Addison Wesley.

TDD within Extreme Programming How does TDD fit in Extreme Programming?  Specific rules: Tightness Clear development process

TDD within Extreme Programming How does TDD fit in Extreme Programming?  Specific rules: Tightness Clear development process  Nothing is new

TDD within Extreme Programming  Specific rules: Tightness Clear development process  Nothing is new  Fosters feedback

Conclusion TDD may help in coping with  Cognitive  Affective  Social  Managerial challenges of testing.

Practitioner’s reflection It's a wonderful … experience …. I don't write code any other way anymore. My code has less problems, I have more confidence and management has more confidence. – sg