Testing Overview

  1. What is software testing
    Verification of the behavior of a program
  2. Generally, how are test cases selected?
    Against inspected behaviour
  3. Number of possible test cases
    Infinite
  4. Software testing is ...
    destructive
  5. Properties of software testing
    • Uncover undiscovered defects
    • Not exhaustive for reasonably sized software
  6. Main drawback of software testing
    It's expensive
  7. Goal of software testing
    Uncover different classes of errors in a minimum amount of time with a minimum amount of effort
  8. Uses of software testing
    • Uncover different classes of errors
    • Prove system works as stated/expected
    • Provide information about software's reliability and quality
  9. Testing can show the __1__ of errors, but not their __2__.
    • 1. Presence
    • 2. Abscence
  10. Causes of software bugs
    • 1. Tasks not fully understood/defined
    • 2. Not enough time
    • 3. Third party errors (buggy tools, premade software)
    • 4. Failure to use source control
  11. Cause of 80% of programming errors
    Bad requirements
  12. Time constraints developers face
    • Bad schedules
    • Late design changes
  13. Defects that are less of a problem
    • Typographical errors (effectively random)
    • Errors in logic/assumptions (usually prevent execution so are quickly discovered)
  14. Dangerous assumptions
    • Assuming an odd or unlikely logical path will not be executed
    • Subconscious assumptions about control flow and data design
  15. Relationship between failures and faults
    Faults cause failures
  16. Example of a failure
    Some command performed multiplication instead of addition (expected)
  17. Example of a failure
    No condition for + in switch, causing the base case to occur unexpectedly
  18. Types of fault
    • Algorithmic
    • Syntax
    • Computation/Precision
    • Documentation
    • Stress/Overload
    • Capacity/Boundary
    • Timing/Coordination
    • Throughput/Performance
    • Recovery
    • Hardware/System Software
  19. Algorithmic faults
    Algorithm produces incorrect result for given input
  20. Syntax faults
    Improper use of programming language constructs
  21. Computation/Precision faults
    Formula implementation is wrong or has incorrect accuracy
  22. Documentation faults
    Documentation doesn't match software
  23. Stress/Overload faults
    Going outside of program limits (exceed array size or overflow integer)
  24. Timing/Coordination faults
    Code handling coordination of event systems is inadequate (real-time systems)
  25. Throughput/performance faults
    System does not perform to the required speed
  26. Recovery faults
    When a failure occurs and the system no longer behaves correctly
  27. Hardware/System Software faults
    Supporting software/hardware does not behave as expected
Author
Ant
ID
353586
Card Set
Testing Overview
Description
Test
Updated