The 5 Ws of Software Testing
Bangalore: Testing is an important component in the software development life cycle especially with bugs and defects being widespread and unprecedented. The world has already witnessed 266 security breaches in the just the first 6 months of 2012. Software glitches have cost the US economy a whooping $100 billion annually.
Testing is a never ending process and it should be conducted throughout the development to ensure that the application works as expected.
Let us have a look at what software testing is all about with the help of 5 Ws (Who, What, When, Where and Why) as mentioned in securesoftwaredev.com.
Programmer Vs Customer (Who)
The question of whose expectations to meet always arise. Would it be those of the Developers or of the Users? Users and developers have their own expectations about the application and the codes. The expectations from both sides should be weighted properly.
Functionality Vs Performance Vs Load Vs Security Testing (What)
An important task for testers is to verify if the application conforms to its specifications and requirements. Using either Manual or Automated testing methodologies, testers would need to test the applications user interface, the APIs, the networking to ensure that the application functions the way it is expected to.
Testers not only need to ensure if the application can handle a large amount of data but also if it can sustain heavy traffic on occasions when there are many users accessing it at the same time. Performance testing is done to benchmark the application performance in real world conditions and to identify the bottlenecks that can hinder performance.
With the increase in the number of applications requiring a user to enter his/her personal information such as the account number or credit card information, security is of an utmost concern. Testers would need to ensure that the errors in log in and other error messages are well documented for future references. With regards to applications that contain vulnerable information, testers should ensure that the application block access to an account if a wrong password is entered consecutively.
Unit Testing and Integration Testing (Where)
Unit testing and integration testing are both used to verify the internal quality of an application. The major difference between them is the length of the codes. As unit testing targets a single class, shorter codes are required. While for integration tests, the codes are usually lengthy. Both testing is important in the SDLC as they help the implementation of individual components and verify the functionality of the application as a whole.
Test Before Writing Code or After/ Test-First or Test-Last (When)
Tests can either be written before the code is complete or after the code is complete. Test-Last help in verifying that the code works as expected while Test-First identify how the code should work. Writing the test first has its own advantages although it may seem aberrant. It prevents defects and bugs from entering the code and later helps in designing.
Manual Vs Automated Testing (How)
Software testing can either be automated or manual i.e. either a human or a computer can perform. It should be remembered that all tests cannot be automated and it often becomes difficult for a tester to choose what needs to be automated and what has to be manually tested.
Post your Comment
All form fields are required.