Wednesday 23 August 2017

What Kind of Tests should a Developer conduct before the QA Team takes over?




Most enterprises nowadays test their software applications throughout the software development lifecycle (SDLC). Many businesses even switch from conventional software development methodology to agile methodology or DevOps to deliver high quality software by unifying software development and testing activities. But a number of studies have shown that the programmers can fix the bugs or performance issues identified in a software application more quickly if testing starts early in the SDLC. Most programmers lack the skills required to evaluate the quality of an application effectively by performing and repeating a variety of tests. But they can easily perform specific kinds of tests before handing over the build to the QA team.




Tests Programmers must conduct before handing over the project to QA Team



Unit Testing



A tester must understand the source code and know the internal program design to test individual modules or components of the software. Hence, unit testing is often performed by programmers instead of testers. The programmers can run unit tests during the development process to check if the code is working in the expected way. However, the testers must perform unit test to assess the modules or components of the software if they are not required to compile the source code.

Regression Testing


The programmers must perform regression testing to identify defects generated due to changes made to a particular module or functionality of the software. Normally, the programmer conduct unit regression tests and the testers conduct functional regression tests. However, the developers have to use the right test automation tool to conduct regression testing effectively. They can even use the tools to perform regression testing after each nightly build. The regression testing results will make it easier for them to assess the quality of the build precisely.

Integration Testing

The programmers also need to perform integration testing to evaluate combined modules of the software. A module can be individual applications, code modules, or client and server applications. Integration testing becomes more important if the modules are written by different programmers. The programmers can easily perform integration testing by using specialized tools. But they must perform integration testing during the development process to ensure that the modules are combined seamlessly. 

Smoke Testing


The developers can easily accelerate software testing process by assessing the quality and stability of a build during development process. They can perform smoke tests to check if the build is stable and the testers can perform the required tests smoothly. Also, the smoke testing results will help the programmers to identify the bottlenecks that will prevent the testers from evaluating the software elaborately. The developers can speed up smoke test executions by getting the tests written by QA professionals.

Sanity Testing

Often programmers perform sanity testing to ensure that the build is stable enough for elaborate testing. While performing sanity testing, the developers evaluate the software, network, environment, and external systems by running the application. However, they evaluate these factors quickly and do not document the tests. The programmers must perform sanity testing during development process to accelerate the entire software QA testing process.  

Security Code Review

Often the insecure pieces of code in the code base make the software vulnerable to a variety of security attacks. The testers have to perform elaborate security and penetration testing to check if the software is effective in resisting targeted security attacks. But the programmers also need to review the code base and identify the pieces of code that are insecure. The security code review process will further help the programmers to eliminate all security vulnerabilities by rewriting the source code. However, the code written by a programmer must be reviewed by another programmer to make the security code review process more effective.

On the whole, the programmers can easily reduce testing time by performing certain tests before handing over the project to the QA team. However, the types of tests a programmer can conduct will vary from one project to another. Also, the programmers have to collaborate consistently with QA professionals when an organization adopts agile methodology or DevOps.

No comments:

Post a Comment