ST-Manual Testing - 7 - Test Execution

 What is test execution ?

Test execution is the process of running tests to determine whether a software application meets its specified requirements and behaves as expected. This step involves executing test cases, which are a set of conditions used to determine whether a software application is functioning correctly, and reporting any issues or bugs found during the testing process. The aim of test execution is to validate the software system and identify any defects before it is released to end-users.

In sprint testing, there are several different types of test suites that may be used to validate software functionality and performance:

Unit Testing: This involves testing individual software components or units to verify their functionality and interactions with other units.

Integration Testing: This type of testing verifies the interactions and communications between different components and systems within the software application.

Functional Testing: This involves testing the application's functionality against the requirements to ensure that it meets the business and user needs.

System Testing: This type of testing verifies the application, including its functionality, performance, security, and other aspects.

Acceptance Testing: This involves testing the software application to ensure it meets the customer's acceptance criteria and is ready for release.

Regression Testing: This is performed after changes have been made to the software to ensure that the changes haven't introduced new defects or broken existing functionality.

Performance Testing: This involves testing the software application's performance and scalability under various conditions and load scenarios.

What are the different test suites that we  might have in a sprint testing 

The specific test suites used in a sprint will vary depending on the goals and objectives of the testing phase and the nature of the software application being tested.

       Smoke/ Sanity /BVT – Build Verification Test Suite

      Test the testability of the build [Testing the major functionalities to determine whether to accept the build for further testing ]

       Example – Open Whatsapp / Add contact [ Happy paths]

       Inline Functional Sprint Suite

      Testing the feature developed in this sprint

       Example – Video Calling[ Conf, I], Location Sharing

       Regression Suite

      Testing done to ensure that the existing functionalities are working fine and are not impacted, when new functionalities related to existing ones are developed and deployed.

      Existing features that are related to the new features developed in this sprint .

       Login – in case of password reset feature.

What is a test environment?

A test environment is a set of conditions and resources that are created to simulate the operational environment in which a software application will be used. This includes hardware, software, network, data, and other components that are necessary to run and test the application. The test environment is used to execute tests and evaluate the software application's functionality, performance, and other aspects.

The test environment is usually isolated from the production environment to ensure that tests are performed in a controlled and predictable manner. This also helps to prevent any negative impact on the production environment and minimizes the risk of defects being introduced into the live system.

Creating an appropriate test environment is an important step in the software testing process, as it enables testers to accurately replicate real-world scenarios and identify any issues that may arise during actual use.

Different environments could be ,

Unit Testing – Sandbox / Dev

Integration & or System Testing – SIT/IST

      Smoke/Sanity/BVT

      Sprint

      Regression

Acceptance Testing – UAT

      Smoke/Sanity/BVT

      Sprint [ Happy Paths]

      Regression

Pre-Production/Staging – Smoke

Production – End user availability

Master/Back up - Automation

 Different types of test execution

There are several different types of test execution, including:

  1. Manual Testing: This involves manually executing test cases, without the use of automated tools, to validate software functionality and performance.
  2. Automated Testing: This involves using software tools to automate the execution of test cases. Automated testing can significantly reduce the time and effort required to test a software application, and increase the consistency and accuracy of test results.
  3. Exploratory Testing: This is an informal and unstructured type of testing that involves testing the software application to identify any issues and explore its functionality.
  4. User Acceptance Testing (UAT): This involves having end-users test the software application to ensure that it meets their needs and expectations.
  5. Performance Testing: This involves testing the software application's performance and scalability under various conditions and load scenarios.
  6. Security Testing: This involves testing the software application's security features and configurations to identify any vulnerabilities and potential security threats.
  7. Compliance Testing: This involves testing the software application against regulatory and industry standards to ensure it complies with the required regulations.

The choice of test execution type will depend on the specific goals and objectives of the testing phase, the nature of the software application being tested, and the available resources and tools.

What is the purpose of test execution?

The purpose of test execution is to validate that a software application meets its specified requirements and behaves as expected. This involves running test cases, which are a set of conditions used to determine the software application's functionality and performance. The goal of test execution is to identify any defects or issues in the software before it is released to end-users.

How is test execution performed?

Test execution can be performed manually or using automated tools. Manual testing involves executing test cases manually, while automated testing involves using software tools to automate the execution of test cases. The choice of testing method will depend on the specific goals and objectives of the testing phase and the nature of the software application being tested.

What are the benefits of automated test execution?

The benefits of automated test execution include increased efficiency and speed, improved consistency and accuracy of test results, and reduced costs associated with manual testing. Automated testing can also help to identify defects and issues more quickly and make it easier to perform regression testing when changes are made to the software.

What are the risks associated with test execution?

 The risks associated with test execution include the potential for introducing defects into the software during testing, the possibility of missing critical defects, and the risk of misinterpreting test results. These risks can be mitigated by using a structured and well-planned testing process, and by using appropriate testing tools and techniques.

What is the role of a tester in test execution?

