Software testing

Software testing

ยท

5 min read

What is software testing ?

  • Software testing is defined as a activity of removing bugs from a software or application making it bug free and improving its overall performance.

Why software testing is needed ?

  • Bugs in software or application can likely lead to loss of monetary value , jobs and even loss of humans. Hence software testing is needed in order to remove the bugs , quality assurance of software and make the software or application more optimized.

  • for example - A e-commerce website interface was not properly tested before it was hosted on a public domain , as a result due to its poor orientation in mobile devices , company faces a huge loss because clients lost their interest and switched to other websites.

Who does software testing ?

Software testing can be performed by ->

  1. Software testers
  2. Project developers
  3. Team Managers
  4. End users

Software Development Lifecycle ( SDLC )

Software development lifecycle consists of 6 Phases ->

  1. Requirement Phase - In this phase clients requirements are gathered and listed in SRS ( software requirements specification document )

  2. Analysis Phase - Once requirement gathering is done , the SRS document is approved by the client itself to verify all the listed requirements.

  3. Design Phase - In this phase architecture of the software product to be developed is done by senior developers , here how each component of the software will work is described. The output of this phase is high level document and low level document which works as input to the next phase.

  4. Coding Phase - All developers work in a team in order to write the code and develop the product . Hence output of this phase is source code document and developed product.

  5. Testing Phase - Testing Phase helps in quality assurance of the software . Source Code is passed to the testing team in order to make it bug free and more optimized. Testing can be done manually or in automated way. It also ensures that each and every component is working fine and error free.

  6. Deployment and Maintenance Phase - After successful testing product is deployed to the customer for the use . Deployment is done by deployment engineers or implementation engineers . Once the customer starts using the product , actual errors or faults comes up in order to solve these errors maintenance drive is done maintenance team over a specific period of time to resolve those errors.

Verification & Validation

Verification

  • Verification addresses the concern: "Are you building it right?"
  • Ensures that the software system meets all the functionality.

Validation

  • Validation addresses the concern: "Are you building the right thing?"

  • Ensures that the functionalities meet the intended behavior.

Types of Software Testing

1. Unit Testing

It focuses on the smallest unit of software design. In this, we test an individual component or group of interrelated components. It is often done by the programmer by using sample input cases and observing its corresponding outputs.

2. Integration Testing

The objective is to take unit-tested components and build a program structure that has been dictated by design. Integration testing is testing in which a group of components is combined to produce output.

3. Regression Testing

Every time a new module is added leads to changes in the program. This type of testing makes sure that the whole component works properly even after adding components to the complete program.

4. Smoke Testing

This test is done to make sure that the software under testing is ready or stable for further testing It is called a smoke test as the testing of an initial pass is done to check if it did not catch the fire or smoke in the initial switch on.

5. Alpha Testing

This is a type of validation testing. It is a type of acceptance testing which is done before the product is released to customers. It is typically done by QA people.

6. Beta Testing

The beta test is conducted at one or more customer sites by the end-user of the software. This version is released for a limited number of users for testing in a real-time environment.

7. System Testing

This software is tested such that it works fine for the different operating systems. It is covered under the black box testing technique. In this, we just focus on the required input and output without focusing on internal working.

8. Performance Testing

It is designed to test the run-time performance of software within the context of an integrated system. It is used to test the speed and effectiveness of the program. It is also called load testing. In it we check, what is the performance of the system in the given load.

White box testing & Black box testing

White box testing

  • White box testing includes testing of internal structure of the software code ( algorithms and logic behind the code is also tested ).

  • White box testing is widely used in unit testing , integration testing and system testing.

Black box testing

  • Black box testing does not includes testing of internal structure of the software code ( algorithms and logic behind the code ) only functionality of the software is tested by taking different input cases and getting the desired output.

  • Boundary value analysis is a example of black box testing where we test our code against custom test cases.

Did you find this article valuable?

Support Sayam by becoming a sponsor. Any amount is appreciated!

ย