Different Type of Software Testing Definition

                 

Failover Testing
Failover Tests verify of redundancy mechanisms while the system is under load.

For example, in a web environment, failover testing determines what will happen if multiple web servers are being used under peak anticipated load and one of them dies and then how the remaining servers take the responsibilities.

Compatibility testing
Checking the application on different platforms (Operating System) with different browsers, the main aim of compatibility testing is to test weather application can run successfully on different OS.


Usability Testing
Usability Testing is nothing but the application is user friendly or not. i.e. easy to use and easy to operate.

  • we will check font size, font color, back color, tables, borders etc
  •  In a simple word, UT means to test 'how simple the application to use'
Recovery testing
Recovery testing means how our application software recovers from abnormalities, such as application crashes 




Confirms that the program recovers from expected or unexpected events without loss of data or functionality. Events can include shortage of disk space, unexpected loss of communication, or power out conditions.

Whenever an error occurs the application is recover from error properly and run remaining functionality properly

Recovery Testing(contd.)
Recovery testing on TV means how our television recovers from abnormalities like improper power supply, voltage problems etc.


Install Uninstall Testing
During the installation testing we validate that whether the Navigation, Path, Steps are provided   to install the software end user successfully or not

During uninstall whether the installation wizard is provided to uninstall the software successfully

Security testing 
 testing how well the system protects against unauthorized internal or external access, wilful damage, etc; may require sophisticated testing techniques.  


Testing which confirms that the program can restrict access to authorized personnel and that the authorized personnel can access the functions available to their security level.

  • It  confirms that the program can restrict access to authorized personnel 
  • The authorized personnel can access the functions available to their security level.

End to End Testing
End to end testing is nothing but testing the application starting from scratch to the end after integrated all the modules.

E2E is almost like UAT with an exception that it is done by testers.

End to End Testing(contd.)
End to end testing means from the staring point to end point of testing of one s/w build.
All the user interface testing, functional testing & non-functional testing is comes under this end to end testing.

Black Box testing
Black box testing is testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions.

Black box testing  also called functional testing and behavioral testing

Black Box testing(contd.)
Black box testing attempts to find errors in the external
behavior of the code in the following categories 

  • Incorrect or missing functionality 
  • Interface errors
  • Errors in data structures used by interfaces
  • Behavior or performance errors
  • Initialization and termination errors.
Through this testing, we can determine if the functions appear to work according to specifications.


With black box testing, the software tester does not (or should not) have access to the
source code itself.
The code is considered to be a “big black box” to the tester who can’t see inside the box.
The tester knows only that information can be input into to the black box, and the black box will send something back out.
Based on the requirements knowledge, the tester knows what to expect the black box to send out and tests to make sure the black box sends out what it’s supposed to send out
Black Box testing(contd.)
A black-box test takes into account only the input and output of the software without regard to the internal code of the program.



Types of Black Box Testing
  1. Functional testing 
  2. System testing
  3. Integration testing
  4. Incremental integration testing
  5. End-to-end testing
  6. sanity test or sanity check
  7. Regression testing
  8. Load testing
  9. Stress testing
  10. Performance testing
  11. Usability testing
  12. Install/uninstall testing
  13. Recovery testing
  14. Security testing
  15. Computability testing
  16. Acceptance testing
  17. Comparison testing
  18. Alpha testing

Unit Testing
unit testing is a method by which individual units of source code are tested to determine if they are fit for use.
A unit is the smallest testable part of an application.
 In procedural programming a unit may be an individual function or procedure.
 Unit tests are created by programmers or occasionally by white box testers.

Unit Testing(contd.)

The goal of unit testing is to isolate each part of the program and show that the individual parts are correct

The tester will write some test code that will call a method with certain parameters and will ensure that the return value of this method is as expected.

Looking at the code itself, the tester might notice that there is a branch (an if-then) and might write a second test case to go down the path not executed by the first test case.

For example carefully observe the example of white box testing

