Typical QA Tasks
This article provides an overview of typical tasks performed by Quality Assurance (QA) Analysts, including their role in the software development process, the allocation of resources, and how functional testing is processed in Jira.
During the software development process, a QA Analyst typically starts after the beginning of development. They create test cases based on user stories and their acceptance criteria. Testing during feature sprints focuses mainly on manual functional testing, while regression testing is done when new development is completed. The results of testing should be documented in a test management tool.
General Pricefx Advice
The allocation for a QA Analyst should be based on project needs, ideally around 50% of CE allocation, and if lower, prioritization of testing tasks is necessary, covering all Feature Sprints and optionally extending to UAT.
Some general Pricefx advice guidelines:
Allocation for QA Analyst should be always based on project needs, based on our experience it should be about 50% of CE allocation on the project.
In case the allocation for QA Analyst is significantly lower than 50% of CE, it is still useful to have QA Analyst on the project, but it needs prioritization of tasks for testing
Allocation should be through all Feature Sprints and optionally also through UAT
Industry Standard QA Advice
Some general advice and guidelines for Quality Assurance (QA) on a project include:
Understand the Requirements: Thoroughly understand the project requirements, including functional and non-functional aspects, to ensure that testing efforts align with the project goals.
Early Involvement: Get involved in the project early to provide input on testability, requirements validation, and to identify potential risks and issues.
Test Planning: Develop a comprehensive test plan that outlines the testing approach, scope, objectives, and resources required for testing.
Test Case Design: Create clear, concise, and comprehensive test cases that cover all possible scenarios, including positive, negative, and edge cases.
Test Execution: Execute test cases rigorously, record test results accurately, and report defects promptly with clear and detailed information.
Regression Testing: Ensure that regression testing is performed to validate that new changes do not adversely impact existing functionality.
Defect Management: Document defects effectively, prioritize them based on their impact, and track them through to resolution.
Communication: Communicate effectively with all stakeholders, including developers, project managers, and business analysts, to ensure everyone is informed about the testing progress and results.
Continuous Improvement: Continuously seek opportunities to improve testing processes, tools, and techniques to enhance the overall quality of the product.
Adaptability: Be adaptable and flexible in response to changing project requirements, timelines, and priorities.
Domain Knowledge: Acquire domain knowledge relevant to the project to better understand the context of the software being tested.
Collaboration: Collaborate closely with developers, business analysts, and other team members to foster a culture of quality throughout the project lifecycle.
Tools and Automation: Utilize appropriate testing tools and explore opportunities for test automation to increase efficiency and effectiveness.
User Advocacy: Advocate for the end user by providing feedback on usability, user experience, and overall product quality.
By following these guidelines, QA can contribute significantly to the success of a project by ensuring that the software meets quality standards, performs as expected, and meets user needs.
Typical assignment of QA Analyst
Assignment starts just after the beginning of development
Test cases are created in test management tool based on real user stories and their descriptions and acceptance criteria
Testing during Feature Sprints is mainly focused on manual functional testing
Regression testing is done when new development was done and overall functionality needs to be verified
Results of testing are documented in test management tool
Examples of functional testing during projects:
Created tables and imported data
New fields and developed changes in UI
Verification of workflows
Verification of calculations
Correct behavior for different business roles
Project specific tests
Pricefx Functional Testing with Jira
When CE finished development of a user story:
move the user story to “in review dev“ state - it means the user story is ready for testing on dev partition by QA Analyst
assign the user story to QA Analyst
eventually also some comment important for testing can be added to the user story
When QA Analyst finishes his testing, the following can happen:
Test passed
Document the test results in test management tool - it should be clear what was tested and on which data
Move the user story to “Accepted dev“ status
Assign the user story to SA or CE who will deploy the code to qa partition
Add a short comment to the user story that the user story was tested and the test passed
Test failed
Document the test results in test management tool - it should be clear what was tested and on which data
Move the user story to “Rejected“ status
Assign the user story back to CE who developed the code
Describe an issue which was observed during testing in Comments section or in a new Subtask. The following should be clear from the comment:
What was tested (including test steps)
Expected result and what was really observed
Data used for testing
Screenshots and videos which could help with understanding of the issue
Common Industry Functional Testing with JIRA
Functional testing in JIRA for QA is typically done using JIRA's native functionalities, such as creating and managing test cases, test execution, and defect tracking within the JIRA environment. Here's a general outline of how functional testing can be done in JIRA for QA:
Test Case Creation: QA can create test cases directly in JIRA using the "Test" issue type or by using a test management app integrated with JIRA. Test cases can include detailed steps, expected results, and other relevant information.
Test Planning: Test plans can be organized in JIRA by creating test cycles or test plans within the test management app. This allows QA to group related test cases and plan testing activities.
Test Execution: Once test cases are created and organized, QA can execute the tests by updating the status of each test case as "Pass," "Fail," or "Blocked" directly within JIRA.
Defect Tracking: If any issues are identified during testing, QA can create defect reports (also known as bug reports) in JIRA, linking them to the failed test cases and providing detailed information about the issues found.
Traceability and Reporting: JIRA provides traceability between requirements, test cases, and defects, allowing QA to track the testing progress and generate reports to communicate the status of testing activities.
Integration with Testing Tools: JIRA can be integrated with various testing tools and test management apps to enhance its testing capabilities, such as linking JIRA issues with test automation results or importing test cases from external sources.
Collaboration and Communication: QA can collaborate with developers, product owners, and other stakeholders by using JIRA's commenting and mentioning features to discuss testing-related matters and keep everyone informed about the testing progress.
By leveraging JIRA's features and integrations, QA teams can effectively manage their functional testing activities, streamline their testing processes, and ensure that testing efforts are well-aligned with the overall project management in JIRA.