Thursday 26 April 2012


after discussing the verification and validation now comes the important part of testing
TESTING FUNDAMENTALS

lets get started with Testing Fundamentals

Testing Fundamentals

First of i want to tell you that there is two type of testing we all do

1.Functional Testing
2.Non-Functional Testing


Before discuss deeply about different types of Functional and Non Functional Testing lets try to know what actually the Functional & Non-Functional Testing are

Functional Testing


It basically means Testing of all the features and function of a system to ensure requirement and specification of the client are met

Non-Functional Testing


It basically means Testing is done on the requirement ,specification and test scenarios defined by the client

Now lets talk about the different type of Functional testing

  • Unit Testing - In this level of testing each individual unit/components of a software/system are tested.     The purpose is to validate that each unit of the software performs as designed
  • Integration Testing -In this level of testing individual units are combined and tested as a group or we can say testing done by combining two or more modules/unit together.  
             Approaches of Integration Testing
  1. Big bang approach - In this approach all or most of the units are combined together and tested at one go
  2. Top-Down approach - In this approach of integration testing , top levels units are tested first and lower level units are tested step by step after that.
  3. Bottom-Up approach - In this approach of integration testing , Lower level units are tested first and upper level units are tested step by step after that.
  4. Sandwich/Hybrid- It is an approach to Integration testing which is combination of Top down and Bottom up approaches.
  • System Testing - System Testing is the level of software testing process where a complete,integrated system/software is tested . System testing is performed after Integration testing and before Acceptance testing      
  • Smoke Testing - It also known as "Build Verification Testing". Smoke testing cover most of the major functionality of the software but it doesn't goes in depth of the functions .The result of this testing is used to decide if a build is stable enough to proceed with further testing.
  • Regression Testing - Regression Testing is a type of software testing that intends to ensure that changes like enhancement or  defect fixing to software have not adversely affected it . Regression Testing can be performed during any level of testing  but it is mostly relevant during the System Testing
  • Sanity Testing - Sanity testing is the sub set of Regression Testing . It only focuses on one or few areas of functionality of the software.Sanity testing usually narrow and deep.It is usually unscripted
  • Adhoc Testing - we can call this testing as Spontaneous Testing  .Adhoc testing  is done by without any formal test plan or test case creation.It is the least formal method of testing
  • User Acceptance Testing -It is the software testing process where a system is tested for acceptability.Acceptability Testing is performed after System Testing and before making the system available for actual use. It is of two types 
            1.Alpha Testing - Also know as Internal Acceptance Testing. It is performed by the members of organization that developed the software but who are not directly involved   in the project.Usually,it is the members of Product Management ,Sales or customer support.Client also comes and verify that all the requirements are met,according  to the customer needs and all projects are working fine.

            2.Beta Testing - Also known as External Acceptance Testing .It is perfromed by the end user of the software.They can be customer themselves or the customer's customer.Development and testing team can go at Client site and look & fill how all the functionality is working                                    

  • Localization Testing - It is part of the software testing process that focused on the local aspects of software.It is a process of adapting a globalized application to a particular culture/location.Localizing an application requires a basic understanding of the character sets typically used in modern software development and understanding the issues associated with them.
  • Globalization Testing - The objective of the globalization testing is to detect potential problems in application design that could inhibit globally.It make sure that code can handle international support without breaking functionality that would cause either loss or display problems.
That's all in my knowledge about the functional testing 

Now lets talk about different type of Non-Functional Testing

  • Recovery Testing - In this testing we check how well an application is able to recover from crashes,hardware failure and other similar problems.
         For Example :- while an application is receiving data from a network, unplug the connecting cable.After sometime ,plug the cable back in and analyze the application's ability to continue receiving data from the point at which the network connection disappeared
  • Compatibility Testing - In this testing conducted on the application to evaluate the application's compatibility  with other computing environment.Browser compatibility testing can be more appropriately referred to as user experience testing
  • Documentation Testing - Documentation testing can start at the very beginning of the software process and hence save a large amount of money ,since the earlier a defect is found the less it will cost to fixed. Example -User Manual along with television
  • Usability Testing - Usability testing is a technique used in user centered interaction design to evaluate a product by testing it on users.This can be seen as an irreplaceable usability practice ,sine it gives direct input on how real users use the system.
  • Installation Testing - Installation testing is kind of quality assurance work in the software industry that focuses in what customers will need to do install and set up the new software successfully.The testing process may involve full,partial or upgrades sometimes called package software.
  • Operational Readiness Testing - ORT is also known as "Pre GO Live" Test.Objective of ORT is to ensure application is configured and functioning correctly in production environment before end users start using the application. 
  • Security Testing -It is a process to determine that ab information system protects data and maintains functionality as intended.The six basic security concept that need to be covered by security testing are:- confidentiality,integrity,authentication,availability,authorization and non-repudiation.Security testing as a term has number of different meanings and can be completed in a number of different ways.
  • Performance Testing - A performance testing is a technical investigation done to determine or validate the responsiveness,speed, scalability and  stability.There are different types of performance testing.
          1.Load Testing - to verify application behavior under normal and peak load conditions
              1.1 Endurance Testing - It is a subset of load testing.An endurance test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload .It is basically to evaluate time
lets take an example to explain what basically is load  and endurance testing is
there is a website of a bank abc and transaction of money online only happens when 15 users are doing the transaction and it take 10 sec to complete the transaction.In load testing what we do we increase the number of user from 15 to 16 then 17,18 and so on  then we check till how many user does the function of online transaction of money take place and till when  the functionality breaks but we have to do transaction in 10seconds only no increase in time. In endurance testing we do the same by increasing the time (we can say by 5 sec) and users also

       2. Stress Testing - To determine or validate an application's behavior when it is pushed beyond normal or peak load conditions.
           2.1 Spike Testing -It is the subset of stress testing.A spike test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload and load volumes that repeatedly increase beyond anticipated production operations for short periods of time.
   the example of stress and spike testing are same as above example but in this testing we decrease the time and check when the functionality will break.
    
      3. Capacity Testing - To determine how many user or transactions a given system will support and still meet performance goals.
      4. Volume Testing - It is performed while doing the database testing       


HOME       NEXT