Implementation PhaseImplementation Phase Programming-in-the-manyProgramming-in-the-many
Most real-life products are too large Most real-life products are too large to be implemented by one to be implemented by one programmerprogrammer
Implemented by a teamImplemented by a team Working at the same time on different Working at the same time on different
components of the productcomponents of the product Testing/Module reuse/CASE toolTesting/Module reuse/CASE tool
Implementation PhaseImplementation Phase
Fourth Generation Languages (4GL)Fourth Generation Languages (4GL) 1GL: a binary machine code1GL: a binary machine code 2GL: assemblers (1940-50s)2GL: assemblers (1940-50s) 3GL: high level languages (FORTRAN, 3GL: high level languages (FORTRAN,
ALGOL 60, COBOL, etc)ALGOL 60, COBOL, etc) 4GL: DB2, Oracle, PowerBuilder, SQL 4GL: DB2, Oracle, PowerBuilder, SQL
(1970s)(1970s) shorter (30-50 MCI), shorter (30-50 MCI), easier to maintain/use, easier to maintain/use, CASE Tool: more productive, cost effectiveCASE Tool: more productive, cost effective
Implementation PhaseImplementation Phase Good Programming PracticeGood Programming Practice
Use of consistent and meaningful Use of consistent and meaningful identifier namesidentifier names
Self-documenting code/documentationSelf-documenting code/documentation Use of ParametersUse of Parameters Code layout for increased readabilityCode layout for increased readability Coding style for incremental Coding style for incremental
programming (Module reuse)programming (Module reuse)
Implementation PhaseImplementation Phase (Types of Errors) (Types of Errors)
Syntax ErrorsSyntax Errors Logic/Algorithm ErrorsLogic/Algorithm Errors
Branching too soon/ too lateBranching too soon/ too late Testing the wrong conditionTesting the wrong condition Initialization errorsInitialization errors Data type mismatchData type mismatch Incorrect formula or computationIncorrect formula or computation
Documentation Errors - mismatch between Documentation Errors - mismatch between documentation and code; leads to difficulties documentation and code; leads to difficulties especially during maintenanceespecially during maintenance
Implementation Phase Implementation Phase (Types of Errors)(Types of Errors)
Capacity Errors - system performance Capacity Errors - system performance degradation at capacitydegradation at capacity
Hardware ErrorsHardware Errors Throughput/performance ErrorsThroughput/performance Errors Computation/precision Errors Computation/precision Errors Stress/overload Errors Stress/overload Errors Recovery Errors - error handling faultsRecovery Errors - error handling faults Standards/Procedures - created/introduced as Standards/Procedures - created/introduced as
the system is tested & modifiedthe system is tested & modified
Implementation Phase Implementation Phase (Testing Principles)(Testing Principles)
Process of finding errorsProcess of finding errors Impossible to completely test Impossible to completely test
softwaresoftware Creativity and hard work requiredCreativity and hard work required Error preventionError prevention Independent testersIndependent testers
Implementation Phase Implementation Phase (Testing Steps) (Testing Steps)
Select what is to be measured by the test and Select what is to be measured by the test and decide how the code will be testeddecide how the code will be tested
Develop the test cases for the code and Develop the test cases for the code and determine the correct results for the test casesdetermine the correct results for the test cases
Execute the test cases and compare the actual Execute the test cases and compare the actual results with the expected resultsresults with the expected results
Regression Testing -If errors are discovered, Regression Testing -If errors are discovered, earlier test cases should be re-executed.earlier test cases should be re-executed.
Black-box TestingBlack-box Testing focused on inputs and outputs of a module: focused on inputs and outputs of a module:
equivalence partitioning, equivalence class equivalence partitioning, equivalence class contains similar test cases (reduce redundancy)contains similar test cases (reduce redundancy)
equivalence Testing & Boundary Value Analysisequivalence Testing & Boundary Value Analysis If valid input is a range of values, there are a If valid input is a range of values, there are a
minimum of three equivalence classes: one below the minimum of three equivalence classes: one below the range, one within the range, and one above the rangerange, one within the range, and one above the range
If valid input is a value from a discrete set of values, If valid input is a value from a discrete set of values, there are two equivalence classes: valid, discrete there are two equivalence classes: valid, discrete values and any other input values.values and any other input values.
Black-box TestingBlack-box Testing Functional TestingFunctional Testing
demonstrate that all functions work according to demonstrate that all functions work according to requirements and specification documentrequirements and specification document
determining all the functions of the moduledetermining all the functions of the module test data are devised to test each function separatelytest data are devised to test each function separately If the module consists of a hierarchy of lower-level If the module consists of a hierarchy of lower-level
functions, functional testing proceeds recursively.functions, functional testing proceeds recursively. OSBERT OGLES BY CASE STUDY (13.16)OSBERT OGLES BY CASE STUDY (13.16)