Understanding test types

In traditional software development, tests were often executed when development was complete, the application was declared dev-done, the feature set was frozen, or a similar statement. After declaring the development done, testing was performed, and often, a long period of going back and forth between testing and bug fixing started. The result was often that many bugs were still found after going live.

Shifting left is a testing principle that states that automated testing should be done earlier in the development process. If all activities involved with software development are drawn on a line from inception to release, then shifting left means moving automated testing activities closer to inception.

To do this, a wide selection of different types of tests are recognized—for example, unit tests, integration tests, and system tests. Different sources can suggest different types of tests, but these are some of the more well-known types. No matter the specific name of a type of test, when looking at tests with a high level of abstraction, they are often divided into the following two categories:

  • Functional tests: Functional tests are in place to test whether the desired functionality is actually realized by the application.
  • Non-functional tests: Non-functional tests are used to verify whether the other desired properties of an application are realized and whether undesirable properties are not present.

These types are further broken down into smaller subcategories, as shown in the following diagram:

The following three sections contain brief recaps of the different types of functional and non-functional tests. This is to facilitate later discussions on which type of test to choose in which situation and how much of each type of test your project might need.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset