• info@helpingtesters.com
  • helpingtesters

How Software Testing is deviating in Real World

November 3, 2017
Software Testing deviating, why Software Testing is deviating, reasons for testing deviation, deviation in software testing process

In Software Development Life Cycle(SDLC), the Testing phase is considered as one of the very important phases among all the phases. Not only because of all the issues or bugs reported in this phase but also in order to increase the product/software quality and global acceptance of the product. But Software Testing deviating from the actual processes that are supposed to be followed. In this article, we will analyze the reasons why Software Testing deviating in the real world.

If we go deep into the Testing phase, then we will find that the Testing phase is further divided into many sub-phases, called as Software Testing Life Cycle (STLC). STLC is divided into few sub-phases. They are

⇒ Requirement Gathering & Analysis: Under the Requirement Analysis phases, the tester goes through the project requirement document or user stories thoroughly and clarify all queries regarding the requirement. A proper understanding of the requirement is done. Based on the understanding, the test cases are derived and the testing is done based on the test cases.

⇒ Test Planning: Test planning to be done prior to testing and everything should be well documented. Test Plan should include all the possible testing techniques, different criteria, Resource Involved, Devices detailed, version details and much more. It basically describes the testing scope and activities and is the basis for the formal method which is to be followed for performing software testing in a project.

⇒ Test Case Development: Test cases development is one of the important parts of STLC. The test cases should be well documented and should be covered all the possible aspects that are both the positive and negative scenarios required for testing. And the test cases should be properly followed while the testing is done. The test case coverage should also be done properly based on the test case status. Sometimes the test case is also used as to create traceability metric for the created defects.

⇒ Test Environment Setup: Before testing is executed, the setup of the testing environment should be done in order to execute the testing fluently.It should support test execution with hardware, software and network configured.

⇒ Test Execution: Test execution is the process of performing testing and then comparing the actual results with the expected results. Executing test cases in test execution phase with the intent to find more and more defects and break the system.

⇒ Test Cycle Closure: Test Cycle closure is done once the software is delivered. It consists of few major tasks like- To check which planned deliverables and reports are actually delivered, To evaluate how the testing went and learn lessons for future, and so on.

Why is Software Testing Deviating?

Though we all know the Software Testing Life Cycle and its process, are we following the process? Are the companies working as per the process mentioned in STLC? The answer is a big NO. Is Software Testing deviating from actual processes? The answer is YES.

As a consequence, its directly affect the product/software quality and prevent it from global acceptance. There can be thousand possible reasons why the process is not being thoroughly followed by many companies that eventually lead to Software Testing deviating from following quality process. Few of the points where it has been noticed that the testing process is getting deviated are listed below:

Proper Requirement analysis is not done for the project

Starting with the very initial stage of project development, the project requirement is thoroughly analyzed and all the queries should be properly clarified before the testing is done. Along with the project requirement, the tester should also understand the business requirement that is Why or For what purpose the software is built and where exactly it is to be used. But in order to increase the pace of quality activity, the requirement is not properly analyzed and clarification of the unclarified points are not done by the software testers.Sometimes it happens like, they even do not go through the project requirement and get directly involved in the testing activities. As a result of which testing is done in inappropriate or ad-hoc manner. This is the very first stage where we can see Software Testing deviating from the defined process.

Testers are not writing test cases

As discussed above, test cases are very important aspects for testing the product in all possible aspects as it contains both negative and positive scenarios which are related to the software/product requirement. But it has been seen that, for small mobile projects (which extends for at most 3-4 months), the software testers or QA Engineers are not writing the test cases and an informal way of testing is performed. As there are no test cases, so an informal or ad-hoc method of testing is being followed. For this type of scenario, the project budget and the duration is a vital factor. In order to keep the budget low, many critical defects are missed out and which results in the failure of the software. Test Case design phase of STLC when skipped results in Software Testing deviating again.

Project Billing to client is not properly handled

In some project, it may happen that more QA effort is required and clients ask for an additional software tester for increasing the pace of QA process.

In such situations What few companies do it, they took an extra amount from the client but does not increase the QA resource count. As a result, it not only creates an extra burden on the software tester but also adversely affect the product quality and it deteriorates. In some cases, the software tester has to work for more and additional hours in order to complete the testing.

Proper and Experienced Resources should be allocated to the project

In the urge of making more profit and rapid growth, many companies lack in allocating proper resource to its respective projects. They are always in the mindset of completing the task with some fresher or less experience guy rather than getting a highly experienced person into the job.This is all because an experienced tester will always charge more amount than a fresher or less experienced guy. As a result of which many big projects are not problem handled or mishandled as they are in the inexperienced guys. So this is also one of the aspects which laid to the deterioration of the product quality.

Project should have fixed resources and frequent resource swapping should be stopped

In small companies and in startups it has been noticed that due to lack of experienced resources the testers are frequently being swapped or moved to different projects in a very short period. It happens something like,Suppose a Tester X have gone through the requirement of Project A and later on it was found that Tester X is being shifted to another Project B. So, for Project A, again a new Tester Y is assigned, who will go through the requirement, clarify the doubts and will do the testing. This not only hampers the project quality but is also time taking and also increase the project cost.

Non-Allocation of Project Leads or Managers for small budget project

With the increase in the mobile technologies, mobile apps are a boon to modern life. There are many mobile apps and web applications which can be built within a very less time span of 2-3 months. In many companies for this types of small projects, Project Lead and Managers are not being allocated. This is generally done to reduce the project cost. Such project is generally being handled by senior developers or Business Analyst, who do not have or have less knowledge about the different aspects of the project and business requirement. A success of a project lies in the hand of its leader, so there should always be a Project Lead or Manager to handle a project.

