Software Testing & Maintenance Exam 3

Card Set Information

Software Testing & Maintenance Exam 3
2015-05-14 17:30:22

Show Answers:

  1. Unit testing vs. regression testing
    • Unit Test: Testing a specific module, done in development.
    • Regression Testing: The process of re-testing software that has been modified. Done during maintenance
  2. Importance of regression testing
    Because of the deep interconnections among software components, changes in one method can cause problems in methods that seem to be unrelated
  3. critical factors enabling regression testing
    • Too many tests to be run by hand
    • Tests must be run and evaluated quickly often overnight, or more frequently for web applications
    • Testers do not have time to view the results by inspection
    • Types of tools :Capture / Replay – Capture values entered into a GUI and replay those values on new versions
    • Version control – Keeps track of collections of tests, expected results, where the tests came from, the criterion used, and their past effectiveness
    • Scripting software – Manages the process of obtaining test inputs, executing the software, obtaining the outputs, comparing the results, and generating test reports
    • Tools are plentiful and inexpensive (often free)
  4. Three reasons that regression tests can fail
    • The software has a fault – Must fix the fix
    • The test values are no longer valid on the new version – Must delete or modify the test
    • The expected output is no longer valid – Must update the test
  5. Four approaches for software output verification
    • Direct verification
    • Redundant computation
    • Consistency/sanity checks
    • data redundancy
  6. Integration testing and the types of faults involved
    Integration testing is done in several ways

    • Evaluating two specific components
    • Testing integration aspects of the full system
    • Putting the system together “piece by piece”
  7. Test cases, test scaffolding
    Scaffolding is extra software components that are created to support integration and testing

    • A stub emulates the results of a call to a method that has not been implemented or integrated yet
    • A driver emulates a method that makes calls to a component that is being tested
  8. Unique challenges for testing web applications
    • Web site applications feature distributed integration and are extremely loosely coupled
    • Internet and diverse hardware / software
    • HTML forms are created dynamically by web applications. UI created on demand and can vary by user and timeUsers can change the flow of control arbitrarilyback button, forward button, URL rewriting, refresh
    • Dynamic integration of new software components new components can be added during execution
  9. How coverage criteria apply to web application testing
    Traditional graphs do not applyControl flow graphCall graphState behavior is hard to model and describeAll inputs go through the HTML UI – low controllabilityHard to get access to server-side state (memory, files, database) – low observabilityNot clear what logic predicates can be effectively usedNo model for mutation operators on web software
  10. Bypass testing
    "bypass” client-side constraint enforcementBypass testing constructs tests to intentionally violate constraints:Eases test automationValidates input validationChecks robustnessEvaluates security
  11. Selenium
    Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language (Selenium IDE). It also provides a test domain-specific language (Selenese)[1] to write tests in a number of popular programming languages, including Java, C#, Groovy, Perl, PHP, Python and Ruby.
  12. Unique challenges for testing GUI/mobile applications
    • A User Action
    • Complex Interactions
    • Large Space of Event Interactions
    • Number Grows Exponentially with Length
  13. Three approaches for testing GUIs and their limitation

    • Labor intensive, highly error prone.
    • Needed to be redone each time regression testing was required.
    • Very expensive.


    • Another Programming Language
    • Needs to be subjected to some form of formal verification
    • Eliminates human error during execution of the test
    • Can be used (sometimes with modifications) for regression testing

    Capture and Replay
  14. difficulties in gui testing
    • nBetter Test Cases: help generate
    • new better test inputs

    • –Generate
    • event sequences

    • nBetter Test Oracles: help generate
    • better test oracles

    • –Check
    • behavior of test inputs

    • nBetter Test Suite Management: help
    • manage test suites

    • –Test
    • suite repairing

    • –Test
    • suite reduction

    • Test
    • suite prioritization