Search This Blog

Thursday, 12 May 2016

Software Testing Types

The video explains the different software testing types being widely used in the software industry.



There are various types of testing being done under various Test Levels. Let’s go through them one by one.

Static Reviews: A Testing type where the test documents are manually reviewed to checked the sanity of the document, to make sure templates and testing processes are being followed correctly. The actual software is not tested in this phase.  This type of review also involves reviewing software requirements for their testability and making sure they are unambiguous.

Smoke testing: It performs a broad and shallow validation of the software. Say, you are getting a new build from the Development team and want to make sure that the features are working fine to the acceptable level to carry out further testing.

Functional Testing is required to test the features of the software. The majority of the testing effort falls under it. It’s a black box type and based on the functional specifications of the software. The application is tested by providing input and then the results are examined that need to conform to the functionality it was intended for. Functional testing of software is conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements. There are five steps that are involved while testing an application for functionality.

Integration Testing: In Integration testing, the interaction between the software components/modules is tested. Integration testing makes sure that interfaces between the components and the integration of those components are working as per the software specifications.

Regression testing: The purpose of Regression testing is to verify the unintended side effects that may have been introduced into the system, as a result of the defect fixes, new or changed functionality, environment or hardware change.

Whenever a change in a software application is made, it is quite possible that other areas within the application have been affected by this change. Regression testing is performed to verify that a fixed bug hasn’t resulted in another functionality or business rule violation. The intent of regression testing is to ensure that a change, such as a bug fix should not result in another fault being uncovered in the application.

Regression testing is important because of the following reasons:

  • Minimize the gaps in testing when an application with changes made has to be tested.

  • Testing the new changes to verify that the changes made did not affect any other area of the application.

  • Mitigates risks when regression testing is performed on the application.

  • Test coverage is increased without compromising timelines.

  • Increase speed to market the product.
Automation Testing: It automates the manual testing steps to control the execution of tests and the comparison of actual & expected results, by using specialised software Automation executes pre-scripted tests developed in a coding language (e.g. Java, VB, C#) on a software application. Smoke testing, Regression testing are the best candidates for Automation or wherever repetitive effort is required.

UAT Testing: The final testing level is conducted to determine if the software is ready for release. The actual Users test the software to find if it meets their business needs. Test Analysts provide support in co-ordination for Acceptance testing, if required. 

Non Functional: In Non-functional testing, the quality attributes of software are tested. Non-functional testing includes – Security, Usability and Performance.

Security Testing: It is a non-functional testing type and intends to identify the flaws in the security mechanisms of the software. Software security vulnerabilities are big business for potential attackers.  Identifying them early and knowing what common pitfalls to avoid can make a big difference to the resilience of the applications.

Penetration Testing: A penetration test is a proactive and authorized attempt to evaluate the security of an IT infrastructure by safely attempting to exploit system vulnerabilities, including OS, service and application flaws, improper configurations, and even risky end-user behaviour. Such assessments are also useful in validating the efficacy of defensive mechanisms, as well as end-users’ adherence to security policies. 

Testing in Production: It is carried out in the Production environment after the go-live phase. This helps in quickly verifying that application is working as expected and there are no surprises. It can be done by the Test Analyst, Application Support staff or application user.

No comments:

Post a Comment