Sei sulla pagina 1di 8

Unit Testing

This type of testing is performed by the developers before the setup is handed over to the testing team to formally execute the test cases. Unit testing is performed by the respective developers on the individual units of source code assigned areas. The developers use test data that is separate from the test data of the quality assurance team. The goal of unit testing is to isolate each part of the program and show that individual parts are correct in terms of requirements and functionality.

LIMITATIONS OF UNIT TESTING


Testing cannot catch each and every bug in an application. It is impossible to evaluate every execution path in every software application. The same is the case with unit testing. There is a limit to the number of scenarios and test data that the developer can use to verify the source code. So after he has exhausted all options there is no choice but to stop unit testing and merge the code segment with other units.

Integration Testing
The testing of combined parts of an application to determine if they function correctly together is Integration testing. There are two methods of doing Integration Testing Bottom-up Integration testing and Top Down Integration testing.

S.N. Integration Testing Method Bottom-up integration This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds. Top-Down integration This testing, the highest-level modules are tested first and progressively lower-level modules are tested after that. In a comprehensive software development environment, bottom-up testing is usually done first, followed by top-down testing. The process concludes with multiple tests of the complete application, preferably in scenarios designed to mimic those it will encounter in customers' computers, systems and network.

System Testing
This is the next level in the testing and tests the system as a whole. Once all the components are integrated, the application as a whole is tested rigorously to see that it meets Quality Standards. This type of testing is performed by a specialized testing team. System testing is so important because of the following reasons:

System Testing is the first step in the Software Development Life Cycle, where the application is tested as a whole. The application is tested thoroughly to verify that it meets the functional and technical specifications. The application is tested in an environment which is very close to the production environment where the application will be deployed. System Testing enables us to test, verify and validate both the business requirements as well as the Applications Architecture.

Performance Testing
It is mostly used to identify any bottlenecks or performance issues rather than finding the bugs in software. There are different causes which contribute in lowering the performance of software:

Network delay. Client side processing. Database transaction processing. Load balancing between servers. Data rendering. Performance testing is considered as one of the important and mandatory testing type in terms of following aspects:

Speed (i.e. Response Time, data rendering and accessing) Capacity Stability

Scalability It can be either qualitative or quantitative testing activity and can be divided into different sub types such as Load testing and Stress testing.

Load Testing
A process of testing the behavior of the Software by applying maximum load in terms of Software accessing and manipulating large input data. It can be done at both normal and peak load conditions. This type of testing identifies the maximum capacity of Software and its behavior at peak time. Most of the time, Load testing is performed with the help of automated tools such as Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load Test etc. Virtual users (VUsers) are defined in the automated testing tool and the script is executed to verify the Load testing for the Software. The quantity of users can be increased or decreased concurrently or incrementally based upon the requirements.

Stress Testing
This testing type includes the testing of Software behavior under abnormal conditions. Taking away the resources, applying load beyond the actual load limit is Stress testing. The main intent is to test the Software by applying the load to the system and taking over the resources used by the Software to identify the breaking point. This testing can be performed by testing different scenarios such as:

Shutdown or restart of Network ports randomly. Turning the database on or off. Running different processes that consume resources such as CPU, Memory, server etc.

What is Volume Testing?


Volume testing is a Non-functional testing that is performed as part of performance testing where the software is subjected to a huge volume of data. It is also referred as flood testing.

Volume Testing Characteristics:


During development phase, only small amount of data is tested. The performance of the software deteriorates over time as there is enormous amount of data overtime. Test cases are derived from design documents. Test data is usually generated using a test data generator. Test data need not be logically correct but the data is to assess the system performance. Upon completion of testing, results are logged and tracked to bring it to closure.

Volume Testing - Checklist:


Verify if there is any data loss. Check the system's response time. Verify if the data is stored incorrectly. Check if the data is overwritten without any notification.

What is Sanity Testing?


Sanity testing, a software testing technique performed by the test team for some basic tests. The aim of basic test is to be conducted whenever a new build is received for testing. The terminologies such as Smoke Test or Build Verification Test or Basic Acceptance Test or Sanity Test are interchangeably used, however, each one of them is used under a slightly different scenario. Sanity test is usually unscripted, helps to identify the dependent missing functionalities. It is used to determine if the section of the application is still working after a minor change.

Sanity testing can be narrow and deep. Sanity test is a narrow regression test that focuses on one or a few areas of functionality.

What is Smoke Testing?


Smoke Testing is a testing technique that is inspired from hardware testing, which checks for the smoke from the hardware components once the hardware's power is switched on. Similarly in Software testing context, smoke testing refers to testing the basic functionality of the build. If the Test fails, build is declared as unstable and it is NOT tested anymore until the smoke test of the build passes.

Smoke Testing - Features:


Identifying the business critical functionalities that a product must satisfy. Designing and executing the basic functionalities of the application. Ensuring that the smoke test passes each and every build in order to proceed with the testing. Smoke Tests enables uncovering obvious errors which saves time and effort of test team. Smoke Tests can be manual or automated.

Installation Testing:
It is performed to verify if the software has been installed with all the necessary components and the application is working as expected. This is very important as installation would be the first user interaction with the end users. Companies launch Beta Version just to ensure smoother transition to the actual product.

Installation Types:
The following are the installation types:

Silent Installation Attended Installation

Unattended Installation Network Installation Clean Installation Automated Installation

What is Usability Testing?


Usability testing, a non-functional testing technique that is a measure of how easily the system can be used by end users. It is difficult to evaluate and measure but can be evaluated based on the below parameters:

Level of Skill required to learn/use the software. It should maintain the balance for both novice and expert user. Time required to get used to in using the software. The measure of increase in user productivity if any. Assessment of a user's attitude towards using the software.

Usability Testing Process:

What is Security Testing?


Security testing is a testing technique to determine if an information system protects data and maintains functionality as intended. It also aims at verifying 6 basic principles as listed below:

Confidentiality Integrity Authentication Authorization Availability Non-repudiation

What is Recovery Testing?


Recovery testing is a type of non-functional testing technique performed in order to determine how quickly the system can recover after it has gone through system crash or hardware failure. Recovery testing is the forced failure of the software to verify if the recovery is successful.

Recovery Plan - Steps:


Determining the feasibility of the recovery process. Verification of the backup facilities. Ensuring proper steps are documented to verify the compatibility of backup facilities. Providing Training within the team. Demonstrating the ability of the organization to recover from all critical failures. Maintaining and updating the recovery plan at regular intervals.

What is Domain Testing?


Domain testing is a software testing technique in which selecting a small number of test cases from a nearly infinite group of test cases. For testing few applications, Domain specific knowledge plays a very crucial role.

Domain testing is a type of functional testing and tests the application by feeding interesting inputs and evaluating its outputs.

Domain - Equivalence Class Testing


Equivalence class carries its own significance when performing domain testing. Different ways of equivalence class are:

Intuitive equivalence Specified equivalence Subjective equivalence Risk-based equivalence:

Potrebbero piacerti anche