Powered By Blogger

Thursday, October 31, 2013

System Acceptance Testing

Its not like the integration testing where data flow one module to another one But System acceptance Testing test the complete end to end test cases and scenarios, exactly how the customer use the for System

Example for System Acceptance testing is to as follows  : Test Case for this phase is Open login screen and test the login functionality and then Login into the banking or any other application,Then Check Current Balance or any other functionality, Then transfer money to any other account or for billing, and finally Logout

Functional and non-functional requirements both are tested during system testing. Under Non-functional testing tester test performance, reliability of software. And for non functional tester test the design and look up of software properly on different -2 browsers and resolutions.

Acceptance testing is commonly done by the customer on his system or in live mode. All found bugs collected in this testing and fixed accordingly.

Main aim to test the acceptance testing is to confirm that provided requirement by the client is fulfill or not. This is the main point where Tester focuses during Acceptance testing. Tester make sure after fulfilling the all requirement software is working fine and giving correct and expected result or not.

There are Two Types of Acceptance Testing,Which are as follows

Alpha Testing :Alpha testing is the final testing done on the development server by the testers.
Final testing mean now software/website is ready upload on production. When developers are near to finish their development work then this testing start and completed with all possible bug or bug free. If there are bugs then developers does more work otherwise it produced for general public.


Beta Testing : Beta testing is also the part of system acceptance testing and performed by the client or customer on production server. Client test the produced product in live mode. Finally this is also the Acceptance testing performed by the multiple customers or we can say that live customers in the customer environment or on production.

Integration Testing, Definition of Integration Testing

As it name suggest Integration which mean integrate the modules or units together and then perform the testing for all modules together in a flow of data. This is called integration testing. Integration testing mean combined all the units of software together and execute the test cases on them to confirm that after integration of them they are working fine without any issues or error We can call it String Testing and also the Thread Testing

Requirement of Integration Testing  :
In starting developer done the work/code for units or modules. Then after they combined the units and sent the modules or project for testing. So to confirm that units are integrated properly and integrated module is working properly and showing correct result, so this is the need of integration testing

Test Cases for Integration Testing :
Integration test cases are the different to another test case. Like we have module for login, add record and view record. Here first test cases will be created for login unit then add record page and then view record page. Like a flow of data need to be tested, is it in correct way and in correct and proper direction.

Strategies of Integration Testing : There are mainly there are two types of integration testing

Big Bang Strategy: In this strategy all units are combined at once and tested at once

Incremental Strategy It is also divided into more three parts
   Top down strategy:Start integration from top to down and as well as testing.  
   Bottom Up Strategy :start integration from bottom to top and as well as testing.
   Sandwich Strategy :This is combination of above both strategies. Mean combination of top down strategy and bottom up strategy

Process of Integration Testing
First Create or develop the Integration Test Plans
Design the test cases, scenarios and steps for integrations testing
Executing the test cases, finding bug and create report and reporting to developers
Regression and Retesting the bugs

Follow the Step iii and iv till the all bug are not fix and project become the issue free

Unit Testing:

What is unit Testing?
Unit testing is the first step of testing. In this testing, tester tests the individual unit of any software or programmer. This testing generally performed by developer to test the bunch of specific code or function

Objective or Importance of Unit Testing
Main objective or importance of unit testing is to save time and money as this testing performed during development phase by developer. Developers do this testing during coding so that further  process of coding can progress properly without any error or mistake

Building Test Cases for Unit Testing
Generally unit testing performed by automated testing. But some times we performed manually testing for any unit. To check the functionality of any new developed unit user can apply break point in code and run in debug form with the help of special key.

Tools for Unit Testing
Rational Software
Java script Assertion Unit
CUT is test tool with a Fee unit
Dot unit is a Freeware unit testing tool of .net framework, Its a part of junit

Benefits of Unit Testing:
1 Programmers can learn with the help of unit testing as they have to understand the functionality of unit testing and its code, and how it is working.
2 Accuracy: Developers have to confirm that developed code is working fine or not. He will check it and map with old code if there is any error in code
3 Time Saver: Unit testing is time saver, developers can do this testing without  waiting any testing member and complete work on it

Limitation of Unit Testing:
1 Independent code  If code is independent the unit testing is possible otherwise it is not possible

2 . Limitation: Unit testing is related to any specific unit and tester can not catch the error related to integration module

Software Testing Types:

Black box testing – Internal system design is not considered in this type of testing. Tests are based on requirements and functionality.

White box testing – This testing is based on knowledge of the internal logic of an application’s code. Also known as Glass box Testing. Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions.

Unit testing – Testing of individual software components or modules. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. may require developing test driver modules or test harnesses.

Incremental integration testing – Bottom up approach for testing i.e continuous testing of an application as new functionality is added; Application functionality and modules should be independent enough to test separately. done by programmers or by testers.

Integration testing – Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems.

Functional testing – This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type testing geared to functional requirements of an application.

System testing – Entire system is tested as per the requirements. Black-box type testing that is based on overall requirements specifications, covers all combined parts of a system.

End-to-end testing – Similar to system testing, involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.

Sanity testing - Testing to determine if a new software version is performing well enough to accept it for a major testing effort. If application is crashing for initial use then system is not stable enough for further testing and build or application is assigned to fix.

Regression testing – Testing the application as a whole for the modification in any module or functionality. Difficult to cover all the system in regression testing so typically automation tools are used for these testing types.

Acceptance testing -Normally this type of testing is done to verify if system meets the customer specified requirements. User or customer do this testing to determine whether to accept application.

Load testing – Its a performance testing to check system behavior under load. Testing an application under heavy loads, such as testing of a web site under a range of loads to determine at what point the system’s response time degrades or fails.

Stress testing – System is stressed beyond its specifications to check how and when it fails. Performed under heavy load like putting large number beyond storage capacity, complex database queries, continuous input to system or database load.

Performance testing – Term often used interchangeably with ‘stress’ and ‘load’ testing. To check whether system meets performance requirements. Used different performance and load tools to do this.

Usability testing – User-friendliness check. Application flow is tested, Can new user understand the application easily, Proper help documented whenever user stuck at any point. Basically system navigation is checked in this testing.

Install/uninstall testing - Tested for full, partial, or upgrade install/uninstall processes on different operating systems under different hardware, software environment.

Recovery testing – Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems.

Security testing – Can system be penetrated by any hacking way. Testing how well the system protects against unauthorized internal or external access. Checked if system, database is safe from external attacks.

Compatibility testing – Testing how well software performs in a particular hardware/software/operating system/network environment and different combination s of above.

Comparison testing – Comparison of product strengths and weaknesses with previous versions or other similar products.

Alpha testing – In house virtual user environment can be created for this type of testing. Testing is done at the end of development. Still minor design changes may be made as a result of such testing.


Beta testing – Testing typically done by end-users or others. Final testing before releasing application for commercial purpose.