Sunday, May 17, 2015

Are we building the product right? Are we building the right product?




The process of testing a product alone is not a wide area to discuss about, and it requires no knowledge in rocket science to execute such a process. Nevertheless the integration of a Quality Assurance process to a normal testing process will answer the rhetoric question I brought up as the topic and also it requires great effort and knowledge to combine the two things. The main key areas to consider when executing the above said combined processes and the challenges that one will encounter will be discussed here.

The major challenges which hinder the QA process can be pointed out as follows,
·         Lack of resources. (Human, machine etc)
·         Tight release schedule.
·         Unclear requirements.
·         Miniscule margin for error.

Most of the time we fail to create the real environment that our client has. Therefore such failures will lead to results that differ from actual test results. In addition to that if the tester fails to recreate the business process in their QA environment due to lack of knowledge about the business requirements, it is certain that the end user will not be satisfied with the final product.
The next big thing that every tester will encounter is a very tight release schedule and most of the time only a smoke test is carried out on the product. In my experience this can happen owing to several reasons, If the product developer consumes more time than the allocated time period it will impact the time allocated for testing and implementation, On the other hand, although the developer releases on time, if the number of bugs are high on the QA released product, the product will ultimately have to iterate several times in the Software life cycle process which consumes more time and resources. This results in the tester having to re-execute the same testing which can be considered as a re-work. Also the poor project planning can also be another minus point on the product delivery dates. All the above mentioned factors have a high impact on the first point I have mentioned as challenges.
Nevertheless most companies have adopted ‘Agile’ life cycle process. In this software life cycle, the requirement analysis has a tendency to weaken in its initial stages, therefore developers and project managers are more likely to implement premature decisions on the half-baked requirements gathered from the client. This also leads to iteration of the development – testing process, and this will enter a very risky position if such product releases bypasses the tester. So this is the exact place where the tester needs to be equipped with the so-called weapon named ‘Quality assurance’.
The next challenge ‘Miniscule margin for error’ can be simply explained,
           
When a developer makes a mistake, it is a BUG...
                                    But when QA makes a mistake, it’s a RECALL

A QA mistake can affect the whole project because QA can be described as the last line of defense, so we as QA engineers should ensure no recalls!


To overcome the said challenges, QA engineers should work according to a plan and also reviewing all specifications and documents for a project as early as possible will save both time and money.
If an urgent release is to be done, the pre-written test cases using automation tools like Soap-ui, Load-ui or whatever the automation tool that suits the relevant QA process and the software architecture of the company can be executed to get maximum results with no effort. So as mentioned earlier no tool can check for the quality of software, they may succeed in testing performance, Scalability, functionality, etc but a real professional QA is the person who should define the limits and boundaries of a product.
In my opinion we as QA engineers should not be restricted to one or two technologies that we use in our QA process but we should always explore more so that we can use them to automate the process in such a way that it gives the accurate test result. And also being restricted to a set of rules and regulations in testing will only make you act as a traditional tester who reports bugs to a developer but being a QA who thinks out of box with a free mind and in different ways will satisfy both the company and the customer.

Even though the mentioned precautions do not guarantee success, it will certainly be a step in the right direction!
But remember to ask yourself the question always;

“Are we building the product right?  And are we building the right product?”
                                                                                                                                                                                                                                                                                                                                                                                               


                                                                                                                                                           
 R. Marlon Abeykoon-
                                                                                                                                                        Quality Assurance Engineer
                                                                                                                                                       DuoSoftware (pvt) Limited