Monday 20 January 2014

Continuation of Testing Levels in SDLC


Continuation of Testing Levels in SDLC
5) System Testing:
After unit testing and integration testing, the development team releases the initial build to the separate testing team.
Initially the testing team performs stability test on released build.
If the build is stable à  testing team starts testing the functionality of the application,
If the build is stable à testing team rejects the build and requests for the patch file,  
The testing team validates the whole system based on the client requirements and expectations are called System Testing.
                In system testing, the test engineer concentrates on the validation of application functionalities, performance, compatibility, user friendliness, security, Installation, etc… Based on the factor going to validate entire system testing technique is divided into 2 Categories.
They are
a.     a.  Functionality Testing/ Requirements Testing:
Validating the business transactions on application based on client requirements is called functionality testing. This functionality can be performed either manually or by automation testing.
Test engineers consider the following factors while performing functionality testing,
                                I.            Objects properties coverage:  Validates whether the application object property values are changing or not based on the operations performed.
Example: (Scenario) Verify “OK” should enabled in the window when we enter the value in the edit box related to it: It means the object property should change from disable to enable.  
                              II.            Error Handling Coverage: The test engineer checks for the meaningful error handling mechanism when the end user performs invalid operations on the system, like pop –up messages, error messages, warning messages, etc…
Example: (Scenario) suppose there is a text field which allows numerical values, but user entered alphabetical values and tried to make transaction , then system should throw error message /pop-up on the screen with correct explanation and details.
                            III.            Input-Domain Coverage: The test engineer verifies whether the system allows the data as per the client expected data or not.
Example: Edit box should allow alphanumeric characters in between 4-9 range. So engineer tests for this expected data.
                            IV.            Calculation/ Output Coverage:  Test engineer verifies the generated output based on the given input values/data.
Example:  2+3 =5 as per that condition system should generate output as 5 when we perform addition operation on 2 and 3.

                              V.            Back end/ Database Coverage: Test engineer verifies the transfer of data between front end and database storage along with database content with respect to the operations performed on applications like insert update and delete …
                            VI.            Links Coverage: Checks the specified links in the application are navigating properly to their respective pages.

b.    b.   Non-Functionality Testing: The test engineer verifies all the possible non –functionality factors like performance, compatibility, security, installation , etc… Following are the non-functionality testing techniques:
                                I.            GUI Testing: The test engineer verifies the look and feel of the application based on different factors like availability of components, alignment, spelling mistakes, font size/style, background color, controls, clarity of text and images.
                              II.            Usability Testing: The test engineer checks for the user friendliness of the application to perform operations and mostly concentrates on error handling mechanism , tab and functional key implementation , shortcut navigations, etc…
                            III.            Performance Testing: In general performance testing is conducted with performance testing tools available in the market. 
Performance testing is conducted by separate testing team and concentrates on speed, scalability and stability. But this testing is conducted using different techniques.
A.      Load/ Scalability Testing: Within the limit, engineer checks the applications allows customer expected load or not.
B.      Stress Testing:  Beyond the load limit, test engineer checks the behavior of the application.               
C.      Soak/Endurance Testing: Verifies the stable functioning of the application with respect to time.
D.      Spike Testing: Verifies the stability of the application under varying loads.
E.       Data Volume Testing: Verifies how much data transfers in a specified time in the form of kbps or records.
                            IV.            Security Testing: Verifies the privacy of the transactions in terms of authentication, access control, sessions and clearance of cookies after closing the application.
                              V.            Recovery/Reliability Testing: verifies how the system is capable to recover from abnormal state to normal state.
                            VI.            Compatibility/ Portability Testing: Verifies whether the application supports customer expected environment or not with forward versions and backward versions.
                          VII.            Configuration Testing: Verifies application supports customer expected configuration systems or not.
                        VIII.            Installation Testing: Verifies the installation process of the application as per the guidelines and instructions mentioned in the user manuals.
                            IX.            Sanitation Testing/ Garbage Testing: Verifies for the extra added features which were not mentioned in the client requirements.
                              X.            Comparative/Parallel Testing: Verifies the existing competitive products or lower versions of application in order to identify the strengths and weakness of the application.
6) User Acceptance Testing (UAT): Acceptance Testing is a level of the software testing process where a system is tested for acceptability. There are 2 types of UAT.
Alpha Test: The client participates in the testing at the developer’s site, if any defects are identified within a short period resolved and gets approval for the installation at client’s place.
Beta Test:  After installation of the application at client place the client runs the application with real time data , if any defects are identified recorded and sent to developers to fix it.







No comments:

Post a Comment