Lecture 4 Flashcards
Test Automation (TA)
The use of special software to control the execution of tests and the comparison of actual outcomes with predicted outcomes.
[TA] Advantages/Pros
- Saves time and $
- Increases accuracy
- Increases test coverage
- Helps devs find bugs faster
[TA] What TO Automate
** Test cases that are: <4> **
Test cases that are:
- executed repeatedly
- tedious/difficult to perform
- time consuming
- high risk/business critical
[TA] What to NOT Automate
** Test cases that are: <3> **
Test cases that are:
- new/never been manually executed yet
- frequently changing their requirements
- executed on an ad-hoc basis (for a particular purpose)
[TA] Approaches <2>
- GUI Testing
- API Driven Testing
[TA Approaches] GUI Testing
Generates GUI events (keystrokes, mouse clicks), and observes the changes that result in the GUI, to validate that the observed behavior of the program is correct.
[TA Approaches] API Driven Testing
Uses a programming interface to the application to validate the behavior under test. Typically bypasses GUI altogether. Can also test public (usually) interfaces to classes, modules, or libraries.
[TA] Agile
- Normal pyramid
- Emphasis from max to min (base to top): unit >= API >= GUI >= ~exploratory~
[TA] Inverted Test Automation Pyramid
- Inverted pyramid
- Emphasis from min to max (tiny base to large top): Unit tests >= automated GUI >= manual tests
[TA] Best Practices <4>
- Scope of Automation determined before project starts
- Selecting the right automation tool to fit automation requirements
- Scripting Standards followed while writing automation scripts
- Success of automation measured by percent of defects found, time required for automation testing for every release cycle, and productivity improvement
[TA] Myths
- Automated software testing does NOT replace manual testing
- Not every tester can dual role manual and automation testing
- Automated testing is NOT a lot easier
- Testing jobs NOT in jeopardy due to automation
Model Based Testing (MBT)
Testing technique, where run time behavior of software is checked against predictions made by a formal specification or model.
Describes how system behaves in response to an action (determined by a model).
[MBT] Model
A description of a system’s behavior. Behavior is terms of input sequences, actions, conditions, output and flow of data from input to output.