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.