What is Software Testing?

Software Testing is an integral part of the Software Development Life Cycle (SDLC). In SDLC, once the build/product development is complete it has to be tested before it goes to the end users so that all the possible bugs in the build are identified and rectified. The objective of software testing is to identify the possible bugs in the software build by executing positive and negative test cases and finally confirming that the product is ready for test by end users. Broadly a software Testing process starts with creation of Master Test Plan followed by Test cases creation. Finally the test cases are executed and a Test case summary report is published which shows the testing results. The process may change from organization to organization. Test Manager, Test Lead and Testers are the roles involved in the software testing process. They are an independent group and do not have any overlap with the development team. Software Testing can be done manually as well as automated.

Types of Software Testing

There are various types of software testing performed by the testing teams –

Unit Testing

As the name suggest, Units or the possible testable parts are tested by the developer. Unit testing is the 1st level of testing by a developer. In other words, you can call it as a self-quality check by the developer to ensure that all the bugs are identified and rectified before it reaches the testing team.

Smoke Testing/ Sanity Testing

It is a basic level of functional testing performed by the testing team to check if the basic functions are working or not. This is a milestone based on which the next level of testing will be done or not done.

Functional Testing

A test performed to validate the functionality of the application. Based on the business requirements document (BRD), where the functionality are captured as provided by the business team, the tester checks the functionality in the application vs the requirement.

Compatibility Testing

It is a test of the application functioning with different browsers, Operating systems and hardware.

Regression Testing

Once a testable part of an application is tested, the next step is to add new function to it and so forth and so on. Regression testing is a process of testing if the application is working as expected with the addition of new function.

In short, it is a process of testing to validate the application on the previously developed and tested component of the application along with the new function.

Performance Testing

It is a non-functional testing which focuses on testing the application and determine the scalability, throughput and reliability of an application. Load Testing and Stress Testing are types of performance testing which are performed by the performance test team.

System Integration Testing

It is a test in which all the modules of the application are combined together and tested. It is an end to end testing performed by the tester, which starts from the upstream application/s to the downstream application/s ensuring that all the applications are functioning as expected. Once a System Integration Testing is completed and approved, it gives way to User Acceptance Testing.

User Acceptance Testing

Test performed by the end users/customers where the end users get a chance to test the application and validate the functionality requested vs. the functionality available in the application. The most important test in any software development cycle as it determines the performance of the teams involved.

Contact us for any testing services requirement.