Initial quality of released software contributes to reputation, customer retention, bug/issue fixing cycles and
overall cost of ownership. Validating and ensuring “Ultimate Quality” using “Quality Assurance Practices” has become an essential step of development life-cycle.
Think of following as a high level glance at components of a “Successful QA Practice” or a “QA Checklist”... May be even "Designing good Quality in".
[This is not a guide on how to create individual test cases or a guide on what type of tests to create].
[Start of Project] Setup Core Roles of QA-Practice |
Appoint a Test (Quality Assurance) lead; that is responsible for validating an issue free solution. |
Appoint a test lead from the design/development team [development team has testing too]. |
Identify Business-Analysts [that are responsible for defining proper requirements; so, QA can test for expected quality of delivery]. |
Identify Business Product Owners [that is responsible for articulating the change, confirming the understanding and validating final solution]. |
Depending on the project, you may also identify various “Subject Matter Experts”; that must contribute to final quality [from both IT and Business]. |
[This will ensure that there are lead roles responsible for quality form each area (Business/BA/Dev/QA). For very large projects, (for each area) there could be feature-leads reporting to an overall lead.] |
[During Project] Core processes needed for solution quality |
Identify all stakeholders and a strategy to engage them [part of quality is what they say it is]. |
Establish a process for requirement gathering and validating gathered requirements. |
QA team is responsible for defining tests to validate requirements. |
Agree on types of testing to be done by development team [which is different from QA team testing]. |
Agree on types of testing to be done by QA team. |
Agree on types of testing to be done by business [product owners]. |
Agree on types of testing or validating to be done by identified subject matter experts. |
Identify a “User Experience” lead [that is chasing user satisfaction. Such as Documentation, Training, usability etc.] |
[You may also identify any tools that will be used for bug/issue recording and trend analysis.] |
Business Analyst responsibilities related to Quality |
Business Analysts are to clearly document and present Vision, Scope and Requirements. |
Understand acceptance criteria [avoid the cost of unnecessary features, development, testing etc.] |
Take the time to clearly communicate requirements to designers, developers, testers etc.
[Involve non business analysts in client meetings early] |
Validate solution against original requirements. |
Design/Development Teams Quality related Responsibilities |
Solution Architect should identify and maintain an open list of planned deliverable [documents, code, deployment scripts etc.]. |
Development must test deliverables thoroughly prior to others testing.
[Unit Tests – testing individual software components (automating will help testing consistency).]
[Integration Testing – making sure complete integrated solution works (automating will help testing consistency).] |
Communicate changes in the latest release to QA. |
Setup needed testing environments. |
Sign off by Design/Development lead; as release is verified. |
Test Team Responsibilities |
Test lead should create a “Test Plan” for funding and resource assigning (dates, people, locations etc.). |
QA team members to define test-cases based on collected requirements [functional and non-functional].
[Collect a list of all feature classes to be testing… all features, deployment, security, usability, accessibility, various platforms, current standard adherence etc.] |
Record Bugs/issues and pass it back to development |
Provide periodic test status reports |
Record known issues that will not be fixed [document any workarounds]. |
Complete “Requirement Traceability Matrix” |
Produce a “Release-Quality” report prior to approval [not all releases are perfect]. |
Sign off by QA lead. |
Test Preparation |
Decide on tools needed for testing… install. |
Decide a process for bug/issue recording, communication and analysis. |
[Development Team] Setup needed test environments |
Create test cases and get approval. |
Clearly specify test platforms used. |
Setup “Requirement Traceability Matrix”. |
User Experience |
[“Microsoft Solutions Framework” defines a responsibility chain to ensure ultimate user experience] |
User experience specialists are to track down all possible user-categories and ensure satisfaction. |
User specialists are to chase end-user experience, such as documentation, training, usability etc. |
Don’t forget all types of users… operations, help-desk, regulatory, auditors, specific subject-matter-experts etc. |
[Business Analysts often play this role] |
User Acceptance Testing |
Enlist needed business users and get commitment |
Assist business in creating test cases |
Facilitate UAT |
Conduct a post-test survey to gather sentiment |
Sign off by business prior to release. |
Post Deployment and Quality |
Where possible, test system in production. |
Record post production bugs/Issues and resolution for later analysis. |
Analyze post production bugs/issues for root causes; and implement corrective project lifecycle processes. |
[Production-Support should conduct regular meetings to discuss current-production-problems, planning for pending changes (need more system space, need more support staff in six months etc.)]. |
Help Desk Processes related to continued Quality |
Left for you :-) |
Various “Development Lifecycle Gates” contributing to final quality |
“Vision and Scope” (and charter) review by IT and approval by client. |
Report pending change to operations early. |
Approve business requirements [IT and Client]. |
Approve Functional Specification. |
Approve Solution Architecture. |
Approve planned deliverables [code, solution, documentation, training etc.]. |
Review [IT] and approve [client] Project Plans [Various Plans including test plan]. |
“Scope to Solution” comparison by QA and Business Analysts. |
IT to validate and approve final development deliverable as “Scope Completed”. |
Approval by QA Team. |
Business to approve UAT. |
IT to approve “Release readiness” of all deliverables. |
Client to accept final release and roadmap of next-steps. |
Post deployment, verification and approval of “Solution Stability” in production. |
All future maintenance funding is planned for [licenses etc.] |
Final release to be signed-off by each lead. |
Support team to accept product from project team. |
Here are some manager type questions [be it a single project or the whole enterprise]
- Who is responsible for quality?
- Are people rewarded for contributing to higher quality?
- What are we doing to educate staff?
- Are there quality measuring/monitoring mechanisms setup?
- Do quality gap findings lead to corrective actions?
- Do we know the cost of running QA processes?
- Can the cost of QA processes justify the benefits?
Seems like it takes the village to raise Quality.