Objectives of Software Testing and Integration

INTRODUCTION

After completing the coding part according to the requirement, we have to test the quality of the software. Software testing is an empirical technical investigation conducted to provide stakeholders with information about the quality of the product. Software Testing is the process of executing a program or application with the intent of finding errors. Problem with software testing is that number of defects in a software product can be very large and defects that occur infrequently are difficult to find in testing. It is commonly believed that the earlier a defect is found the cheaper it is to fix it.

STAGES OF TESTING

There are different stages of testing based on the errors that are relevant only after the system is in use. A system that has been put to use without testing can be disastrous in terms of the application.  The importance of the software and its implementations cannot be overemphasized. Software testing is a critical element software quality assurance and represents the ultimate review of the specifications, design and coding.

TESTING OBJECTIVES:
The main objective of testing is to uncover a host of errors, systematically and with minimum effort and time. Stating formally, we can say, Testing is a process of executing a program with the intent of finding an error.
A successful test is one that uncovers an as yet undiscovered error. A good test case is one that has a high probability of finding error, if it exists. But there is one thing that testing cannot do (just quote a very famous sentences)”Testing cannot show the absence of defects, it can only show that software defects are presents”.
As the test results are gathered and evaluated they begin to give a qualitative indication of the reliability of the software .If sever errors are detected, the overall quality of the software is a natural suspect. If, on the other hand, all the errors, which are encountered, are easily modifiable, then one of the two conclusions can be made:

  • The tests are inadequate to detect possibly present errors.
  • The software more or less confirms to the quality and reliable
    standards.

LEVELS OF TESTING:

In order to uncover the errors present in different phases we have the concept of levels of testing. The basic levels of testing are:

Client Needs==> Acceptance Testing
Requirements==> System Testing
Design==> Integration Testing
Code==> Unit Testing

Performance Testing Performance Testing covers a broad range of engineering or functional evaluations where a material, product, or system is not specified by detailed material or component specifications: Rather, emphasis is on the final measurable performance characteristics. It can also refer to the assessment of the performance of a human examinee. For example, a behind-the-wheel driving test is a performance test of whether a person is able to perform the functions of a competent driver of an automobile. Web server Stress Tool is a powerful HTTP-client/server test application designed to pinpoint critical performance issues in your web site or web server that may prevent optimal experience for your site’s visitors.Using Web server Stress Tool when developing and running Websites is important for your web infrastructure:

  • Maximize Uptime: Resolve performance critical issues in your web server before they bring down your website
  • Maximize Performance: Make sure that your websites and applications are given the server resources they need when they need it to guarantee a high quality user experience
  • Maximize ROI: Get everything out of the investment in your web server technology through consistent and in-depth testing and analysis
  • Maximize Value: Web server Stress Tool is the most cost-effective solution in the market for simulating performance, load, and stress tests for your web server
  • Minimize Efforts: The software installs in 5 minutes and works with all web servers

    Unit Testing
    In computer programming, unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class. The following list describes two ways to test Web services with unit tests:

  • The Web service runs on an active Web server. There are no special requirements for testing a Web service that runs on a local or a remote Web server, such as IIS. To do this, add a Web reference and then call the Web methods of the Web service from your unit tests just as they would call the methods of a program that is not a Web service.

  • The Web service is not hosted in an active Web server. We can test a Web service that runs on your local computer and not in a Web server, such as IIS. To do this, you use an attribute provided by the Team System testing tools to start ASP.NET Development Server. This creates a temporary server at local host that hosts the Web service that you are testing.The purpose of unit testing is to test individual hardware or software units, or small groups of related units. The emphasis is on removing coding errors (typos, basic logic problems, syntax errors). In some cases, code inspection and walkthroughs are used to verify those units or code paths that are not feasibly tested.

Integration Testing
Integration testing(sometimes called Integration and Testing, abbreviated I&T) is the phase of software testing in which individual software modules are combined and tested as a group. It follows unit testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an integration test plan to those aggregates, and delivers as its output the integrated system ready for system testing. The purpose of integration testing is to verify functional, performance and reliability requirements placed on major design items.

Objective of Integration testing is to make sure that the interaction of two or more components produces results that satisfy functional requirement. In integration testing, test cases are developed with the express purpose of exercising the interface between the components.
Integration testing can also be treated as testing assumption of fellow programmer. During the coding phase, lots of assumptions are made. Assumptions can be made for how you will receive data from different components and how you have to pass data to different components. During Unit Testing, these assumptions are not tested. Purpose of unit testing is also to make sure that these assumptions are valid. There could be many reasons for integration to go wrong, it could be because. Interface Misuse – A calling component calls another component and makes an error in its use of interface, probably by calling/passing parameters in the wrong sequence.