Importance of Software Testing

Yes I’m sure most people nod a head at this title, and even perhaps say ‘why are you telling us something we already know’. But lets be honest.. do you know that there are some methodologies and best practices behind this. Its not just a case of random. Or have a developer write a User Acceptance Test and voila. It all works. Well. Guess what. There are better ways to do it.

Software Testing is:-

  • Used to highlight potential issues, defects and errors that might have occurred during the business analysis or requirements gathering, design, development and even the deployment of the solution.
  • Used to have a benchmark of the Quality of the solution (i.e. User Acceptance Testing / Solution Testing). A measured level of quality delivered to the customers helps in gaining acceptance, adoption and confidence. Does it achieve what it is meant to achieve? Is it fit for purpose
  • Necessary in order to provide the full spectrum of solution capabilities from User Interface to Performance Benchmarking.
  • A way to lower maintenance and support costs.
  • Ensures Customer’s reliability and their satisfaction in the application.

So how does it fit in to my Software Development process. As part of the Software Development Lifecycle, there are four major steps, which are known as the PDCA (Plan, Do, Check, Act) cycle.

pdca

 

Heres a quick breakdown of the PDCA cycle:-

  • Plan:  Define the requirements, and the solution goal. Work out the plan for achieving that specific goal. i.e. Using infopath an dWorkflow in Sharepoint to…
  • Do/Execute: Depending on the plan strategy decided during the plan stage we do execution accordingly in this phase. i.e. Develop the Application
  • Check: The testing phase. Check and Test to ensure that you are moving according to defined plan and are getting the desired results.
  • Act: During the check cycle, if any issues are there, then we take appropriate action accordingly and revise our plan again.

So developers and other stakeholders of the project do the “planning and building,” while testers do the check part of the cycle. Therefore, software testing is done in check part of the PDCA cyle.

White box, black box, and gray box testing?

White box testing is a testing strategy based on logical paths, code functionality and structure, and how the software is being implemented. Because of this technical nature – White box testing generally requires detailed programming skills.

Black box testing is a testing strategy based solely on the actual requirements and specifications. Black box testing requires no knowledge of internal paths, structures, or implementation of the software being tested.

Gray box testing. In this we peek into the solution being tested briefly just to understand how it has been implemented. Then we use this knowledge to define the correct black box tests. So in many ways it’s a bit of White Box and Black Box Testing