Asset Management Software Header Gif

 

Software Testing Types: A Look at Some Great Technology

 

In the software development life cycle software testing types plays a stellar role. The objective of software testing is to find out the errors and mistakes either in the software or in the coding. Testing is carried out to find out the errors in the program before marketing it. Software testing gives the developer and customer confidence in the quality assurance of the product. The execution of software testing is carried out at various levels and at each of these levels different software testing types are used.

These tests check for the various parameter of the software such as correctness, completeness, maintainability, efficiency, capability, portability and usability. There are many ways in which software testing can be categorized. Categorization of testing based on the knowledge of system is white box testing, grey box testing and black box testing. These are briefly defined as follows.

Black box testing - treats the software as a black-box without any knowledge of internal behavior
White box testing - the tester has complete access to the internal data structures, code, and algorithms.
Grey box testing - involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level.

The above software testing types are the basic testing methods used in small programs. However, the above tests do not yield satisfactory results for large complicated programs. For such programs, types of testing categorized on the time it is executed in the Software Development Life Cycle are used. They are unit testing, integration testing, system testing, system integration testing and acceptance testing. Briefly, these testing types are as follows.

Unit testing – tests the minimal software component or module
Integration testing – Checks for any defects in the interfaces and interaction between integrated modules
System testing – Tests the integrated system to verify functional requirement
System integration testing - verifies whether the system is integrated properly to any external or third party systems defined in the system requirements
Acceptance testing - testing done the by customer to decide on the product acceptance

Testing can also be categorized based on how it is executed. Execution could be in the form of verification or static analysis or it could be validation or dynamic analysis. Verification is to verify that the code prepared according to the specification or not. Validation is to verify whether the software fulfills the customer specification.

Another classification for testing type is Functional Testing and Non Functional Testing. In functional testing, the focus of testing activities is on functional aspects of the system. In this test cases are written to check the expected output. In non-functional testing, the focus of the testing activities is on non functional aspects of the system. The focus of non functional testing is on the behavior and user experience of the system.

Acceptance Testing is the formal testing conducted to determine whether a software system satisfies its acceptance criteria and to enable buyer to determine whether to accept the system or not. This consists of alpha testing and beta testing. Details are given below.

Alpha testing - simulated or actual operational testing by potential users/customers or an independent test team at the developers' site. Alpha testing is often employed for off-the-shelf software as a form of internal acceptance testing.
Beta testing – This comes after alpha testing. In this, the software is exposed to a limited number of people who are not a part of the programming team

Feedback is a must in the beta testing because without feedback the developer will not know his mistakes. Alpha and beta testing are useful for determining the portability of the software.