Boy, what a loaded question that can be these days, and the most exact answer is, “it depends.” Today’s software development projects are nimble in comparison to what they once were. While we review what a testing process might look like, it’s important to note that the most experienced software testing teams will be the best able to adapt to your software development team structure. Lighthouse Technologies is a perfect example. Give us any scenario, and we will know how to complement your methods with our software testing professionals.
Back in the days of traditional Waterfall project management, the process was consistent:
- Read the requirements
- Develop a plan
- QA testers begin testing after code is written
- Bugs reported and addressed
- Retest and validate
- End-users begin testing
- Bugs reported and addressed
- Retest and validate
A significant factor is the timeline of this waterfall process, where testing occurs as development completes. This process engages QA months into the project. Waterfall testing is very structured and very rigid or…..CONTROLLED. The results of this testing process can cripple the project team with defects, requiring backtracking to correct redundancies and dependencies. In a large project, the chances of something going missed are high. The worst nightmare in this structure is changing or unclarified requirements.
Agile has taken software development teams by storm over the last decade, completely revolutionizing the ways and methods around software development. It all started with a Manifesto that turned values around for testers, developers, and beyond:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Responding to change over following a plan
- Collaborating with customers over contract negotiation
- The entire team must evolve to embrace these values in Agile methodology. Unlike waterfall, an Agile testing team works alongside developers and customers through the whole project, from start to finish.
Similarities at first glance
The steps involved are very similar to what we described in Waterfall project management, but Agile software testingprocesses begin when the project starts. The testing plan evolves from the requirements. The benefit of experience in this early analysis is the fresh set of eyes that may see and question inconsistencies and variances not identified yet.
One of our favorite tools on the Lighthouse Technologies team is the ScopeMaster tool for analyzing requirements. We bring value to our clients with this tool that can analyze those requirements in as little as four seconds, saving hours and sometimes days of effort and meetings.
Testing Process for Agile
Another significant difference of Agile is that every step of the software testing process occurs several times in small increments, otherwise known as iterations or sprints. Instead of one large project plan, there is a complete project plan for small chunks of the project.
Based on the requirements, the QA manager creates a software testing plan for each iteration, which includes a multitude of details. From there, it’s full steam ahead.
Outside of the Sprint, but well within the SDLC (software development lifecycle)
Defining the scope of testing
Just as the project has a scope, so does testing. We recognize that we cannot test every single detail, so we negotiate the most critical tests first and work from there. Each iteration will define precisely what is developed and tested as the scope. Deliverables and milestones are laid out clearly.
The iterations usually concentrate on one or two pieces of functionality at a time, so the successful code builds on the next iteration. The scope may also include a backlog of tests (or retests) to join in each sprint as defects are resolved or traction regained.
Other essential QA functions worth mentioning
Note: The test plan will include the different types and levels of testing needed to complete in each iteration and meet the definition of done (DOD):
Sometimes core functionality, or any functionality, needs to be repeatedly tested and in some cases, it makes more sense to programmatically test the component or feature rather than have a human do it automatically. In this case, we write additional code to execute a test script automatically, saving teams time and money over the life of the application.
Acceptance test-driven development (ATDD)
This testing type focuses on the “Three Amigos,” otherwise known as the customer, testing, and development. The customer defines the problem that needs resolution. The developer determines how to solve the problem, and testing focuses on what might go wrong. This personalized approach addresses testing from each point of view, with some functionality tests automated as needed.
Exploratory testing might be declared a free-for-all, for it lacks structure as the testers autonomously explore the application, trying to learn it as they design and execute test plans based on their findings. Exploratory testing is most focused on user experience and highly adaptable to change. Interactions hold a higher value than processes and tools with this type of testing.
Performance testing and load testing
After confirming that functionality is working as planned, the next step is to see how much it can take under pressure. Some tests may include different applications working together in sequence or tandem, while other stress tests focus on increasing the volume of users or amplifying the level of data trying to transmit at once.
After this, infrastructure is the next consideration. Some weak points might reveal themselves in performance testing the application, but another step of software testing is acknowledging how the infrastructure enables or disables the application in both production and DR (disaster recovery) like environments.
Role of Agile testers:
Agile testers must be able to adapt quickly to change, think critically while being given minimal information, and ask thought-provoking questions to the rest of the team.
At Lighthouse Technologies, we have these qualities in spades and bring with us a wealth of expertise to suit just about any software testing need you have. How can we help? Let’s talk today about how Lighthouse Technologies can keep your project on track and save costs.