Communication Strategies and Reviews and Inspections
• Effective communication is vital in software development management to ensure all team members are
aligned and informed. Strategies include regular meetings, status updates, documentation sharing, and
collaborative tools.
• Clear communication evaluations of software artifacts such as code, design documents, and test plans.
They aim to detect defects early, ensure compliance with standards, and improve overall quality.
• Common types include
▪ peer reviews
▪ walkthroughs
▪ and formal inspections.
Key Strategies:
▪ Regular Meetings: Daily stand-ups, sprint planning, and retrospectives (Agile).
▪ Clear Documentation: Requirements, design, and process documentation.
▪ Feedback Loops: Encourage continuous feedback from team members and stakeholders.
▪ Tools: Use collaboration tools like Slack, Microsoft Teams, or Jira for seamless communication.
▪ Transparency: Share progress, challenges, and decisions openly with the team.
Reviews and Inspections
Reviews and inspections are formal processes to evaluate artifacts (e.g., code, design, requirements) to
identify defects and improve quality.
• Types of Reviews:
o Code Reviews: Peer reviews of code to ensure adherence to standards and best practices.
o Design Reviews: Evaluate system architecture and design for feasibility and scalability.
o Requirements Reviews: Verify that requirements are clear, complete, and testable.
• Inspection Process:
1. Planning: Define scope, objectives, and participants.
2. Preparation: Reviewers study the artifact before the meeting.
3. Meeting: Discuss findings and record defects.
4. Rework: Address identified issues.
5. Follow-Up: Verify fixes and ensure closure.
Software Quality Management
Software Quality Management (SQM) encompasses all activities related to ensuring that the software meets
specified requirements and quality standards. It involves planning, assurance, control, and improvement
processes. The goal is to deliver reliable, able, and high-performance software.
• Key Components:
o Quality Planning: Define quality objectives, standards, and metrics.
o Quality Assurance (QA): Proactive processes to prevent defects (e.g., reviews, audits).
o Quality Control (QC): Reactive processes to identify and fix defects (e.g., testing).
o Quality Improvement: Continuous improvement through feedback and process refinement.
• Quality Attributes:
o Functional: Correctness, completeness, and reliability.
o Non-Functional: Performance, usability, and scalability.
• Standards and Frameworks:
o ISO 9001, CMMI, and IEEE standards.
Plan and Implement Basic Quality Assurance Practices
Quality Assurance (QA) focuses on preventing defects by improving processes and ensuring adherence to
standards.
• Steps to Plan and Implement QA:
1. Define QA Objectives: Align QA goals with project and business objectives.
2. Establish QA Processes:
▪ Code reviews, testing (unit, integration, system), and audits.
3. Develop Standards and Guidelines:
▪ Coding standards, documentation templates, and test case formats.
4. Assign Roles and Responsibilities:
▪ QA team, developers, and testers.
5. Use QA Tools:
▪ Automated testing tools (e.g., Selenium, JUnit), bug tracking (e.g., Bugzilla), and CI/CD
pipelines.
6. Monitor and Measure:
▪ Track defect rates, test coverage, and process adherence.
7. Continuous Improvement:
▪ Analyze QA metrics and refine processes.
• Defining clear quality standards and objectives.
• Developing checklists and for reviews and testing.
• Conducting regular reviews and inspections.
• Performing systematic testing at various stages.
• Documenting issues and tracking resolution efforts.
• Training team members on quality standards and best practices.
What is Quality Assurance?
Quality assurance (QA) is the process of optimizing development and testing processes, selecting
approaches that minimize the number of errors in the end code and help detect bugs quickly. QA is a
process-oriented field: the goal is not to clean bugs in the products directly but rather to ensure that practices
that caused those bugs won’t be repeated. The issues are fixed by testers and quality control teams. QA
testing ensures that the selected approaches lead to early bug detection and optimal software performance
What is QA Methodology?
Quality assurance methodologies describe actions that teams take to organize and optimize the process of
QA planning, design, monitoring, and optimization. QA, software testing and development methodologies
are often the same – teams use similar approaches for all engineering processes.
QA Methodologies
We’ll be examining methodologies that are commonly used for software development, testing, as well as
quality assurance. We already described some of those in our guide to software development
methodologies, but this time, we’ll be looking at them specifically from the QA perspective.
Waterfall
Waterfall is a standard software development strategy – the project is broken down by stages, and the teams
move to the next phase only after the previous one has been finalized. Once the stage was completed, the
team members can’t come back to it anymore. Let’s see what position QA holds at different stages of the
Waterfall project.
Stage 1 – Requirements
For QA: Participating in creating functional and non-functional requirements, conducting security
assessments, and developing acceptance criteria.
The task of a QA team is to describe the ideal version of the product that aligns with user expectations. QA
experts set the deliverables for QA engineers and developers, define the criteria for evaluating code quality,
and find methods for its assessment. Requirements, created by a QA team, will be used throughout the
entire testing and development process. Product requirements are specified in Software Requirements
Specifications.
Stage 2 – Design
Although QA experts don’t participate in design directly, they are constantly kept in the loop. QA teams
oversee the process and make sure that the product corresponds to initial requirements. It’s easy for
designers to lose track of the bigger picture as they solve day-to-day issues – so QA keeps the team in check
by always prioritizing the code quality.
Active participation of a QA team in the design process gives product owners assurance that the team
always keeps their work in accordance with high standards.
Stage 3 – Implementation
The implementation stage consists of development and deployment. This is where the team creates the
functionality of the product. At this stage, the role of a QA team includes overseeing the development
process, detecting architectural issues, and fundamental problems with the development approach.
For instance, a QA expert might spot that a framework, chosen by a development team, will make it difficult
to uphold certain performance requirements. If quality assurance experts catch these issues early on, the
number of bugs and fixes lowers significantly.
Stage 4 – Verification
In Waterfall, verification is the main stage for introducing QA test methodologies. QA engineers take in
the product on the final stage of completion and check if it corresponds with set requirements. The team
checks if testing and development processes were done on time, if the promised results were met, and seeks
ways for improvement.
Stage 5 – Maintenance
QA analyzes feedback from users and seeks a long-term way to remove development and testing issues. In
this quality assurance methodology, teams report quality improvements, number of fixed bugs and escaped
decades, automate test cases, and provide feedback for testing and quality control specialists.
Agile
• Agile is a QA and software development methodology that’s focused on maintaining a flexible process
rather than separating it into defined stages.
• The team can return to previous tasks at any time if that provides better product quality. Instead of
building incremental changes, Agile prefers frequent updates.
• The product has multiple interactions, each of which is released to the end-user.
Quality Assurance in Agile
• Agile Quality Assurance prioritizes a user-driven approach and code quality over the strict
organization. Teams release interactions to users, collect feedback, and keep improving the product.
• If the quality requirements change in previous stages, like design or planning, the team can easily
come back to it. Any process modification is fine, as long as the quality is the key motivation.
Planning: Definition of Ready and Done
• In Agile planning, QC and QA need to define the criteria for a process to be considered
complete. Since Agile doesn’t impose strict time limits, it’s easy to get stuck on a single stage.
• Having clear acceptance criteria helps QA engineers avoid unnecessary perfectionism and balance
between quality and cost-efficiency.
Design: Documentation and Communication
• QA engineers should start documenting the processes and the results of all the project tasks. They
should cooperate with designers, making sure that everyone is on the same page.
• The key goal for this stage is creating a comprehensive product wiki that clearly states functionality,
purpose, positioning, and intent.
Automation
Agile is focused on automation more than any other methodology. Even if automation takes a lot of time
at the initial stages, Agile welcomes it, as it allows for achieving better quality in the long run. One of the
main principles is prioritizing quality and innovation over short-term goals. Recent developments in AI-
driven test tools have revolutionized Agile QA processes, from test case generation to predictive error
detection. These tools can reduce human effort to a great extent, improving accuracy and helping QA teams
respond quickly to changes in the codebase.
Metrics
If the Waterfall quality assurance methodology requires extensive planning and estimation in the first
stages, Agile emphasizes on the importance of measurement throughout the project. The QA team doesn’t
have strict constraints, which is why they can easily get sidetracked if there are no metrics that show the
real picture. We made a guide for our favorite Agile metrics, so if you’re interested, take a look.