Monday, 12 October 2020

Software Testing


Software Testing 

Testing software begins earlier in the systems development life cycle, even though many of the actual testing activities are carried out during implementation. During analysis, you develop an overall teat plan. During design, you develop a unit test plan, an integration test plan, and a system test plan. During implementation, these various plans and put into effect, and the actual testing is performed. 

Tests can be done with or without executing the code, and they may be manual or automated. Table shows the categorization of Test types. 

Table shows A Categorization of Test Types


Manual

Automated

Without code executed 

  • Inspections 
  • Syntax checking 

With code  execution 

  • Walk through 
  • Desk checking 
  • Unit testing 
  • Integration testing 
  • System testing 


(i) Inspection: Inspection is formal group of activities in which participants manually examine code for occurrences of well-known errors. 

Code   inspection participants used to : 

  • Compare the code they are examining to a checklist of well-known errors for that particular language. 
  • Detect from 60 to 80 percent of all software defects as well as provide the feedback to programmers to avoid making the same types of errors in future. 
  • Ensure that design specifications are accomplished. 

Syntax, grammar, and some other routine errors in the early stages of coding can be checked by automated inspection software. 

  1. Walk-through : The walkthrough and inspection technique are related to each other. The main difference is that the participates are supposed to think about good tests for the program during their preparation when a walk-through is planned. In the meeting, they will execute those tests together manually on a sheet a paper or on a projector. 

Using a structured walk-through is an effective method of detecting errors in code. structural walk though can be used to review many systems development deliverables, including design specifications and code. 

It should be stressed that the purpose of walk though is to detect errors not to correct them. It is the programmer’s job to correct the errors uncovered in a walkthrough. 

(iii) Desk Checking:  A testing technique in which the program code is sequentially executed manually with a paper and pencil by the reviewer. The reviewer acts as the computer, mentally checking each step and its results for the entire set of computer instructions. 

(iv) Syntax Checking: Syntax checking is typically done by a compiler. Errors in syntax are uncovered but the code is not executed.  

For the other three automated techniques (Unit testing, Integration testing and System testing), the code is executed. 

(v) Unit Testing: Unit testing is undertaken after a module has been coded and reviewed. Before carrying out unit testing, the unit test cases have to be designed and the test environment for the unit under test has to be developed. Unit testing is used to test a particular functions or code modules. It is the most ‘micro’ scale of testing. Unit testing focuses verification effort on the smallest unit of software design – software component or module. 

(vi) Integration Testing: Combining modules and tasting them is called integration testing. Integration testing is the process of bringing together for testing purposes of all the modules that a program comprises. 

Integration testing is a systematic technique for constructing the software architecture while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure that has been dictated by design. 

Modules are typically integrated in a top-down, incremental fashion. Top-down integration testing in an incremental approach to the construction of the software architecture. Modules are integrated by moving downward through the control hierarchy, beginning with the main control module (main program). Modules subordinates (and ultimately subordinate) to the main control module are incorporated into the structure in either a depth-first or breadth-first manner. 

(viii) System Testing: After all the units of a program have been integrated together and tested, system testing is taken up. 

System testing is a similar process, but instead of integrating modules into programs for testing, you integrate programs into systems. System testing follows the same incremental logic that integration testing does. Under both integration and system testing, not only do individual modules and programs get tested many times, so do the interfaces between modules and programs. 

System tests are designed to validate a fully developed system to assure that it meets its requirements. The test cases are therefore designed solely based on the requirement specification document. 

System tests are usually conducted by the systems analysts to ensure that all modules and programs work together without error. System testing is similar to integration testing, but is much broader in scope. Whereas integration testing focuses on whether the modules work together without error, system tests examine how well the system meets business requirements and its usability security, and performance under heavy load. It also tests the systems documentation. 

1 comment:

  1. Wow wonderful post. I am very much interested in this kind of blogs. This is truly helpful. Thank you so much for this interesting blog.

    The Next Big Thing in Experience Certificate Provider
    This Week's Top Stories about Experience Certificate Provider

    ReplyDelete