Definition• Software testing is a formal process carried out by a specialized testing team in which a software unit, several integrated software units or an entire software package are examined by running the programs on a computer. All the associated tests are performed according to approved test procedures on approved test cases.• Software testing is the process of exercising a program with the specific intent of finding errors prior to delivery to the end user.
Software Testing StrategiesIncremental testing strategies– Bottom-up testing– Top-down testingBig bang testing– To test the software in its entirety, once the completed package is available.– Unless the program is very small and simple, application of big bang testing strategies displays severe disadvantages Identification of error becomes quite cumbersome with respect to immense quantities of software.
Top-down vs. Bottom-upBottom-up– Relatively easy– Cannot observe the functions of the program until whole modules have been integrated.Top-down– Demonstrates the entire program functions shortly after the upper-level modules have been completed early identification of errors in analysis and design.– Sometimes it is difficult to create the stubs since it is complicated have to provide varieties of functions.
Classification of Software TestingBlack Box• Testing that ignores the internal mechanism of the system or component and focuses solely on the outputs in response to selected inputs and execution conditions.• Testing conducted to evaluate the compliance of a system or component with specified functional requirements.White Box• Testing that takes into account the internal mechanism of a system or component.• Testing conducted to evaluate the correctness of a system or component by investigating the code structure (algorithm).
Black Box Testing• EC boundaries are defined by a single numeric or alphabetic value, a group of numeric or alphabetic values, a range of values, and so on.• Type of EC – Valid EC–An EC that contains only valid states – Invalid EC–An EC that contains only invalid states• In cases where a program’s input is provided by several variables, valid and invalid ECs should be defined for each variable.
White box testing Path coverage vs. Line coveragePath Coverage• Path coverage of a test is measured by the percentage of all possible program paths included in planned testing.Line Coverage• Line coverage of a test is measured by the percentage of program code lines included in planned testing.
Determining the test methodologyTesting strategy – Big-bang – Incremental • Top-down • Bottom-upWhich part using – White-box testing – Black-box testing
Planning the test• What to test – Which modules, which integrations, priorities• Which sources – Real test case – Synthetic test case• Who performs – Integration/unit tests –generally by development team – System tests –usually by independent team – For large scale software –more than one team
Planning the test (2)• Where to perform – Developer’s site – Consumer’s site – Independent site• When are tests terminated – The completed implementation route – The mathematical models application route – The error seeding (hidden) route – The dual independent testing teams route – Termination after resources have run out
Designing test• Software test plan (STP) Contains the plan of testing – Scope – Testing environment – Test details – Test schedule• Software test descriptions (STD) – Contains the procedures of testing which consists of document test procedure and test case file.
Test implementation• Running the test cases• Documenting the test’s results• Re-testing (regression test) to verify the correction of errors