Premium Partner

Software Construction: Unit Testing

Cards to learn unit testing

Cards to learn unit testing


Kartei Details

Karten 28
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 01.01.2020 / 11.01.2020
Lizenzierung Keine Angabe
Weblink
https://card2brain.ch/box/20200101_software_construction_unit_testing
Einbinden
<iframe src="https://card2brain.ch/box/20200101_software_construction_unit_testing/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Software failure (Definition)

A component or a software system behaves in a way that is not expected.

Software defect (or bug or fault) (Definition)

A flaw in a component or in any part of the software that causes the system to behave incorrectly.

Error (or mistake) (Definition)

It is about the human action that produces the incorrect result.

Software Validation (Definition)

Making sure that our system delivers what the user needs it to deliver (are we building the right system?)

Software Verification (Definition)

Making sure that our system delivers what the specification wants it to deliver, that it is free of bugs (are we building the system right?).

Validation or Verification?

  • unit test
  • usability test
  • code review
  • static analysis 
  • prototyping
  • customer acceptance test
  • regression test
  • integration test
  • code style checkers

Test Automation (Definition)

Tge use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.

Benefits

  • Reduces costs
  • Reduces human error
  • Reduces variance in test quality from different individuals
  • Reduces the cost of regression testing

Software Testability (Definition)

The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met.

Software Testability is dominated by two problems

  • How hard is it to provide the test values to the software?
  • How hard is it to observe the results of test execution?

How hard is it to find faults in the software?