The biggest software testing challenges

testing-challenges-cover.pngSurprising as it may seem, most of the problems that testing teams have to deal with every day are non-technical. Tests constitute an important part of software development but unfortunately are often undervalued by other stakeholders. Testing process aims at finding bugs before a potential client does, so good testers inevitably bring bad news most of the time. This is probably the reason why they aren't very welcome guests in the developers' sections: more defects equals more work for the development team. At this point, it's important to remember that creating a software product involves many people with different roles, but with the same goal: the best quality assurance. The good first step towards overall success is understanding each other's work and become aware of the problems that could be encountered on the way. In this article, we will present you how we grouped the common challenges of testers which can be solved more easily than you think. 

The most common testing challenges

Communication issues 

This one can be a serious problem not only for testers but for each team member during software development. As it was mentioned before, working on a project requires collaboration between a lot of people. We all know that when there are many specialists trying their best to do their work against all odds, it's almost impossible to avoid conflicts. And by conflicts, we don't mean only QA teams' and developers' tough relationship, which needs to be on the same page, if our objective is to deliver a complete product in the end. When it comes to big companies, team members often have to work in different time zones, or there are some management-related issues (for example inadequate test-related risk management or problems with scheduling). It makes it much more difficult to make collaborative decisions on a product when you can't just walk up to someone's desk and explain what you have in mind or even talk to them online right away to ask for an opinion. But the distance isn't the only possible obstacle. In many companies testing and engineering processes are not properly integrated with each other. Components and subsystems are either tested before they are mature enough, or are already too complex to be tested one by one. Setting up a transparent process to get everyone on the same page becomes hard for big teams across different locations, but even harder for those who work in different tools, even while sitting in the same room. A lack of communication usually causes significant delays in delivery, and even budget exceeds.

code-software-quality.png

Impossibility of complete testing

Testing software is related to the unnegotiable fact that there are always millions of combinations and possible reasons why something can go wrong. Even testers with a wild imagination are simply not capable of spotting each and every one of them, especially if the release due date is getting closer, and Project Manager and Product Owner are watching everyone's back. National Institute of Standards and Technology in its report The Economic Impacts of Inadequate Infrastructure for Software Testing confirms that software is typically delivered with approximately 2 to 7 defects per thousand lines of code, which results in major systems being released with hundreds or even thousands of bugs, as today it is common to find consumer products with a few million lines of code. Let's be honest, there's never enough time to find and test all alternatives of test conditions. That can be frustrating as well as cause communication issues described in the paragraph above. This is why it's so important to assign priority to requirements before we move on to the further stages of the project. And that leads us to the next common problem, related to non-sufficient project objectives' specification. 

Lack of requirements documentation

The general rule of every process is that each stage matters equally, but as the figures show, a bug can cost us up to 880 times more when it's found during the maintenance phase in comparison to requirements gathering! Unfortunately, many testing teams still don't pay enough attention to the requirements. Of course, they are usually collected, as without it starting work would be rather impossible, but testers have to deal with lots of problems such as insufficient business analysis of requirements, multiple tools used by the stakeholders to gather all their remarques or just overall chaos in this phase of the process. The case is that requirements must be well-understood by testers so they can test the software properly and prevent the defects.

Also, it’s not unlikely that after some time into creating test specifications, a team learns that the requirements have changed. Hardware and software are upgrading quickly these days, especially in agile environments. Techniques like Rapid Application Development can produce a new version of the software every week or so. So requirements specification changes are a huge challenge to testers and lead to abnormally long turnaround times. This means that any change in the app's features or requirements must be updated to the QA team as soon as possible. In order to release a product of great quality, which all team members and managers aim for, it is crucial to make a good structure of the project's objectives, clearly describe and prioritize them, and only then proceed to the next steps without worrying about going back and forth all the time.

testing-bugs-costs.png

Unstable environment 

