Software Testing for Project Managers

Dear Project Managers, nothing, and no-one can prepare you for the day your boss assigns you to manage a software testing process. Being a Project manager you often need to take on new challenges and create guidelines for projects in a field you are not always familiar with.

You might have some experience working with a team of software developers, which gives you insight into the relevant testing disciplines. Or you may have directly come in as a project manager and need to begin understanding the process from scratch. Whatever the case may be, we are sure you already have enough on your plate. That is why we gathered a few basic guidelines – both technical and methodological – to help you succeed in your new assignment as a test project leader!

Software Testing Approach Guidelines

Software Testing has a lifecycle of its own. The fundamental software test process for any project will follow certain phases-

Test Planning

Test Specification

Test Execution and Reporting

Test Closure and Post-Analysis

Each of these phases has dedicated tasks to be performed which are divided amongst the test leaders and testers of the team.

Test Planning

Following the creation of the project plan, the software QA team creates their test plan based on the guidelines and requirements set by the project plan. This Master Test Plan is a document that sets the tone, basis, and strategy for the test activities within the project. Test objectives, scope, strategy, resources, tools, and schedules are all defined within the test plan. Software testing needs careful upfront planning and these test plans usually accompany the main Project plans.

Test Specification

The Tester’s main job begins with careful analysis of the requirements or test basis and the subsequent creation of suitable test cases. Testers spend much time planning and specifying their tests, test steps and test data, which rely on test design techniques and approaches.

Testers rely on mathematical, analytical, combinatorial and experience-based techniques to define a suitable set of test cases based on the software requirements at hand. (In Software development QA teams, this should preferably happen parallel to the software development activity so that by the time the developers are ready with the code, testers have their test script ready).

Most teams use their own way of recording and specifying their tests using clear structure and templates. The use of a test management tool may help make this process more standardized, transparent and easy to manage. This phase also involves performing reviews and adding more perspective to these tests for different stakeholders.

Test Execution and Reporting

Once the software is ready for the relevant software requirement, testers begin execution of tests as per their designed test cases, steps and test data. These tests may pass or fail and their status is continually reported back. Failing tests result in defects being logged in a defect management system and Project management platform may be required to review, triage and prioritize defects for fixing.

At the end of a test cycle, sprint or release, the test team publishes a report on the test activities performed and the status of the application in response. This report may include a number of metrics like defects logged vs status, tests passed vs failed, performance test results etc.

Test Closure and Post Evaluation

Once the software is released, the current cycle is deemed over, test personnel will work on activities like the closure of resolved tasks and defects, cleaning up of test environments, releasing any virtual test environments or licenses no longer needed and versioning and archiving all relevant test scripts and documents.

Test leaders may also use this time for an evaluation of their test processes, and find out any improvement areas, skills or training needed for future software testing projects.

Software Testing- ‘State Of Mind’ guidelines

Software testing is more than just checking and looking for bugs & defects. It is a new way to look at a software and requires a different state of mind. Following the test process and phases described above, here are a few notes on the state of mind needed for software testing.

1. Software Testing is not a one-time activity, but an ongoing activity throughout the lifecycle of the project. Ideally, each deployment activity must have a corresponding testing activity.

2. Software Testing is imperative for any product to not only look for defects and find areas where users might be dissatisfied but also to provide a proof of functionality and to give a true picture of the state of the project. Testers also provide a subjective confidence in the system which is harder to achieve otherwise.

3. Though accompanied by test specification and documentation, a major part of software testing is exploratory and creative in nature. Testers need freedom and time to explore to be able to find better defects.

4. Software Testing is not just about the functionality of the application, there are many non-functional attributes of the software which are important for its overall quality. ISO 9126 defines software quality attributes like reliability, efficiency, usability, interoperability, security and performance aspects

Conclusion

All of these need different types of testing, approach, and tools. Test leaders must be on a lookout for areas relevant to their software which might need to be included in testing and the testers will need a varied skill set to be able to perform these tests.

Testers are the soul of agile teams and can bring about many cultural and mindset changes along with contributing to quality.

Hope these pointers help you understand the fundamental software QA process and the approach to software testing so that you can jump-start your journey to managing a successful test team and achieve the best results and value!

======================

By – Nishi Grover Garg

Nishi Grover Garg is a Testing and Agile corporate consultant and trainer with hands-on experience in all stages of software testing life cycle since 2008. Together with Agile Testing Alliance(ATA), she conducts various courses, training and organizes testing community events & meetups. She has been a speaker at numerous conferences.

PractiTest is an end-to-end test management tool. A common meeting ground for all QA stakeholders, it enables full visibility into the testing process and deeper broader understanding of testing results. Fully customizable, PractiTest can be adapted to the ever-changing needs of QA teams, Including a vast array of third-party integrations with common bug trackers and automation tools, and robust API for the rest. Fast professional and methodological support ensures clients make the most out of their time and the system, so companies can release great
products quickly according to their user’s needs.