Quality Assurance
June 2nd, 2009 | Published in Quality Assurance
Software QA involves the entire software development PROCESS – monitoring and improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. It is oriented towards ‘prevention’.
Highlights of QA Role in Requirements Analysis Phase:
1. Pro actively participate with Business Analyst in requirements gathering.
2. Help the Business Analyst in preparing requirements specification document.
3. Help the Business Analyst in preparing Functional specification document.
4. Plan and organize requirements document and conduct formal and informal reviews.
5. Pinpoint ambiguous statements in the requirements document and discuss them with relevant stakeholders.
6. Help the Business Analyst in documenting Business Rules.
7. Plan and organize the formal and informal reviews of the Business Rules document.
8. Plan and organize the inspections of all requirements documents.
9. Prepare minutes of the meeting of every formal review and assign action items to relevant stakeholders.
10. Plan and organize formal walk through of all the requirements documents.
11. Separate functional and non functional requirements.
12. Plan and organize database architecture walk through on white board and write minutes of meetings.
13. Help the Business Analyst to prepare UML diagrams such as use case diagrams.
14. Discuss assumptions for non functional requirements with all relevant stake holders.
15. Make sure that all preventive measures are taken.
16. Prepare test strategies and test plans when requirements have matured.
17. QA scope identification and scheduling coordinated by the development manager. QA’s timelines are added in the master project schedule.
18. QA team plans internal audits.
19. Plan the number of testing cycles required.
20. Prepare application acceptance criteria.
21. Test Case preparation.
22. Test Scenario identification.
23. Test Data Preparation.
24. Test Bed preparation.
25. Prepare test data scripts.
26. Ensure test first development in Agile projects.
27. Prepare testing life cycle.
QA Role in Requirements Analysis Phase for Agile Projects
i. Help to communicate if user stories are not well defined.
ii. Suggest adding stories related to testability.
iii. make sure that people are creating good unit tests and/or write unit tests
iv. write tests for stories for test first development.
v. add stories for improving usability.
vi. verify the completion of stories as they are completed.
vii. Actively Participate in life cycle of AMDD(Agile Model Driven Development).
viii. Give suggestions to Business Analyst for improvements in Requirement Engineering protocols and practices.
QA Envisioning in the Analysis Phase:
1. What will be built?
2. When it should be built?
3. In what order should we build it?
Highlights of the QA Role in the Design Phase:
1. Plans and organizes design review meetings
i. Primary design review
ii. Critical design review.
2. Makes sure that process and protocols are followed.
3. For web applications, ensures that the design is w3c compliant and works fine in all web browsers.
4. Discuss application flows with Design Architect and Business Analyst and suggest them user friendly flows.
5. If issues are found in design review meetings, QA logs those defects in a bug tracking tool.
6. Assigns action items to relevant stakeholders and follows up with them.
7. Identifies possible concurrency issues for web applications.
8. Identifies possible deadlocks for web applications.
9. Updates design defects statuses and minutes of meetings.
10. Adds or updates test scenarios.
11. Assists design architects in design web applications with respect to web 2.0 standards.
12. Helps development teams to write/update unit test cases.
13. Plans and organizes unit test review meetings by coordinating with the development team lead.
14. Ensures company processes and protocols are being followed in every level of the Software Development Life Cycle.
15. Documents all the work being done by the developers in the form of data flow diagrams.
16. Helps in preparing the Design Specification document.
17. Makes sure that all preventive measures are taken.
18. Plans and organizes inspection of design document.
19. Prepares minutes of the meeting and logs them into the organization’s bug tracking tool.
20. Assigns action items to relevant stakeholders and follow up with them.
21. Make sure that all corrective actions are taken on design level issues before hand over to development team.
Highlights of QA Role in Coding Phase:
1. Prepares checklists for developers that contain standards and guidelines for them.
2. Ensures test driven development protocols are being followed and suggests unit tests to write.
3. Prepares documents containing coding practices and standards for the development team lead.
4. Ensures that defined coding standards, procedures and protocols are followed.
5. Ensures that code is properly commented.
6. Prepares conventions document for variable declaration, file names, file type, database table names and database field names.
