31
SQ13 IBM Software Group © 2005 IBM Corporation Using Bugs to Bring Developers and Testers Closer Together Michael Kelly Fusion Alliance [email protected]

SQ13 IBM Software Group © 2005 IBM Corporation Using Bugs to Bring Developers and Testers Closer Together Michael Kelly Fusion Alliance [email protected]

Embed Size (px)

Citation preview

  • Slide 1
  • SQ13 IBM Software Group 2005 IBM Corporation Using Bugs to Bring Developers and Testers Closer Together Michael Kelly Fusion Alliance [email protected]
  • Slide 2
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Whats the problem? Different pressures and perspectives that guide our work Testers are motivated by management to find and report problems within the system as quickly as possible Developers are motivated to complete code as quickly and accurately as possible in order to move on to the next problem Communication suffers
  • Slide 3
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. How can we improve communication? Sharing test scripts between teams Distributing the ability to execute smoke tests Performing runtime analysis together Using log files to isolate problems Using defect-tracking systems effectively Speaking face to face
  • Slide 4
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Strengths Probing Look for errors, faults and failures Know test design techniques that improve the likelihood of finding bugs within a limited period (Perceived) weaknesses Pessimistic, gloomy outlook Limited capability, stunted growth Uncreative, leading to conditioned behaviour 1 st Functional testing 2 nd Regression testing Only then think about the rest Testing skills and mindset Testers start by assuming the software is broken, and look for the problems Courtesy of Julian Harty
  • Slide 5
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Strengths Creative Innovative Optimistic (Perceived) weaknesses Optimistic Arrogant / Elitist Chaotic Error-prone Narrow focus / perspective Defensive need proof before theyll act Developer skills and mindset Developers start by looking for ways to get something to work Courtesy of Julian Harty
  • Slide 6
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. How we view ourselves and each other A big anchor that holds back their speedboat Elite intrepid, brilliant creators Information providers Gatekeeper Scapegoat for the work of others Creators of a unfinished go-kart, without brakes or steering testers developers How testers view How developers view testersdevelopers Courtesy of Julian Harty
  • Slide 7
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Drawing up the battle lines The Timely Testers The Dynamic Developers No mans land Courtesy of Julian Harty
  • Slide 8
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Symbiotic Relationships In the beginning there was the computer And the computer was without form: so developers were created to write code. Bugs multiplied: so testing was invented to find the bugs Testing was good: so testing was divided from development and the role of tester was formed Software testers depend on developers, and developers need testers if they want to deliver working software Therefore testers and developers have a symbiotic relationship. Courtesy of Julian Harty
  • Slide 9
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Bridging the gap The goal is to bridge the gap between testers and developers so they can work more productively One way is for the testers to become more technical so they can work more effectively e.g. by Working with developers more effectively Finding technical faults more easily Using appropriate testing techniques Understanding business-specific issues Courtesy of Julian Harty
  • Slide 10
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Share Test Scripts Between Teams Problems encountered by test scripts can be lengthy or difficult to reproduce If you make all of your test scripts available to the entire team you give developers the ability to: look at the script code look at the script logs re-run the scripts and watch them execute re-run them in local environments with debug information written to logs re-run them in conjunction with other tools
  • Slide 11
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Share Test Scripts Between Teams Provide the development team with a remote automated test-script execution box: The tools allows for distributed test execution Allows developers to work on your problem while get their own work done
  • Slide 12
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Share Test Scripts Between Teams Sharing test scripts with developers also enables everyone on the team to use the same tools used to develop the scripts Likely side-effects include developers taking the time to offer improvements to the scripts The more feedback from developers you get on your scripts, the more powerful they'll become The more you collaborate with developers, the more likely it is they will fix your problem
  • Slide 13
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Distribute the Ability To Execute Smoke Tests Every time the project team creates a build there's potential for something to go wrong. The problem with a bad build is that you won't necessarily know it's bad until you get in there and do some testing. The solution is to create a series of tests that exercise the system from end to end. A smoke test doesn't have to be exhaustive, but it should be capable of exposing major problems.
  • Slide 14
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Distribute the Ability To Execute Smoke Tests If you don't have a smoke test, create one. If it's not automated, automate it.
  • Slide 15
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Distribute the Ability To Execute Smoke Tests Automated smoke tests are particularly powerful: They're used often, possibly many times a day. They provide meaningful information (the system is at an acceptable state for testing and all services are upor not). They provide feedback quickly, typically in a matter of minutes. They're easy to execute and distribute.
  • Slide 16
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Distribute the Ability To Execute Smoke Tests You can make the smoke test available to both testers and developers by using a central interface such as a project web site or simply using TestManager. If everyone has the ability to execute the smoke test and the results are simple to interpret, testers won't be pressured to provide this service for everyone else on the team.
  • Slide 17
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Distribute the Ability To Execute Smoke Tests Most people will prefer not relying on someone else for such a simple task. Distributing the ability to execute smoke tests also increases communication between developers and testers. TestManager Email Etc
  • Slide 18
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Runtime Analysis Runtime analysis provides information on the following aspects of an application's execution: Execution paths Code coverage Runtime tracing Memory utilization Memory errors and memory leaks in native applications Memory leaks in.NET managed code and Java applications Execution performance Performance bottlenecks Threading problems
  • Slide 19
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Perform Runtime Analysis I've found that the most effective way to make sure that runtime analysis gets done is to start performing the analysis yourself. As a tester, you don't need to become a runtime analysis expert. In my experience, runtime analysis seems to be the most effective in increasing developer/tester communication (your mileage may vary).
  • Slide 20
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Perform Runtime Analysis Together By working with developers on runtime analysis, testers can: Learn more about the technologies Learn more about the code Learn about the technical issues that developers face and developers can: Learn more about what risks concern the testers
  • Slide 21
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business.
  • Slide 22
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Use Log Files To Isolate Problems Leverage log files as a means of capturing bugs and debugging. Often, when a problem happens behind the scenes of an application, you don't see the problem on the user interface. If developers give testers access to the execution log files for the application, the testers can use scripts to parse through the log files, looking for abnormalities and exceptions.
  • Slide 23
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Use Log Files To Isolate Problems Building testability into the application is a partnership between testers and developers. Most developers want to help in any way they can, assuming that they're given time to do so. It's up to testers to let developers know what they need.
  • Slide 24
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Use Defect-Tracking Systems Effectively Developers should tell testers what information is helpful: Steps taken Screenshots Source code Script/test case that can reproduce the bug Relevant log files Try not to be negative Try not to include suggestions
  • Slide 25
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Use Defect-Tracking Systems Effectively Before assigning priority and severity to defects, testers, developers, and project stakeholders should work out a prioritization scheme. Is it or ? If you're a tester, and you have a problem getting your point across using the bug-tracking tool, go and talk with the developer if possible.
  • Slide 26
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Speak Face to Face There's no substitute for talking face to face with someone. The developer confirms that the problem is not some setting or incorrect configuration on my machine; it's actually a bug. The developer has seen the bug, so it's compellingmuch more so than if he tried and failed to reproduce the problem on his own. The developer can reproduce the problem more easily after seeing the steps performed in detail. The developer may already be aware of the problem and can indicate how it's being handled. The developer can request inclusion of additional information on the ticket to help jog his memory: configuration file, version number, the developer's initial thoughts and reactions, etc. The developer may be able to specify the person best suited to work on this problem. By watching the developer interact with the bug, I may discover other areas I need to test that might not have occurred to me otherwise.
  • Slide 27
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Speak Face to Face The developer needs to be available and willing to help. Engaging the developer directly helps him or her better understand what you're trying to accomplish. Keep in mind that you may be disturbing or distracting the developer during a high- pressure time in the release cycle. If you approach developers frequently, establish some ground rules to avoid annoying the developers, and to avoid reducing their productivity at a critical time in the project.
  • Slide 28
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Next Steps Pick a method and try it. Build a smoke test. If you're good with tools, check out Purify, Quantify, and PureCoverage. If you're less technical, simply start a dialogue with the developers and see what you can do to make life easier for them. Occasionally call a developer over and ask for help, even if you don't need it (just make sure the problem is worthy of help).
  • Slide 29
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Special Thanks To Julian Harty at www.CommerceTest.com for use of some of the materials from his EuroStar 2004 keynote presentation Technical Testing: Bridging the Gap Between Testers and Developers.
  • Slide 30
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Questions
  • Slide 31
  • IBM Rational Software Development Conference 2005 SQ13 Better Software. Better Business. Michael Kelly [email protected] Thank You