White Box testing
White-box testing is testing that takes into account the internal mechanism of a system or Component.

  • White-box testing is also known as structural testing, clear box testing, and glass box testing. 
  • The connotations of “clear box” and “glass box” appropriately indicate that you have full visibility of the internal workings of the software product, specifically, the logic and the structure of the code.
  • There are certain levels only at which white box testing can be applied. The levels have been given below in the list:
            - Unit level
            - Integration level and
           - System level
           - Acceptance level
           - Regression level
           - Beta level


Integration testing
Integration test is testing in which software components, hardware components, or both are combined and tested to evaluate the interaction between them [11]. Using both black and white box testing techniques, the tester (still usually the software developer) verifies that units work together when they are integrated into a larger code base




Functional testing

Testing the features and operational behavior of a product to ensure they correspond to its specifications. Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions. or Black Box Testing.

 Functional testing involves ensuring that the functionality specified in  the requirement specification works. 


System testing
System testing involves putting the new program in
many different environments to ensure the program works in typical customer  environments with various versions and types of operating systems and/or applications.
System testing is testing conducted on a complete, integrated system to evaluate the system compliance with its specified requirements


Stress testing
Stress testing – testing conducted to evaluate a system or component at or beyond the limits of its specification or requirement . 

  • For example, if the team is developing software to run cash registers, a non-functional requirement might state that the server can handle up to 30 cash registers looking up prices simultaneously. 
  • Stress testing might occur in a room of 30 actual cash registers running automated test transactions repeatedly for 12 hours.

Performance testing

Performance testing is executed to determine how fast a system or sub-system performs under a particular workload.

Load testing

Load testing is primarily concerned with testing that can continue to operate under a specific load, whether that be large quantities of data or a large number of users.

Acceptance testing
Acceptance testing is formal testing conducted to determine whether or not a system satisfies its  acceptance criteria (the criteria the system must satisfy to be accepted by a customer) and to enable the customer to determine whether or not to accept the system


Regression testing
Regression testing is selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still complies with its specified requirements .
 Regression tests are a subset of the original set of test cases. These test cases are re-run often, after any significant changes (bug fixes or enhancements) are made to the code.
The purpose of running the regression test case is to make a “spot check” to examine whether the new code works properly and has not damaged any previously-working functionality by propagating unintended side effects


Beta Testing
When an advanced partial or full version of a software package is available, the development organization can offer it free to one or more (and sometimes thousands) potential users or beta testers.


Exploratory testing
Exploratory testing is an approach to software testing that is concisely described as simultaneous learning, test design and test execution. now defines exploratory testing as "a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the quality of his/her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project”


Smoke Testing
A quick-and-dirty test that the major functions of a piece of software work. Originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch on fire


Security Testing
Testing which confirms that the program can restrict access to authorized personnel and that the authorized personnel can access the functions available to their security level.



Verification and Validation: Software testing is done considering these two factors.

        Verification: This verifies whether the product has been designed according to the specification.
        Verification: Are we building the product right?
        
        Validation: This checks whether the product meets the requirements of customers.
        Validation: Are we building the right product?

 
 

3 comments:

  1. I was very interested in the article , it’s quite inspiring I should admit. I like visiting your site since I always come across interesting articles like this one. Keep sharing! Regards. Read more about
    Security Testing Services
    Test Automation Services
    Software Testing Services
    Compatibility Testing Services
    Regression Testing Services

    ReplyDelete
  2. i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
    QA Companies
    Automation Testing Companies
    Mobile App Testing Companies
    Performance Testing Companies
    Security Testing Companies

    ReplyDelete
  3. This is really a worthy and wonderful blog about Software Testing Companies in Chennai to read and further more tips on the Software Testing Companies in Bangalore have been learnt. thanks for sharing your views among us and its great time spending on this. I am waiting for new post here about Software Testing Services in Chennai and Please keep it up in future..

    ReplyDelete