Testing

During Testing, the program to be tested is executed with a set of test cases, and the output of the program for the test cases is evaluated to determine if the program is performing as expected. Testing can ascertain the presence of errors in a program. Testing a large system is a complex activity, it has to be broken into smaller activities. Incremental testing is generally performed, in which components and subsystems of the system are tested separately before integrating them to form the system of system testing. For this reason, this phase is sometimes called “integrating and testing”.

Different levels of testing are used in the testing process; each level of the testing aims to test different aspects of the system.

The basic levels are,

  • Unit testing
  • Integration Testing
  • System testing
  • Acceptance Testing

The first level of testing is called Unit testing. In this, different modules are tested against the specificati0ons produced during design for the modules. Unit testing is essentially for the verification of the code produced during the coding phase, and hence the goal is to test the internal logic of the modules.

The next level of testing is often called Integration testing. In this, many unit-tested modules are combined into subsystems, which are then tested. The goal here is to see if the modules can be integrated properly. Hence, the emphasis is on testing interface between modules. This testing activity can be considered testing the design.

The next levels are System testing and Acceptance testing. Here the entire software system is tested. The reference document for this purpose is the requirements document, and the goal is to see if the software meets the requirements. Acceptance testing is sometimes performed with realistic data of the client to demonstrate that the software is working satisfactory.

TEST PLAN:

A test plan is general document for the entire project that defines the scope, approach to be taken, and the schedule of testing as well as identifies the test items for the entire testing process and the personnel responsible for the different activities of testing. Thus test planning can be done in parallel with the coding and design phases.

A test plan should contain the following:

  • Test unit specification
  • Features to be tested
  • Approach for testing
  • Test deliverables
  • Schedule
  • Personnel allocation

Test unit identification:

One of the most important activities of the test plan is to identify the test units. A test unit is a set of one or more modules, together with associated data, that are form a single computer program and that are the objective of the testing. A test unit can occur at any level and can contain a single module to the entire system. Thus, a test unit may be a module, a few modules, or complete system.

Features to be tested:

Features to be tested include all software features and combination of features that should be tested. A software feature is as software characteristic specified or implied by the requirements or design documents.

All the functional features specified in the requirements document will be tested.

Approach for testing:

The approach for testing specifies the overall approach to be followed in the project.

In this project, for unit testing structural testing based on branch Coverage Criteria will be used. System testing will be largely functional in nature. The focuses on valid cases and some invalid cases.

Test deliverables:

The following documents are required:

  • Unit test report for each unit.
  • Test case specification for system testing.
  • Test reports for system testing.

The test case specification for system testing has to be submitted for review before system testing commences.

SCHEDULE AND PERSONAL ALLOCATION:

The entire testing-unit and system will be finished within the month. Much of the unit testing will be done in the first two weeks of the month. Test case specification for the system testing will be produced while unit testing is going on. This schedule is consistent with the overall schedule of the project.

TEST CASE SPECIFICATION FOR SYSTEM TESTING:

Here we specify all test cases that are used for system testing. First , the different conditions that need to be tested, along with the test cases used for testing those conditions and the expected outs are given. Then the data files used for testing are given.

The test cases are specified with respect to these data files. The test cases have been selected using the functional approach. The goal is to test the different functional requirements, as specified in the requirement document. Test cases have been selected for both valid and invalid inputs.

Test Cases and Test Criterion:

Testing is a crucial step in software development. Fundamental theorem of testing is that if a testing criterion is valid and reliable. Having proper test cases is central to successful testing. The goal during selecting test case is to ensure that if there is an error or fault in the program.

There are two desirable properties for a testing criterion : reliability and validity. A criterion is valid if for any error in the program there is some set satisfying the criterion that will reveal the error. The goal of test case selection is to select the test cases such that the maximum no. of faults detected by minimum no. of test cases.

Top down and bottom up approaches:

When testing a large program it is necessary to test parts of the program first before testing the entire program. We assume that a system is a hierarchy of modules. In Top-down approach, we start by testing the root of the hierarchy, and incrementally add modules which it calls and then test the new combined system. This requires ‘stubs’ which stimulates a module.

The Bottom-up approach starts from the bottom of the hierarchy. First the modules, which have no subordinates, are tested. Then these modules are combined with higher level modules for testing. This requires drivers to set up the appropriate environment and invoke the module.

No comments:

ONLINE TRAINING

Dear friends we are happy to announce that we entered in corporate training. For the past two years we trained many students, Employees as per industrial requirements. Now we are started online training session for who dont have enough time and who dont want to waste time to come to institutes for learning. We are offering online sessions for Windows server 2003, windows server 2008, MCSE, .NET, Java. MS SQL Server and many more. For more details about course and fee structure please



Followers

Google Pagerank Powered by  MyPagerank.Net