Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Intro to QA

Intro to QA

Why and When to Use QA

Brie Hoblin

March 13, 2013
Tweet

More Decks by Brie Hoblin

Other Decks in Programming

Transcript

  1. What is 'Software Quality Assurance'? Software QA involves the entire

    software development PROCESS ‐ monitoring and improving the process, making sure that any agreed‐upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented to 'prevention'. ‐‐from http://www.softwareqatest.com/qatfaq1.html
  2. “[Software] testing is the process of executing a program with

    the intent of finding errors.” –The Art of Software Testing
  3. ƒ Is logical, rational, and methodical ƒ Able to write

    and execute a test plan ƒ Remember every page in the application ƒ Know the steps to reproduce a bug ƒ Thinks of every possibility (or at least a lot of them) ƒ Communicates well with the team ƒ States things briefly and clearly ƒ Is sensitive to the feelings of others ƒ Can communicate priority level of bug when asked
  4. ƒ Programmers often test to prove the application works. ƒ

    Testers test to find where it doesn’t.
  5. ƒ Temperature range each material can handle before cracking, breaking,

    or shrinking ƒ Insulative properties of materials used in mug—safe to hold in your hand no matter how hot the coffee is ƒ Easy to carry, hold, walk with for people with small or large hands ƒ Decent amount of coffee fits in mug ƒ Mug fits in standard car cup holder ƒ Mug does not leak even after coffee is left in it for days, with variations in temperature ƒ Coffee comes out of drink spout evenly – doesn’t spill all over your clothes ƒ Keeps coffee warm for a reasonable amount of time ƒ Advertising on mug is clear and conveys meaning ƒ Materials are durable over time and repeated use ƒ Mug is balanced and does not tip over in cup holder or on reasonably flat surface ƒ Etc.
  6. ƒ Is there code? Then QA it. ƒ Are customers

    / stakeholders finding bugs? ƒ Are you legally responsible for the quality of your product?
  7. ƒ Your audience—customers, or internal stakeholders? ƒ How your application

    will be used—is it a game for kids to play online? U.S. Census Bureau survey? Medical software? ƒ Tech savvy level of users ƒ Browsers used / most common monitor size ƒ Scope of the application ƒ Software methodology of your team ƒ Time to market
  8. ƒ Test strategy, test plan, test cases ƒ Manual vs.

    automated ƒ Black, gray, and white box testing ƒ Load, performance, stress, and regression testing ƒ Positive, negative, edge test cases
  9. ƒ Test Strategy: the set of ideas that guide test

    design ƒ Test Plan: the set of ideas that guide a test project ƒ Test Case: A test case is usually a single step, or occasionally a sequence of steps, to test the correct behaviour/functionality, and features of an application. An expected result or expected outcome is usually given.
  10. ƒ Automated tests can be run repeatedly and save hours

    of manual testing. ƒ Test Driven Development / Behavioral Driven Development can improve code quality and efficiency of developers. ƒ Manual testing is more adaptable, no tests to maintain, just a test plan.
  11. ƒ Black box testing: examines the functionality of the application

    without peering into its internal structures. ƒ White box testing (aka clear box testing, transparent box testing) uses an internal perspective of the system, as well as programming skills, to design test cases. ƒ Gray box testing is a combination of both.
  12. ƒ Load testing is the process of putting demand on

    a system or device and measuring its response. ƒ Performance testing is the process of determining the speed or effectiveness of a computer, network or software program or device. ƒ Stress testing determines the robustness of software by testing beyond the limits of normal operation. (More important for medical software.) ƒ Regression testing is used to ensure that any new changes have not introduced new bugs—that everything remaining the same continues to function as it should.
  13. ƒ A positive test case is designed to prove that

    what the user expects to happen, happens. ƒ Negative test cases are designed to test what will happen outside the range of normal use. ƒ Edge cases test boundary conditions.
  14. ƒ Degree of documentation ƒ Degree of communication ƒ Level

    of responsiveness ƒ Need for coordination between team members
  15. The Art of Software Testing by Glenford J. Myers Lessons

    Learned in Software Testing By Cem Kaner, James Bach, and Bret Pettichord http://www.qaforums.com/ James Bach’s blog: http://www.satisfice.com/blog/