Testers don't always have control over the environment they work in. Usually, there's more than one testing team member and everyone makes changes during the process. It's hard to keep track of what is deployed in the current build and what isn't. Also, developers often implement changes in the test environments in order to fix some of the spotted defects or simply add new issues to be tested. The case is that the QA team isn't always informed about these improvements and that brings a disorder in, as it's hard to test the app of which you don't have complete and actual information. It may seem that more test environments would solve the problem, but it's not that simple. More test environments may signify a slower server and poorer quality, but above all, it makes the regression testing almost impossible. Last but not least, it has to be remembered that the system may behave differently during tests than during actual operations. 

Many problems, one solution?

So, in an ideal situation, we should be able to store everything from requirements through development tasks and test cases up to the defects in a single place. We also should be able to give these objects a structure and track relations between all of them during the development lifecycle. This approach allows maintaining transparent communication between developers, analysts, and testers, as well as making the managers' life easier by letting them track the whole software project at a glance and get real-time updates about the work in progress. Apparently, Jira Software can fulfill these expectations and become the command center of our software project, if we dare to incorporate requirements and tests into it. 

Except being a project management tool, Jira was originally created to detect bugs, so it appears to be a perfect choice for this purpose. If we're just starting and don't have a big team, we can even start right out of the box and create a single project for all requirements and tests. But the more we grow, the more complex the process becomes. We can add Confluence to store detailed specifications and then just track the workflows and defects in Jira. We can turn on a CI loop in Bamboo or Jenkins to automate repetitive checks on the code. But then we start feeling we would need tighter integration of the tool with the test management process. There are no dedicated test reports, we cannot visualize the structure of the objects inside the project, and everything we need we set up manually with the help of the Jira Admin. This is where dedicated testing apps from the Atlassian Marketplace come into play.

Requirements and Test Management for Jira (RTM) provides you with requirements and tests embedded into Jira Software projects, which means a possibility to execute the whole process in one place from end to end. Thanks to the features it adds to Jira, such as transparent tree-structured view of Requirements, Test Cases, Test Plans, Executions and Defects, high-grained relations tracking or built-in test results reports, exchange of information between the team members gets much easier. Each stakeholder knows what happens every step on the way, is familiar with the priorities and final goals, as well as stays aware of all the implemented changes. What's more, RTM for Jira includes requirements as a part of testing, which constitute its great advantage over other tools. This way, requirements are always there to make sure we're on the right path and allows us to verify if they're all well covered.

requirement_coverage.png

In RTM for Jira you can verify if all your requirements are covered by related objects

If your team uses Jira Data Center and needs more flexibility, we recommend you another app of ours, TestFLO. It is a fully-customizable test management solution. You can decide on executing the whole testing process inside one Jira project or store requirements separately, if it fits your needs best. The app allows to easily create test case repositories for cross-project testing as well.

testflo-configuration-projects.png

Keynotes 

Testing is without any doubt a tough game. There are many parts of the process and even more ways they can fail it. From the very beginning, where requirements are set up, until reporting, which involves reporting bugs to the development team and/or managers, testers must face lots of difficulties. Some of them are related to communication problems with the rest of the stakeholders, as QA teams are perceived as the bad guys of the whole process. Other issues of testing result from mistakes in workflow management, usually repeated in software development projects, as teams get used to the patterns they frequently follow...even if they're antipatterns. 

The best first step is always to decide on change and try new solutions. The one recommended by us is bringing your test management as well as the whole software development project into one place, because analysts, testers, and developers actually belong to one software team. There are many reasons why using Jira as your testing tool is a smart idea, but making a long story short, you will make the life of your testers much easier and maximize the productivity which will help release the best possible version of the final product the first time around. 

If we caught your interest during our webinar, test Requirements and Test Management for Jira or TestFLO yourself by taking a free 30-day trial from the Atlassian Marketplace. You can also book a live demo via Calendly to see the apps in action. Read more on bringing test management process inside Jira on Deviniti blog: 

0 comments

Comment

Log in or Sign up to comment
TAGS
AUG Leaders

Atlassian Community Events