What are the different levels of Testing in Software Testing? Unit Testing, Integration Testing, System Testing, User Acceptance Testing.
The different levels of testing are :-
- Unit Testing
- Integration Testing
- System Testing
- User Acceptance Testing
UNIT TESTING
- Unit test is a smallest testable piece of software.
- Unit test is a procedure used to validate that individual unit of source code is working properly.
- Before entering into the unit testing it should be gone through code review.
- Tests the functionality of units.
- Typically done by the developers not by testers.
- It is typically used to verify control flow, data flow and memory leak problems.
Integrating Testing
- Integration is a process of combining and testing multiple components together.
- Starts at module level when various modules are integrated with each other to form a system.
- Considered interfaces on system.
- Focuses on design and construction of software architecture.
Approaches of Integrating testing are :-
- Bottom Up Approach
- Top Down Approach
- Hybrid Approach (Critical Part First)
- Big Bang Approach
What is Bottom Up Approach ?
- Process of testing the very lowest layers of software first is called the bottom up approach.
- Program is tested from bottom to the top.
- In this approach, programmers use a temporary program instead of main program, which is under construction.
- The temporary program is called "Driver" or "Calling Program".
In this approach first Child Modules are developed. After that parent modules are developed. Then interconnect Child Modules with Parent Modules.
In this interconnection process if there is any main model is under construction then the developers create temporary program that is called "Driver".
What is Top Down Approach ?
- Process of testing the top most layers of software first is called the Top-Down Approach.
- Programmers use temporary programs called "stubs" instead of sub-programs, which are under construction.
- The other name for stubs is "Called Programs".
- A stub returns the control to the main program.
In this Approach First Parent Modules are developed, after that Child Modules are developed, then interconnect parent and Child Modules.
In the interconnection process is there any the sub-module is under construction then the developers create temporary program instead of sub modules that is called "Stub".
What is Hybrid Approach (Critical Path First) ?
- Hybrid Approach is also known as "Sandwich approach", this is a combination of the Top-down Approach and Bottom-Up Approach process.
- Both Top-Down and Bottom-Up started simultaneously and testing is built up from both sides.
- It needs big team.
What is a Big Bang Approach ?
- It is also known as "System Approach".
- Big bang approach is the simplest integration testing approach :
- All the modules are simple put together and tested.
- This technique is used only for very small systems.
Big-Bang Approach Issues
Main issues with this Approach :-
- Error might be detected very late in the life-cycle of the project.
- If an error is found.
- It is very difficult to localize the error.
- The error may potentially belong to any of the modules being integrated.
- Debugging errors found during big bang integrated testing are very expensive to fix.
System Testing
- System testing is the testing of a finally integrated product for compliance against user requirements.
- After development of all required modules, the development team releases a software build to be tested on the System Testing Environment.
System testing is classified into 3 levels as :-
- Usability Testing
- Functional Testing (Black Box Testing Techniques)
- Non Functional Testing
Usability Testing
- Usability Testing is also called as accessibility testing.
- To check the ease of use for the user.
- And how easy is to understand the application and process execution for the user.
This Usability Testing consists of two Sub-Techniques :-
- User-Interface Testing
- Manual Support Testing
User Interface Testing
Every screen in the application build is tested for
- Ease of use (understandable).
- Look and feel (attractiveness).
- Speed in interface (short navigations).
Manual Support Testing
- Manual support testing is also known as "Help-documents testing".
- During this test, the testing team concentrates on correctness and completeness of Help-Documents /User Manuals.
- Manual support testing is done at the end of Functional and non-functional testing.
Functional Testing
- Testing team concentrates on customer requirements in terms of functionality.
- Concentrating on requirements correctness and completeness.
This testing is classified into 2 sub tests as follows :
- Functionality Testing
- Sanity Testing
- Smoke Testing
Functionality Testing
- Functionality testing is also called as Requirement testing.
- Concentrates on correctness of every functionality with respect to requirements.
- Process of verifying whether product meets its design and functional specifications.
Validating the correctness of every functionality through below coverage's :
- GUI coverage or Behavioral coverage (valid changes in properties of objects and windows in our application build).
- Error handling coverage (the prevention of wrong operations with meaningful error messages like displaying a message before closing a file without saving it ).
- Input Domain coverage (the validity of I/p values in term of size and type like while giving alphabets to age field).
- Manipulations coverage (the correctness of o/p or outcomes).
- Order of functionalities (the existence of functionality w.r.t. customer requirements).
- Back end coverage (the impact of front end's screen operation on back end's table content in corresponding functionality).
Sanity Testing
- Also called Narrow regression testing.
- Checking the behavior of the software.
- Narrow and depth approach of testing.
- One or few parts of the system is tested in deep.
Smoke Testing
- Also called as Basic functional testing.
- Checking the testability of the software.
- Shallow and wide approach of testing.
- Each major function of the software is tested without bothering finer details.
Non-Functionality Testing
Testing team concentrates on characteristics of S/W.
- Recovery Testing
- Compatibility Testing
- Configuration Testing
- Inter System Testing
- Installation Testing
- Performance Testing
- Load Testing
- Stress Testing
- Data Volume Testing
- Parallel Testing
- Security Testing
Recovery Testing :-
- It is also called as Reliability testing.
- Testing how well system recovers from crashes, hardware failures or sudden problems.
- With the help of backup and recovery procedures application can go from abnormal to normal state.
Example : While an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the applications ability to continue receiving data from the point at which the network connection was terminated.
Compatibility Testing :-
- Also known as Portability testing.
- Validates whether the application build is running on customer expected platform or not.
- Compatibility testing is done for things like Operating Systems, Compilers, Browsers and other system software.
Example : Computable with all likes mobile, laptop, web etc.
Configuration Testing :-
- Also known as "Hardware compatibility testing".
- Validation whether our s/w build is supporting different technology devices or not ?
Example : Different types of printers, disk drives, different n/w technologies etc.
Intersystem Testing :-
- It is also known "End-To-End" testing.
- Testing of interface between two or more systems.
- To determine whether parameters and data are correctly passed between applications.
Example : In shopping mall, billing system and barcode reader are interconnected with each other.
Installation Testing :-
Checks the installing and uninstalling of the software in customer site.
Below are the 3 key factors of installation :
- Setup Program Execution
- Easy Installation of the Programs
- Occupied Space
Performance Testing :-
Performance Testing is the process of determining the speed or effectiveness of a computer, network, software program or device.
Following tests are done to check performance :
- Load Testing - Tests the performance of an application on loading the system with max users at same time. Ex : Websites, yahoo--G-mail.
- Stress Testing - Checks how the system can behave under extremes such as insufficient memory, inadequate hardware etc.
- volume Testing - Find weaknesses in the system with respect to its handling of large amounts of data during short time periods.
Parallel Testing :-
- It is also known as comparative or competitive testing.
- Comparison of two different systems. (old version vs. new version ).
- Comparison with the competitive software in market to estimate competitiveness.
- Applicable to S/W product only.
Security Testing :-
It is also known as Penetration testing.
During this the testing team is validating for :
- Authorization : Access to the valid user and Deny to the invalid users.
- Access Control : Giving access permissions to the valid users to use specific services like features or functionalities in s/w.
- Encryption or Decryption : Deny to third party access to enter into the system. Code conversion is in between client process and server process.
Availability Testing :-
- Availability testing is running as application for a planned period, and collecting failure events with repair times.
- It is conducted to check both reliability (finding defects and reducing the number of failures) and availability (measuring and minimizing the actual repair time) of an application.
E.g. : Pre decide the repair time and check the time of its working.
Internationalization Testing :-
- Check the compatibility of an application to all possible languages.
- Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.
- Globalization testing is the testing technique that ensures compatibility of an application to all possible languages.
E.g. : Check rupees, time, festivals etc.
Localization Testing :-
- Localization is the process of adapting a globalized application to a particular culture/locale.
- Localization definition : Localization testing is testing process to validate whether application is capable enough for using in a particular location or country.
- In this testing localization, testing is to carried out to check the quality of the product for particular local/culture.
- It is also called as "L10N", because there as 10 characters in between L and N.
Comments
Post a Comment
Please do not enter any spam link in the comment box.