The role of a tester in test execution is to plan, design, and execute tests to validate the software application's functionality and performance. This includes identifying the appropriate test cases to run, setting up the test environment, executing tests, and documenting and reporting any defects or issues found during testing. The tester is responsible for ensuring that the testing process is conducted in a systematic and thorough manner.

How do you ensure the quality of test execution?

 To ensure the quality of test execution, it is important to have a well-planned and structured testing process, and to use appropriate testing tools and techniques. This includes having clear and concise test cases, using a controlled and isolated test environment, and having a process for documenting and reporting defects and issues found during testing. Regular review and assessment of the testing process can also help to identify areas for improvement and ensure the quality of test execution.

How does test execution fit into the overall software development process?

Test execution is an integral part of the overall software development process, and typically occurs after the software has been developed and before it is released to end-users. Test execution is performed to validate that the software meets its specified requirements and behaves as expected, and to identify any defects or issues that need to be addressed before release.

How do you measure the success of test execution?

The success of test execution can be measured by a variety of metrics, including the number of defects found, the speed and efficiency of testing, and the overall quality of the software application. Other factors that can impact the success of test execution include the appropriateness of the test cases used, the quality of the test environment, and the effectiveness of the testing tools and techniques used.

How can test execution be improved?

 Test execution can be improved by implementing a well-planned and structured testing process, using appropriate testing tools and techniques, and regularly reviewing and assessing the testing process to identify areas for improvement. Keeping up to date with the latest testing techniques and tools, and regularly training and upskilling testers can also help to improve test execution.

How do you handle complex test scenarios during test execution?

Complex test scenarios can be challenging to handle during test execution. To manage these scenarios, testers need to have a clear understanding of the software application's functionality and requirements and be able to think creatively and outside of the box. Breaking down complex scenarios into smaller, more manageable components can also help to simplify the testing process.

How do you prioritize test cases during test execution?

Test cases should be prioritized based on their potential impact on the software application and end-users. High-priority test cases should be those that are most critical to the software's functionality and performance, while lower-priority test cases can be deferred or excluded if necessary. The process of prioritizing test cases can be guided by the software requirements, as well as the tester's understanding of the software and its intended use.

How do you manage changes to the software during test execution?

Changes to the software during test execution can have a significant impact on the testing process and results. To manage these changes, testers need to be able to quickly adapt to the new requirements and modify their testing approach as needed. This may involve updating test cases, retesting previously tested functionality, and ensuring that the test environment remains valid and consistent.

How do you deal with false positive results during test execution?

 False positive results can occur during test execution when a test case incorrectly indicates a defect or issue with the software. To deal with false positive results, testers should be able to determine the root cause of the issue and either correct the test case or report the false positive as a known issue. Testers should also be able to differentiate between true positive results, which indicate a genuine issue with the software, and false positive results, which are caused by testing inaccuracies or limitations.

How do you ensure that test cases are thoroughly tested during test execution?

To ensure that test cases are thoroughly tested during test execution, testers should have a systematic and methodical approach to testing and should use appropriate testing tools and techniques. This includes designing comprehensive and relevant test cases, setting up a controlled and isolated test environment, and executing tests in a repeatable and consistent manner. Regular review and assessment of the testing process can also help to identify areas for improvement and ensure the thoroughness of test execution.

How do you handle complex test scenarios during test execution?

Complex test scenarios can be challenging to handle during test execution. To manage these scenarios, testers need to have a clear understanding of the software application's functionality and requirements and be able to think creatively and outside of the box. Breaking down complex scenarios into smaller, more manageable components can also help to simplify the testing process.

How do you prioritize test cases during test execution?

Test cases should be prioritized based on their potential impact on the software application and end-users. High-priority test cases should be those that are most critical to the software's functionality and performance, while lower-priority test cases can be deferred or excluded if necessary. The process of prioritizing test cases can be guided by the software requirements, as well as the tester's understanding of the software and its intended use.

How do you manage changes to the software during test execution?

Changes to the software during test execution can have a significant impact on the testing process and results. To manage these changes, testers need to be able to quickly adapt to the new requirements and modify their testing approach as needed. This may involve updating test cases, retesting previously tested functionality, and ensuring that the test environment remains valid and consistent.

How do you deal with false positive results during test execution?

 False positive results can occur during test execution when a test case incorrectly indicates a defect or issue with the software. To deal with false positive results, testers should be able to determine the root cause of the issue and either correct the test case or report the false positive as a known issue. Testers should also be able to differentiate between true positive results, which indicate a genuine issue with the software, and false positive results, which are caused by testing inaccuracies or limitations.

How do you ensure that test cases are thoroughly tested during test execution?

To ensure that test cases are thoroughly tested during test execution, testers should have a systematic and methodical approach to testing and should use appropriate testing tools and techniques. This includes designing comprehensive and relevant test cases, setting up a controlled and isolated test environment, and executing tests in a repeatable and consistent manner. Regular review and assessment of the testing process can also help to identify areas for improvement and ensure the thoroughness of test execution.


Comments

Popular posts from this blog

FrontEnd - FAQs - Part 1

Java Script - FAQs

CoreJava - ClassesObjectsMethods - Assignment