Saturday, June 30, 2018

Testing Principles and Testing Types


How do you identify test cases for regression testing?

Following may be few reasons how we can choose regression test cases
Test cases which verify the core functionality of the project
Test cases related to the functionality changes undergone recently
Commonly used production scenarios to be included as part of regression test cases
If there are automated test cases for IT and ST included all the test cases as part of regression.

How to avoid re-occurring defects?

Every defects need to be discussed and identify the root cause of the defects. Then come out with the action plan which is systemic and the changes have to be implemented so that the defects will not re-occur.

How to optimize test cases?

How to write re-usable test cases?

What is the difference between alpha and beta testing?

Alpha Testing: This is a form of internal acceptance testing performed mainly by the in-house software QA and testing teams. Alpha testing is the last testing done by the test teams at the development site after the acceptance testing and before releasing the software for beta test. Alpha testing can also be done by the potential users or customers of the application. But still, this is a form of in-house acceptance testing.

Beta Testing: This is a testing stage followed by the internal full alpha test cycle. This is the final testing phase where the companies release the software to few external user groups outside the company test teams or employees. This initial software version is known as the beta version. Most companies gather user feedback in this release.

What is the difference between white box and black box testing?

White box testing is generally done by the developers who know the internal algorithm or know how of the code and they test each path, branch and statements to ensure the code works in different test condition. Their main aim is to cover as much code as possible during their testing and ensure the functionality works as per the given requirements.

Whereas black box testing is done by the testing team after the code freeze and here the team may not look into how the code is written and their main focus is to ensure all the requirements / scenarios works as per the expected results. Testing done post coding and unit testing like Integration testing, System testing, Performance testing, User acceptance testing falls under black box testing.

Difference between functional and non-functional testing

Functional testing is done to ensure the system works as per the agreed requirements and this is done by the testing team post coding phase. There are 2 types of functional testing one is positive functional testing as explained earlier which ensures when valid inputs are provided to the system, the system works as per the requirements. Second type of the functional testing is called as negative functional testing where the testers gives invalid inputs, unanticipated operating condition and other invalid operations.

Non-functional testing is designed to figure out if your product will provide a good user experience. For example, non-functional tests are used to determine how fast the product responds to a request or how long it takes to do an action. Examples of non-functional tests include:

Load/Performance Testing
Compatibility Testing
Localization Testing
Security Testing
Reliability Testing
Stress Testing
Usability Testing
Compliance Testing 



Difference between system testing and system integration testing?

Integration testing is done right after the coding and here all the modules are integrated and tested to ensure the system works as per the requirements and here stubs and drivers are used to replace the requirements of external feeds or systems.

System testing is done after integration testing where the scope of the testing is to test the system end to end with all the modules and external systems in place. This test ensures all the functional and non-functional requirement are tested and system meets all these requirements.

Difference between smoke testing and sanity testing?

Smoke Testing is a kind of Software Testing performed after software build to ascertain that the critical functionalities of the program is working fine. It is executed "before" any detailed functional or regression tests are executed on the software build. The purpose is to reject a badly broken application, so that the QA team does not waste time installing and testing the software application.

In Smoke Testing, the test cases chosen cover the most important functionality or component of the system. The objective is not to perform exhaustive testing, but to verify that the critical functionalities of the system is working fine.
For Example a typical smoke test would be - Verify that the application launches successfully, Check that the GUI is responsive ... etc.
Sanity testing is a kind of Software Testing performed after receiving a software build, with minor changes in code, or functionality, to ascertain that the bugs have been fixed and no further issues are introduced due to these changes. The goal is to determine that the proposed functionality works roughly as expected. If sanity test fails, the build is rejected to save the time and costs involved in a more rigorous testing.

The objective is "not" to verify thoroughly the new functionality, but to determine that the developer has applied some rationality (sanity) while producing the software. For instance, if your scientific calculator gives the result of 2 + 2 =5! Then, there is no point testing the advanced functionalities like sin 30 + cos 50


No comments:

Post a Comment