Testing is always under the grip of time constraint

As testing is the final activity which is to be performed before the product is being delivered, so the software testers always fall in the time constraint zone. Let see how- Suppose 10 hours have been assigned for a project out of which 7 hours for development and 3 hours is assigned for testing. But it has been noticed that in real time 8-8.5 hours have been used up for development and 1.5 hours is only left out for testing. As a result, the software tester responsible for testing the task is always under pressure to complete the task within the given time constraint. Sometimes they have to work additional hours which is not counted to complete the testing. Time constraints make it impossible to do everything. Software tester should get enough time for proper testing of the build and can help in increasing the product quality by reducing the total bug count. This is one of the important factors that lead to Software testing deviating from being compliance with Time management.

Multiple project allocation to a single tester

Multiple project allocation to a single tester is a basic practice generally followed by small companies and organizations. In small companies there is always a constraint on budget and resources, so they are always on the go to get more profit with a much lesser investment. Under this situation, the tester working in multiple projects is not able to focus on the testing task of those project. Something because of this, it was found that some important scenarios are missed out and some serious bugs were not caught. Though this process followed by small companies can earn them more profit, but it adverse effect gets reflected in the product.

Sometimes, this process is also followed due to unavailability of proper or experienced resources required for the project. Won’t it result in software testing deviating from 100% commitment?

Does Domain knowledge affect the software testing process?

Domain knowledge performs a very important role in the testing process and tester should have the knowledge of the domain which is to be tested. Having domain knowledge not only help the tester to test the functionality properly but also helps in thinking out of the box and try to identify more defects. It also helps in performing testing of the negative scenarios.Domain knowledge assures that the testing is done in the correct direction and will also help in speed up the testing process. It also benefits the companies in some aspects like- the time and money to be spent for training about the domain knowledge to the tester will get saved. Testers with domain knowledge is an asset to the company, as they can be utilized in 2 ways- for testing purpose and for providing training to the freshers or inexperienced testers.

But some companies, try to engage testers into the project without the domain knowledge required for the project. Which results in skipping of negative scenarios, more and more bugs and final, bad product quality.

 The decision to stop Testing

It has been noticed that software testers were in great enthusiastic to start the testing activities and prepare test plan, test cases and many other documents required for testing, And they forgot to focus on taking the decision when to stop the testing. There are different points which should be kept in mind before the testing for a specific project is to be stopped:

  • When there is 100% requirement coverage for the project is done.
  • When the estimated or defined defect count is achieved.
  • When all the blocker or showstopper defects are fixed and there is no severity or critical status for any of the open defects.
  • The number of open defects count has reduced to negligible.
  • All high and top priority defects are well tested and were closed.
  • Proper regression is done for proper regression suit execution.
  • Very few medium priority defects are open and have a workaround in place.
  • Test coverage has achieved 95% and above.
  • All critical test cases are executed and are in passed status.
  • Complete functional coverage of the whole project is achieved.
  • Project or test finish has reached its deadline.

There are many more points which helps in taking the decision of when to stop testing.

But when the coming of small companies, no such things are followed. What really matters is the testing for the functionality is done and that is also not properly done. No or less important is given to:

  • What is the Test coverage for the project?
  • How much test cases have been covered as there are no proper test cases for it to follow?
  • Sometimes it has found that many of the critical or top priority issues are in open state or not properly tested and so on.

This causes software testing deviating from quality and makes it tough to understand actually when is the testing is to be stopped. As its final impact gets reflect in the product or software which was developed.

Unavailability of resources for test execution

For small companies or startup, there are many limitations which arise during the testing process. One of the very important points is the unavailability of proper devices, laptops, etc. So instead of testing a mobile an application in physical devices, tester have to test the mobile application in simulator or emulators and as a result, many UI and the functional issue arises when the same application is used in real devices.

Sometimes the browser related issue is also there, for example- Suppose a website need to be tested in Mac Safari browser, instead of which tester have installed Safari in the Windows system and have tested the website. When the same website is opened in Mac Safari, then clients are getting menu UI bugs. So, there should be proper test resources available in order to perform testing.

Regular updating of the defects and its status

Nowadays many companies are following the Agile methodology- Where the software is built is small parts rather we say it in installments. There is a regular change in the requirement and as a result of which the test cases should also get updated. But it has been seen that the test cases are not being regularly updated based on the requirement and the testing is done based on outdated test cases. As a result of which many of the functional test cases will get failed and will wrongly get opened. Moreover, sometimes testers are not evenly updating the defect status, whether it is Opened, Resolved or Closed. Even when the developer put the defect in InDev Testing status and ask the tester to test, then even after testing the tester forgot to move the defect to Resolved or Closed. As a result, it creates a problem in calculating the test coverage activity.

Even though all these reasons are discussed and action items are planned to overcome these, it has become very difficult to stop software testing deviating from well-defined processes to be followed. And hence many times, the quality of the product gets compromised and no proper action is taken to stop software testing deviating from the real world.

About the author

Asim Mondal author

Asim is ISTQB certified tester, expert in QA/Testing with a Master's in Computer Application, whether it is Mobile testing (Android, iOS and windows) or website testing he always lead the way in IT systems efficiency and a swift resolution of issues minimizing his employer’s risk.

Leave a Reply

Your email address will not be published.