Unit Testing
Unit Test
Tests of individual subroutines and modules
Testing
The act of executing a program with selected data to uncover bugs.
Fault
A defect in the source code.
Code Review
Inspecting the code in an effort to detect errors ( Desk Checking, Inspection)
Goal of Blackbox Testing
Ensure that every distinct behavior expected of a unit has been triggered in at least one test.
Error
A mistake by the programmer, designer, etc., that led to the the fault.
Acceptance Test
A test conducted by the customers or their representatives to decide whether to purchase/accept a developed system.
Build manager
A tool for scripting the automated steps required to produce a software artifact.
Test Plan
Also known as test specification, describes a set of test cases
Failure
An incorrect behavior or result.
Boundary Values Testing
Choose as test data the largest and the smallest values for each input and for each "functional" case
Special Values Testing
Choose as test data those certain data values that just tend to cause trouble.
Scaffolding
Code written simply to support the process of Unit and Integration testing.
Testing Goals
Unit Test: does it work? Integration Test: does it work? System Test: does it work? Regression Test: has it changed? Acceptance Test: should we pay for it?
Regression Test
Unit/Integration/System tests that are repeated after a change has been made to the code.
Testing Oracle
Person, program, or process used to determine if a test has failed.
Verification
The software should conform to its (most recent) specification. "Are we building the product right"
Validation
The software should do what the user really requires."Are we building the right product"
Regression Log/Database
A collection of tests and expected outputs from past testing.
Functional Coverage
Choose at least one test that covers each distinct "behavior" described in the requirements
Whitebox testing
Chooses tests based upon the details and structure of the implementation.
Blackbox testing
Chooses tests based upon the requirements, without consulting the implementation. Uses Functional Coverage, Boundary Values Testing, Special Values Testing
Test case
General description of a required test. There may be many possible inputs that would serve.
Stubs
Replacements for code begin called from the unit under test.
System Test
Test of the entire system.
Drivers
Test scaffolding that calls the module being tested. Often just a simple main program.
Integration testing
Testing that combines several modules, but still falls short of exercising the entire program
Test-Driven Development
Write an automated test case for a new desired behavior. Write just enough new code to pass the test. Refactor the code to make it acceptable quality.
Mock object
object whose interface emulates a "real" class for testing purposes.