Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Context-driven testing in an agile context – A happy marriage?

1,250 views

Published on

Testing is an agile environment is different many people say. But what is agile testing? I rather say testing in an agile context instead of agile testing. Agile is different in every project. Excellent testing in an agile context is done by looking at the details of the specific situation first. Remember the 7th principle of context-driven testing: “Only through judgement and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.”

Agile comes with a bunch of cool new methods like TDD, ATDD and BDD. There is a lot of focus on automating testing. There is nothing wrong with these methods and automating … if done right. This talk zooms in on the difference between testing and checking coined by Michael Bolton. Checking can be automated and I claim that in an agile context this should be taken care of by programmer. It is not a good strategy to assign these tasks to the tester.

Creating a huge amount of automated checks that will be executed every time code is integrated is an appealing and comforting thought. But there is much more to do to cover the whole spectrum of testing. This is where testers can contribute with lots of value. We are set out to find new information about the software by exploration and learning. Join me to learn more about context-driven testing in an agile context.

Published in: Software
  • As a single mother every little bit counts! This has been such a great way for me to earn extra money. As a single mother every little bit counts! Finally, a vehicle for making some honest to goodness real money to make life easier and happier now that I don't have to pull my hair out budgeting every penny every day.Thanks for the rainbow in my sky. ●●● http://ishbv.com/goldops777/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • As a single mother every little bit counts! This has been such a great way for me to earn extra money. As a single mother every little bit counts! Finally, a vehicle for making some honest to goodness real money to make life easier and happier now that I don't have to pull my hair out budgeting every penny every day.Thanks for the rainbow in my sky. ■■■ http://t.cn/AieX2Loq
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/yaL6S ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Context-driven testing in an agile context – A happy marriage?

  1. 1. ... A happy marriage ? Context-driven testing in an agile context Huib Schoots Dutch Testing Conference 2014
  2. 2. Topics • Testing • Context-driven testing • Agile testing • Test automation • Great testers • Happy Marriage?
  3. 3. What is testing? The process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects. (ISTQB) Testing is a process that provides insight into, and advice on, quality and the related risks. (TMap)
  4. 4. What is testing? Testing gathers information about a product with the intention to inform a decision (Jerry Weinberg) Questioning a product in order to evaluate it (James Bach) Testers light the way (RST) Testers see things for what they are. They make informed decisions about quality possible, because they think critically about software (RST) Skillful investigation by experimentation (Joris Meerts)
  5. 5. Testing and checking • Testing is the process of evaluating a product by learning about it through experimentation, which includes to some degree: questioning, study, modeling, observation and inference. • Checking is the process of making evaluations by applying algorithmic decision rules to specific observations of a product. Source: http://www.satisfice.com/blog/archives/856
  6. 6. Testing and checking Source: http://www.satisfice.com/blog/archives/856 Human checking Machine checking Human/machine checking Learning by experimenting, including study, questioning, modeling, observation, interference, etc. Testing
  7. 7. What is context-driven testing? • A paradigm • A community • An approach Context-driven testing means that to be effective, testing must consider context first and continuously. A group of people who consider testing as a human activity to solve a complex and difficult problem that requires a lot of skill. Therefore they continuously study their craft seriously, practice a lot and refuse to do bad work. The model by which I understand, experience, value, explain and categorize good testing. Source: http://www.satisfice.com/presentations/context-driven.pdf
  8. 8. The 7 principles of Context-driven Testing 1. The value of any practice depends on its context. 2. There are good practices in context, but there are no best practices. 3. People, working together, are the most important part of any project's context. 4. Projects unfold over time in ways that are often not predictable. 5. The product is a solution. If the problem isn't solved, the product doesn't work. 6. Good software testing is a challenging intellectual process. 7. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products. Source: http://context-driven-testing.com/
  9. 9. The context-driven values • Humanist • Skeptical • Empiricist • Adaptable • Diversified • Heuristic • Ethical • Personal Source: Keynote presentation by Michael Bolton CopenhagenContext 2014
  10. 10. An example: RST The Premises of Rapid Testing: 1. Software projects and products are relationships between people, who are creatures both of emotion and rational thought. 2. Each project occurs under conditions of uncertainty and time pressure. 3. Despite our best hopes and intentions, some degree of inexperience, carelessness, and incompetence is normal. 4. A test is an activity; it is performance, not artifacts. 5. Testing’s purpose is to discover the status of the product and any threats to its value, so that our clients can make informed decisions about it. 6. We commit to performing credible, cost-effective testing, and we will inform our clients of anything that threatens that commitment. 7. We will not knowingly or negligently mislead our clients and colleagues. 8. Testers accept responsibility for the quality of their work, although they cannot control the quality of the product. Source: http://www.satisfice.com/rst.pdf
  11. 11. Agile testing? • What makes testing agile? The testing itself is not so much different, it is the context in which you do the testing is different! We explained how agile testing, with its focus on business value and delivering the quality customers require, is different from traditional testing, which focuses on conformance to requirements. (Agile Testing - A Practical Guide for Testers and Agile Teams - Lisa Crispin, Janet Gregory)
  12. 12. Some differences… • Less time to prepare, execute and report • Iterative and incremental approach • Focus on test check automation • Role change: less testing, more coaching • Less certainty: change is common • Team work • Continuous critical thinking Source: http://www.huibschoots.nl/wordpress/?p=1072
  13. 13. Agile testing to some… • TDD • ATDD, BDD, Specification by example • 100% test automation • No more testers • Built-in quality • Faster, shorter, better! Individuals and interactions over processes and tools
  14. 14. Test pyramid Acceptance Tests (API layer) Unit Tests / component tests GUI Tests Manual Tests
  15. 15. Test automation • You can only automate a check • Expected results are needed • What about unexpected stuff? • No learning, only fact checking… Check
  16. 16. Gone wrong: testing ice cone! Acceptance Tests (API layer) GUI Tests Unit Tests Manual Tests
  17. 17. Who should do the test automation? • Testers? • Programmers? • Both? Test skills Programming skills Somebody who has the skills! check
  18. 18. Great testers • A tester is somebody who knows that things can be different. (Jerry Weinberg) • A good tester is able to see the complexity of things that seem simple and the simplicity of things that appear complex. (Michael Bolton) • Aiming to become a world-class tester does not mean reaching a destination, but rather being on a constant journey into new territories.(Ilari Henrik Aegerter)
  19. 19. Great testers • Testing is about questioning and learning under conditions of fundamental uncertainty • Testing is a performance • Because testing is a solution to a very difficult problem, it must be tailored to the context of the project, and therefore testing is a human activity that requires a great deal of skill to do well. That’s why we must study it seriously. We must practice our craft. Context-driven testers strive to become the Jedi knights of testing.
  20. 20. Become a great tester… 1. Adapt to the context 2. Collaborate 3. Learn & practice 4. Passion 5. Have courage 6. Be curious & sceptical Content Attitude
  21. 21. Steve Jobs' 2005 Stanford Commencement Address http://news.stanford.edu/news/2005/june15/jobs-061505.html
  22. 22. How I became better… • I really love what I do: testing is fun! • I refuse to do bad work and stand up for what I believe • Rapid Software Testing • BBST • Skype Coaching • Become part of the community • Twitter • Conferences: Let’s Test, CAST, TestBash and many more • Learn, practice, explore • Testing dojos, weekend testing, Miagi-Do • Read blogs (http://www.huibschoots.nl/wordpress/?p=1450) • Read books (http://www.huibschoots.nl/wordpress/?p=1361)
  23. 23. Context-driven testing in an agile context
  24. 24. Happy marriage? • Focus on humans Individuals and interactions over processes and tools People, working together, are the most important part of any project’s context • Projects are uncertain Responding to change over following a plan Projects unfold over time in ways that are often not predictable • Problem solving Working software over comprehensive documentation The product is a solution. If the problem isn’t solved, the product doesn’t work • Collaboration Customer collaboration over contract negotiation Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products
  25. 25. Where it could go wrong… • When agile is considered developers only, no documentation, no planning, no discipline, xDD as a methodology, automate everything… • Testing is devalued as best practice, process with some artifacts like “pushing buttons” and the believe “everybody can test”…
  26. 26. Read more • Open Letter to EuroSTAR organizers – testing introduction - http://thetesteye.com/blog/2013/03/open-letter-to-eurostar-organizers- testing-introduction/ (Testing) • Misconceptions about testing - http://www.huibschoots.nl/wordpress/?p=1118 (Testing) • Quality: Not Merely The Absence Of Bugs - http://www.developsense.com/blog/2009/02/quality-not-merely-absence-of-bugs/ (Testing) • Testing & Checking - http://www.satisfice.com/blog/archives/856 (Testing and checking) • Test Cases Are Not Testing: Toward a Culture of Test Performance” by James Bach & Aaron Hodder - http://www.testingcircus.com/documents/TestingTrapeze-2014-February.pdf (Testing is a performance) • A test is a performance - http://www.satisfice.com/blog/archives/1346 (Testing is a performance) • Context-driven Testing - http://www.developsense.com/presentations/2011-08-CAST-ContextDrivenTesting.pdf (Context-driven testing) • What is context-driven testing? - http://kaner.com/?p=49 (Context-driven testing) • What being a Context-Driven Tester means to me - http://testingreflections.com/node/8657 (Context-driven testing) • What makes agile testing different? - http://www.huibschoots.nl/wordpress/?p=1072 (Agile testing) • Becoming a World-Class Tester - www.ebaytechblog.com/2013/01/31/becoming-a-world-class-tester/ (Great testers) • You can learn testing - http://www.huibschoots.nl/wordpress/?p=373 (Great testers) • The Dual Nature of Context-Driven Testing - http://www.satisfice.com/blog/archives/565 (Great testers) • How to become a great tester - My talk at CopenhagenContext 2014: goo.gl/V5kknu (Attitude) • So you think you can test - My talk at Let’s Test 2012: goo.gl/CYgBxR (Learning & practice) • A tester’s syllabus by James Bach - http://www.satisfice.com/images/testsyllabus.pdf (Skills) • Agile Test Automation by James Bach - www.satisfice.com/articles/agileauto-paper.pdf (Agile Test Automation) • The Forgotten Layer of the Test Automation Pyramid - http://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test- automation-pyramid (Test Automation Pyramid) • Can Exploratory Testing Be Automated? - http://www.developsense.com/blog/2010/09/can-exploratory-testing-be-automated/ (Test automation & exploratory testing) • Man and machine - http://www.kohl.ca/articles/ManandMachine_BetterSoftware_Dec2007.pdf (Test Automation) • Is Unit Testing Automated? - http://www.developsense.com/blog/2010/06/questions-from-listeners-2-is-unit-testing-automated/ (Test Automation) • Manual and automated testing - http://www.developsense.com/blog/2013/02/manual-and-automated-testing/ (Test Automation) • More great resources: http://www.huibschoots.nl/links (More links)
  27. 27. huib.schoots@improveqs.nl @huibschoots www.huibschoots.nl/blog Laan van Diepenvoorde 1 5582 LA Waalre The Netherlands Tel: +31 40 2021803

×