Author: Giulliana Scuoteguazza
Quality is an essential consideration for any company that builds software. Here at TangoCode, quality is also one of our top priorities.
From the start of our process, we take testing into account as we plan and organize our approaches to meet a client’s needs. We continue to commit to testing as we work our way through the rest of the process.
This approach allows us to create a better product for our customers, and to be proud of our work every single day.
The Early Bird Catches the Worm
Curious how we approach testing? We use a pattern called Shift Left Testing, which allows us to approach software testing early in its lifecycle (moved left on the project timeline). For Shift Left Testing to perform correctly, it’s critical for us to do it as early as possible during the development process.
While individual development team members may have specialized skills and areas of focus, accountability belongs to the development team as a whole. Even if the tester is not present, we keep quality at the forefront of the process with the following methods:
- Code Review. Each Software Engineer’s code is reviewed by a different team member.
- UI Review. The designer checks for deviations from the original design.
- Unit Tests. Unit Tests are conducted automatically after we push new code to a repository.
There’s always room for improvement, and our testers are always looking for new opportunities to grow professionally and stay up-to-date with the latest tools and trends in the market.
The Tester Dives In
To make our testing process more efficient, our testers are always on the lookout for new, creative, innovative ways to use techniques that already exist, so they can serve new purposes.
At TangoCode, we use Scrum. Scrum is a framework for project management. It emphasizes teamwork, accountability, iterative, and incremental progress focusing on catering for the client. The entire framework relies on one single tenant: Start with what you see or know. From there, adjust as necessary. To take advantage of the collaborative agile framework, we include testers from the very beginning.
First, our Quality Assurance (QA) process participates in project estimates by identifying scenarios and inter-dependencies. We also work by seeking to expose potential new paths and options for exploration.
As we mentioned before, our testers are part of the model and are always key participants who ensure the success of Scrum. While there isn’t a specific phase for testing, the tester’s role contributes throughout the model.
Planning is Key
The QA team uses Mind Mapping to visualize connections between related ideas. This process takes place early, between Refinement and Planning meetings. The objective of the Mind Map is to cover the most relevant user stories and conduct tests throughout the Sprint. During this Mind Map, the team will also consider the possible requirement for different types of testing.
Test design and execution are performed simultaneously, to provide feedback to the team as quickly as possible. For this purpose, we use well-known test management and bug-tracking tools, including TestRail and JIRA. Depending on the needs of the client, however, we may change our tools.
At the same time, we’re conducting other activities on the side. These include several automated testing processes, including unit testing (Developer), web service testing, and smoke testing (Test Automation Engineer).
Not familiar with automation? Don’t worry it won’t replace testers. Instead, it will merely enable us to focus on more interesting things. Smoke test automation, for example, is a set of test cases used to verify that the main functions of the software work properly.
You can imagine this is really important. Not only is it time-saving, but it’s also an effective way to verify main software functions.
Keeping Stakeholders in the Loop
The Tester is responsible for providing a testing report for internal use during every Sprint. The aim of the reports is not to show absolute numbers, but to provide ample information to measure Progress, Quality, and Productivity.
We are seeking to satisfy our client – that is our ultimate goal. To this end, we work to make their vision a reality. We don’t consider our projects complete unless we get the seal of approval from the client, and we plan to keep it that way!