– Shruti Khare In the technology based society everything is related to software applications. People like to have everything handy and easy to use. So as the demand is increasing the production has to increase.Software development is done mostly using 2 methodologies namely Waterfall and Agile Model. Industries are more inclined to use agile software development cycle nowadays. If the software development is increasing then the threat of crashing it also increases. This is the place where testing comes into limelight. Testing is required for a powerful performance of software application or product. It’s important to make sure that the application should not end up into any failures because it can be very costly in the future or in the later stages of the development. It is needed to stay in the business. “Testing is the process of executing a program with the intent of finding errors”Testing involves operation of a system or application under controlled conditions and evaluating the results. Tester should make an attempt  intentionally to make things go wrong to determine if things happen when they shouldn’t and things don’t happen when they shouldIt is oriented to ‘Detection’Software Quality Assurance encompasses the entire software development life cycle and its goal is to ensure that the development and maintenance are continuously improved to produce products that meet requirements. FUNCTIONAL TESTING  It is based on the test cases on the specifications of the software component under test. They are tested by feeding them input and examining them by the outputBLACK BOX TESTING 1. The black box testing is method by which the functionality of a software is tested without peering into the code of the software application.2. The tester doesn’t know anything as to how the software is made ,using which language, how it works,etc3. Tester can put any value or follow any process to use the application as he is unaware of the flow of the applicationBoundary Value Analysis (BVA)Equivalence Class Partitioning.Decision Table based testing.Cause-Effect Graphing Technique.Error Guessing.WHITE – BOX TESTING 1. The white- box testing is a method by which the functionality of the software is tested using the code of the software application2. In white-box testing an internal perspective of the system and programming skills are used to design test cases. 3. The tester chooses inputs to exercise paths through the code and determines the expected outputs. Control flow testing.Data flow testing.Branch testing.Statement coverageDecision coverage.Modified condition/decision coverage.Prime path testing.Path testing.1. INTEGRATION TESTINGThis is the phase of software testing in which individual modules are combined together and tested as a groupIt is done to determine if they function correctly after being combined together.2. UNIT TESTINGSoftware’s smallest part to be tested is known as “UNIT”Unit testing is a level of software testing where individual units/ components of a software are tested In procedural programming a unit may be an individual program, function, procedure, etc.In object-oriented programming,unit testing is a method, which may belong to a base super class, derived class  or abstract class.SMOKE TESTING Smoke Testing, also known as “Build Verification Testing”, is a type of software testing that comprises of a non-exhaustive set of tests that aim at ensuring that the most important functions work. Smoke testing is the initial testing process exercised to check whether the software under test is ready/stable for further testing.The term ‘Smoke Testing’ came from the hardware testing, in the hardware testing initial pass is done to check if it did not catch the fire or smoked in the initial switch on.SANITY TESTINGAfter receiving a Software build with the minor issues fixes in code or functionality, Sanity testing is carried out to check whether the issues reported in previous build are resolved & there is regression introduced due to these fixes i.e. not breaking any previously working functionality.The main goal of Sanity testing to check the already decided functionality is working as expected or not, Instead of doing whole regression testing the Sanity testing is perform.If by any chance build fails then wasting time and money can be avoided if we use sanity testing NON – FUNCTIONAL TESTING Non-functional testing is the testing of a software application or system for its non-functional requirements ,the way a system operates, rather than specific behaviors of that system A. USABILITY TESTING Usability Testing is a type of software testing where, a small set of target end-users, of a software system, “use” it to expose usability defects. The goal is to identify any usability problems, collect qualitative and quantitative data and determine the participant’s satisfaction with the product. 1. EXPLORATORY TESTINGExploratory testing is a hands-on approach in which testers are involved in minimum planning and maximum test execution. It examines a system and look for areas of user confusion, slow downs or mistakes.2. THRESHOLD TESTINGThreshold testing is measuring the performance characteristics of a system against predetermined goals.Minimum or maximum value (established for an attribute, characteristic, or parameter) serves as a benchmark for comparison or guidance and any breach of which may call for a complete review of the situation or the redesign of a system3. PERFORMANCE TESTINGA performance testing is a practice performed to determine how a system response or stabilize under a particular workload.It can also serve to investigate, measure,validate or verify other quality attributes of the system such as scalability, reliability, and resource usage. Types of performance testing : 1. Load testing. 2. Stress testing. 3. Soak testing. 4. Spike testing 5. Configuration testing. 6. Isolation testing. 7. Internet testing.4. CAPACITY TESTINGA capacity testing is a test to determine how many user, application can handle before either performance or stability becomes unacceptable.5. COMPARISON TESTING:-Comparison testing comprises of comparing the contents of files, databases, against actual results. They are capable of highlighting the differences between expected and actual results. A comparison testing can be carried out in two waysDirect comparison testing: It is a testing of particular parts of each site against each other. Usually, multiple sites are compared side by side.Objective comparison testing: Execute the same test for each site separately. Usually, one site at a time is tested.MAINTAINANCE 1. MAINTAINANCE TESTINGMaintenance Testing is done on the already deployed software. The deployed software needs to be enhanced, changed or migrated to other hardware. The Testing done during this enhancement, change and migration cycle is known as maintenance testing. Maintenance testing is a test that is performed to either identify equipment problems, diagnose equipment problems or to confirm that repair measures have been effective. 2. REGRESSION TESTINGRegression testing is the testing after modification of a system, component, or a group of related units to ensure that the modification is working correctly and is not damaging or imposing other modules to produce unexpected results.It falls under the class of black box testing.