November 25, 2013 1 Comment
Like in the software development life-cycle (SDLC), effective software testing is based on a number of factors that affect the development and sustainment of continuous improvement of processes. Chief among them is building the right team. These are six of the main considerations to ponder when doing so:
Roles and Responsibilities
More often than not, the team that has well-defined, complementary roles for each member will execute at a higher level than a team of great testers who opt to do their own thing. In any team every member should understand exactly what they have to do, focusing them at the task at hand instead of wasting resources on overlapping responsibilities.
Before starting of a project, the typical tasks must be explained, discussed and communicated well with each and every team member. After all, they are the ones who will be performing on a daily basis. Whether it is a software tester or a test lead, proper results will be rendered without any delays by setting up the expectations and explaining what results they should strive for.
Points of clarification include:
- scope of the project;
- role and responsibility for each team member;
- key milestone dates and deliverables;
- clear and coherent strategy and plan of attack;
- reminding team of motivating factors, whether they are for their career, personal aspirations, growth as a person, or just general thirst for learning.
It’s unrealistic to assign an application to a tester expecting flawless results without incorporating them much earlier in the process. At the very least, testers must understand the domain and core functions of each application, which makes knowledge transfer sessions nearly mandatory. Even better would be an integration of the team within the initial discussions of the project with other stakeholders (i.e. business executives, developers, architects, database experts, etc). Involving testers in these early stages of software development provides them with a better understanding and knowledge of what is needed and sets up the team for greater success down the line.
When working on specific projects for a prolonged period of time, one may be so caught up in all of the details involved with the process that they forget who they ultimately are working for: the end user. Testers should always keep in mind the application’s domain, which helps to validate the various functionalities they are solving for. However, being able to to think like an end user does not come easy; with experience it does eventually become an integral part of the testing process.
Everyone wants a career that has a clear trajectory up the ladder, and that is certainly the case for software testers. Conversely, they should also have a clear understanding of what is needed in their role now, and what their responsibilities will be if and when they advance to the next level of their career. To that end, regular team meetings can be an effective way to create a process around personal improvement for individual team members, emphasizing skills to focus on in order to continue to learn and grow in their career.
Good to be in automation
It’s well established by now that investing automated testing pays off by speeding up your development and testing cycles in the long run. Unlike manual tests, automated tests are executed faithfully and with the same rigor every time. They also yield reports and trend graphs that help identify risky areas.
With the right tools, automation can implement a single application deployment pipeline – from developer to user – with all the checks to ensure that no bugs find their way to users. Team should be able to develop, safely test and deploy updates seamlessly and as frequently as required, with zero downtime and no impact on users.
Successful companies have a distinct culture that creates a tight-knit community; likewise, successful teams should have their own distinct culture, one that emphasizes teamwork, meeting goals, finishing targets and achieving objectives on time. Each team is different, but as a baseline, team culture should establish a flat hierarchy, leaving behind differences and distinctions and focusing on the needs of the team as a whole. This can be done through working on projects, but also while on team outings like going to the museum, go-kart racing or playing a team sport. A burnt out team will lack the motivation to get things done, so it’s important to recharge the batteries often!