sd & d testing
TRANSCRIPT
Testing
TestingTesting begins at the analysis and design
stages, with prototypes being developed
It is much more cost effective to fix problems at earlier stages of the software development process
TestingThe purpose of testing is to
to identify errorsto ensure that software is fit for purposeto ensure that code is efficientto ensure that code is maintainable
Test planSelecting appropriate test data sets is important, so we need to create a test plan
Expected results should be known in advance (so the actual output can be checked against expected output)
Test Data Sets
Normal
Extreme
Exceptional
Test Data SetsNormal Data
A normal data set should be tested to show that the program works as expected.
Test Data SetsExtreme Data
Extreme data is used to test the boundary limits within a program.
Test Data SetsExceptional Data
Exceptional data is used to test that the program can properly handle unexpected inputs.
Comprehensive testingSoftware should undergo comprehensive
testing
This means testing against a range of normal, exceptional and extreme data
It does not mean running a program a couple of times to find that it works OK.
Phases of testing1. Procedure / Module Testing
Individual code procedures and modules tested2. Integration Testing
Test the modules work together3. System Testing
Test overall system4. Acceptance Testing
Customer tests program against their specification
5. Alpha and Beta TestingPut the software out to users to test
Who tests?Initially, tests are carried out by the development
team
Acceptance testing is carried out by the client
The final alpha and beta test are carried out by a select band of users. It is becoming common for software beta programs to be freely downloadable
Syntax ErrorsSyntax errors are errors which appear in your
code and can be misspelled keywords or using the language incorrectly
Often software development environments will highlight syntax errors for you
Syntax errors are the most common type of errors
Syntax Errors
Run-time (execution) ErrorsRun-time errors are those that appear when
you run your code
The syntax is correct, but the program fails to execute
Run-time (execution) Errors
Logic ErrorsLogic errors are those that appear when the program is running
They will not cause the program to crash but will produce unwanted or unexpected results
Logic Errors
Testing TechniquesDry Runs
Trace Tables
Breakpoints
Dry RunsStepping through each line of the program
code, manually working out on the values of variables in a table
The tester/developer works as the computer
Trace TableA trace table is used to store the current
value of each variable as the programmer steps through the dry run program line by line
Trace TableSET savings TO 60SET pocket_money TO 10REPEAT WITH month FROM 1 to 4
SET savings TO savings + pocket_moneyEND REPEAT
Trace TableSET savings TO 60SET pocket_money TO 10REPEAT WITH month FROM 1 to 4
SET savings TO savings + pocket_moneyEND REPEAT
Trace TableSET savings TO 60SET pocket_money TO 10REPEAT WITH month FROM 1 to 4
SET savings TO savings + pocket_moneyEND REPEAT
Trace TableSET savings TO 60SET pocket_money TO 10REPEAT WITH month FROM 1 to 4
SET savings TO savings + pocket_moneyEND REPEAT
Trace TableSET savings TO 60SET pocket_money TO 10REPEAT WITH month FROM 1 to 4
SET savings TO savings + pocket_moneyEND REPEAT
Trace TableSET savings TO 60SET pocket_money TO 10REPEAT WITH month FROM 1 to 4
SET savings TO savings + pocket_moneyEND REPEAT
BreakpointsA breakpoint is used to stop a program at a
particular line of code
The programmer can then examine the value of variables at this point
Can also then step through subsequent lines of code one at a time
BreakpointsIn this example, a breakpoint has been added to test whether or not the code within the IF statement is actually run
We can see it has. We can also check the state of variables
Testing removes all bugs......wrong!
Testing can only convince us of the presence of errors, and not of their absence.
Testing can never prove conclusively that a program is correct. No matter how exhaustive the testing, it will always be possible for the system to contain errors which have not been detected.