Functional Testing is a type of software testing that validates the software system against the functional requirements or specifications provided by the client.
Main purpose : To test each functionality of software application .
This is done by taking appropriate input and verifying the output against the functional requirements.
It basically describes what a product does.
Unit Testing is a type of software testing where individual units or components of a software are tested.
Main purpose : To validate that each unit of the software code performs as expected.
It is done by developers during coding phase.
Module testing is a testing technique which checks individual subprograms, subroutines, classes, or procedures in a program Instead of testing whole program at once.
Main purpose : To isolate a section of code and verify its correctness.
It is usually performed during the early stages of software development.
Integration Testing is defined as a type of testing where software modules are integrated logically and tested as a group.
Main purpose : To expose defects in the interaction between these software modules when they are integrated.
It is a type of software testing in which the different units, modules or components of a software application are tested as a combined entity.
System Testing is a level of testing that validates the complete and fully integrated software product.
Main purpose : To evaluate the end-to-end system specifications.
It is defined as a series of different tests whose sole purpose is to exercise the full computer-based system. It examines every component of an application to make sure that they work as a complete and unified whole.
End To End Testing is a software testing method that validates entire software from starting to the end along with its integration with external interfaces.
Main purpose : To test whole software for dependencies, data integrity and communication with other systems, interfaces and databases to exercise complete production like scenario.
It is a way to make sure that applications behave as expected and that the flow of data is maintained for all kinds of user tasks.
UI Testing is a software testing type that checks the User Interface or graphical user interface of the Software.
Main purpose : To ensure the functionalities of software application work as per specifications by checking screens and controls like menus, buttons, icons, etc.
It is a technique that ensures that the UI of a website or mobile application is user-friendly and meets the expected customer or end-user requirements.
Sanity Testing is a kind of Software Testing performed after receiving a software build, with minor changes in code or functionality, to ascertain that the bugs have been fixed and no further issues are introduced due to these changes.
Main purpose : To determine that the proposed functionality works roughly as expected.
It is performed to ensure that the code changes introduced are working as expected . It is a checkpoint to determine if testing for the build can proceed further or not.
Smoke Testing is a software testing process that determines whether the deployed software build is stable or not.
Main purpose : To detect any early defects in a software product and demonstrate system stability.
It is a software testing method that is used to determine if a new software build is ready for the next testing phase. It is a confirmation for QA team to proceed with further software testing.
Sanity Testing is a kind of Software Testing performed after receiving a software build, with minor changes in code or functionality, to ascertain that the bugs have been fixed and no further issues are introduced due to these changes.
Main purpose : To determine that the proposed functionality works roughly as expected.
It is performed to ensure that the code changes introduced are working as expected . It is a checkpoint to determine if testing for the build can proceed further or not.
White Box Testing is a testing technique in which software’s internal structure, design, and coding are tested to verify input-output flow and improve design, usability, and security.
Main purpose : Can focus on discovering security gaps and vulnerabilities — checking to see if security best practices were applied when coding the application, and if the code is vulnerable to known security threats and exploits.
Black Box Testing is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths.
Main purpose : To check additional aspects of the software which are beyond features and functionality.
It is a type of software testing in which the tester is not concerned with the internal knowledge or implementation details.
Grey Box Testing is a software testing technique to test a software product or application with partial knowledge of internal structure of the application.
Main purpose : To search and identify the defects due to improper code structure or improper use of applications.
It is a method that can be used to debug software and evaluate vulnerabilities. It is done by testers where they have limited knowledge of the workings of the component being tested.
Acceptance Testing is a type of testing performed by the end user or the client to verify or accept the software system before moving the software application to the production environment.
Main purpose : To validate end to end business flow.
It does not focus on cosmetic errors, spelling mistakes or system testing. It is done in the final phase of testing after functional, integration and system testing is done.
Unit Testing is a type of software testing where individual units or components of a software are tested.
Main purpose : To validate that each unit of the software code performs as expected.
It is done by developers during coding phase.
Functional Testing is a type of software testing that validates the software system against the functional requirements or specifications provided by the client.
Main purpose : To test each functionality of software application .
This is done by taking appropriate input and verifying the output against the functional requirements.
It basically describes what a product does.
Equivalence Partitioning or Equivalence Class Partitioning is type of black box testing technique which can be applied to all levels of software testing like unit, integration, system, etc.
Main purpose : To define test cases that uncover classes of errors thereby reducing total number of test cases.
In this technique, input data units are divided into equivalent partitions that can be used to derive test cases which reduces time required for testing because of small number of test cases.
Boundary value analysis is the process of testing between extreme ends(like Start- End, Lower- Upper, Maximum-Minimum) also called boundary values.
Main purpose : To test boundary values because the input values near the boundary have higher chances of error.
It is based on testing the boundary values of valid and invalid partitions.
Requirement Traceability Matrix is a document that maps and traces user requirement with test cases.
Main purpose : To validate that all requirements are checked via test cases such that no functionality is unchecked during Software testing.
It captures all requirements proposed by the client and requirement traceability in a single document, delivered at the conclusion of the Software development life cycle.
Performance Testing is a software testing process used for testing the speed, response time, stability, reliability, scalability, and resource usage of a software application under a particular workload.
Main purpose : To identify and eliminate the performance bottlenecks in the software application.
It is a subset of performance engineering and is also known as Perf Testing.
Load Testing is a non-functional software testing process in which the performance of software application is tested under a specific expected load.
Main purpose : To improve performance bottlenecks and to ensure stability and smooth functioning of software application before deployment.
It determines how the software application behaves while being accessed by multiple users simultaneously.
Stress Testing is a type of software testing that verifies stability & reliability of software application.
Main purpose : To measure software on its robustness and error handling capabilities under extremely heavy load conditions and ensuring that software doesn’t crash under crunch situations.
It is a software testing activity that determines the robustness of software by testing beyond the limits of normal operation.
Alpha Testing is a type of software testing performed to identify bugs before releasing the software product to the real users or public.
Main purpose : To refine the software product by finding and fixing the bugs that were not discovered through previous tests.
It is done on an application towards the end of a development process when the product is almost in a usable state.
Beta Testing is performed by real users of the software application in real environment and it can be considered as a form of external User acceptance testing.
Main purpose :To uncover any bugs or issues before a general release.
It is the final test before shipping a product to the customers.
It is an opportunity for real users to use a product in a production environment to uncover any bugs or issues before a general release.
Priority is a term that defines how fast we need to fix a defect . It is basically a parameter that decides the order in which we should fix the defects.
Severity is basically a parameter that denotes the total impact of a given defect on any software. It relates to the standards of quality.
Priority defines the order in which developers will fix defects where as Severity means how badly the defect has affected the application’s functionality.
Priority meaning the level of (business) importance assigned to an item where as Severity is the degree of impact that a defect has on the development or operation of a component or system.
Test Bed is a platform for conducting rigorous, transparent, and replicable testing of scientific theories, computing tools, and new technologies.
It consists of specific hardware, software, Operating system, network configuration, the product under test, other system software and application software.
A testing environment is a setup of software and hardware for the testing teams to execute test cases. In other words, it supports test execution with hardware, software and network configured. It is an environment where testers executes their tests.
This environment is a collection of hardware and software.
A bug is the consequence or outcome of a coding fault. It is the informal name of defects, which means that software or application is not working as per the requirements.
It can also be issue, error, fault, or failure. It occurs when developers make any mistake or error while developing the product.
A Defect in Software Testing is a variation or deviation of the software application from end user's requirements or original business requirements.
It is an error in coding which causes incorrect or unexpected results from a software program which does not meet actual requirements.
Security Testing is a type of Software Testing that uncovers vulnerabilities, threats, risks in a software application and prevents malicious attacks from intruders.
Main purpose : To identify all possible loopholes and weaknesses of the software system which might result in a loss of information, revenue, repute at the hands of the employees or outsiders of the Organization.
Monkey Testing is a software testing technique in which the tester enters any random inputs into the software application without predefined test cases and checks the behavior of the software application, whether it crashes or not.
Main purpose : to find the bugs and errors in the software application using experimental techniques.
Exploratory Testing is a type of software testing where Test cases are not created in advance but testers check system on the fly.
Main purpose : Guidance of the individual tester to uncover defects that are not easily covered in the scope of other tests.
It is an approach to software testing that is often described as simultaneous learning, test design, and execution.
Soak Testing is a type of non-functional testing that is used to measure performance of a software application under a huge volume of load for an extended period of time.
Main purpose : To ensure whether the software application sustains high volume of usage and to check what would happen outside its design expectations.
It is a type of performance evaluation that gauges how an application handles a growing number of users or increasingly taxing tasks over an extended period of time.
Usability Testing also known as User Experience (UX) Testing , is a testing method for measuring how easy and user-friendly a software application is.
Main purpose : to gather the data needed to identify usability issues and improve a website's or app's design.
It is a method of testing the functionality of a website, app, or other digital product by observing real users as they attempt to complete tasks on it.
Accessibility Testing is defined as a type of Software Testing performed to ensure that the application being tested is usable by people with disabilities like hearing, color blindness, old age, and other disadvantaged groups.
Main purpose : to make sure the application being tested are accessible by individuals with disabilities.
Accessibility testing is the practice of making your web and mobile apps usable to as many people as possible.
Cross browser testing refers to the practice of verifying that web applications work as expected across many different combinations of web browsers, operating systems, and devices.
Main purpose : To check whether the website works as intended when accessed through different Browser-OS combinations.
Compatibility Testing is a type of Software testing to check whether your software is capable of running on different hardware, operating systems, applications, network environments or mobile devices.
Main purpose : to ensure a software application is properly working across different browsers, databases, operating systems (OS), mobile devices, networks and hardware.
Positive Testing is a type of testing which is performed on a software application by providing the valid data sets as an input.
Main purpose : To check whether the software application does exactly what it is expected to do.
It checks whether the software application behaves as expected with positive inputs or not.
Negative Testing is a testing method performed on the software application by providing invalid or improper data sets as input.
Main purpose : to ensure that the software application does not crash and remains stable with invalid data inputs.
It checks whether the software application behaves as expected with the negative or unwanted user inputs.
Ad hoc Testing is an informal or unstructured software testing type that aims to break the testing process in order to find possible defects or errors at an early possible stage.
Main purpose : To find defects by random checking.
it is done randomly and it is usually an unplanned activity which does not follow any documentation and test design techniques to create test cases.
Regression Testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features.
Main purpose : To ensure that new code changes do not have side effects on the existing functionalities.
It is nothing but a full or partial selection of already executed test cases that are re-executed to ensure existing functionalities work fine.
Retesting is a process to check specific test cases that are found with bug/s in the final execution.
It is testing of a particular bug after it has been fixed.
Main purpose : To confirm that the defects/bugs have been fixed and that the affected functionality works as expected.
Static Testing is a type of software testing in which software application is tested without code execution. Manual or automated reviews of code, requirement documents and document design are done in order to find the errors.
Main purpose : To improve the quality of software applications by finding errors in early stages of software development process.
Dynamic Testing is a type of software testing which checks for functional behavior of software system, memory/ cpu usage and overall performance of the system.
Main purpose : To confirm that the software product works in conformance with the business requirements.
It is a type of Software Testing which is performed to analyze the dynamic behavior of the code.
Boundary value analysis is the process of testing between extreme ends(like Start- End, Lower- Upper, Maximum-Minimum) also called boundary values.
Main purpose : To test boundary values because the input values near the boundary have higher chances of error.
It is based on testing the boundary values of valid and invalid partitions.
Equivalence Partitioning or Equivalence Class Partitioning is type of black box testing technique which can be applied to all levels of software testing like unit, integration, system, etc.
Main purpose : To define test cases that uncover classes of errors thereby reducing total number of test cases.
In this technique, input data units are divided into equivalent partitions that can be used to derive test cases which reduces time required for testing because of small number of test cases.
Requirement Traceability Matrix is a document that maps and traces user requirement with test cases.
Main purpose : To validate that all requirements are checked via test cases such that no functionality is unchecked during Software testing.
It captures all requirements proposed by the client and requirement traceability in a single document, delivered at the conclusion of the Software development life cycle.
Agile Methodology meaning a practice that promotes continuous iteration of development and testing throughout the software development lifecycle of the project. In the Agile model in software testing, both development and testing activities are concurrent. It break tasks into smaller iterations, or parts do not directly involve long term planning.
V Model is a highly disciplined SDLC model which has a testing phase parallel to each development phase. It is an extension of the waterfall model wherein software development and testing is executed in a sequential way. It is known as the Validation or Verification Model. t is based on the association of a testing phase for each corresponding development stage. Development of each step is directly associated with the testing phase.
Waterfall Model is a sequential model that divides software development into pre-defined phases. Each phase must be completed before the next phase can begin with no overlap between the phases. Each phase is designed for performing specific activity during the SDLC phase.
It illustrates the software development process in a linear sequential flow.
Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the testing process to ensure software quality goals are met. It involves both verification and validation activities. Contrary to popular belief, software testing is not just a single/isolate activity, i.e. testing consists of a series of activities carried out methodologically to help certify your software product.
SDLC is a systematic process for building software that ensures the quality and correctness of the software built. It aims to produce high-quality software that meets customer expectations. The system development should be complete in the pre-defined time frame and cost. It consists of a detailed plan which explains how to plan, build, and maintain specific software. Every phase of the SDLC life cycle has its own process and deliverables that feed into the next phase.
Defect Life Cycle or Bug Life Cycle in software testing is the specific set of states that defect or bug goes through in its entire life.
It helps to easily coordinate and communicate current status of defect which changes to various assignees and make the defect fixing process systematic and efficient. The bug life cycle in testing refers to a cycle of defects in which it goes through different states throughout its life.
A Test Case is a set of actions executed to verify a particular feature or functionality of your software application. It contains test steps, test data, precondition, postcondition developed for specific test scenario to verify any requirement.
A Test Scenario is defined as any functionality that can be tested. It is also called Test Condition or Test Possibility. It is a document that covers the end-to-end functionality of the software very briefly, mostly in one line, from an end-user perspective.
A test Case is a set of actions executed to verify particular features or functionality, whereas a Test Scenario is any functionality that can be tested.
Test Case is mostly derived from test scenarios while Test Scenarios are derived from test artifacts like BRS and SRS.
A Test Case Template is a well-designed document for developing and better understanding of the test case data for a particular test case scenario. A good test case template maintains test artifact consistency for the test team and makes it easy for all stakeholders to understand the test cases. Writing test case in a standard format lessen the test effort and the error rate.
· The elevator is capable of moving up and down.
· It stops at each floor.
· It moves precisely to that floor when the corresponding floor no is pressed.
· It moves up when called from upward and down when called from downward.
· It waits until the ‘close’ button is pressed.
· If anyone steps in between the door at the time of closing, the door should open.
· No breakpoints exist
More use cases for the load that the elevator can carry (if required)
Software testing is a procedure of implementing software or the application to identify the defects or bugs. For testing an application or software, we need to follow some principles to make our product defects free, and that also helps the test engineers to test the software with their effort and time.
There are many myths and false assumptions that continue to loom around software testing. There are also lots of myths out there that prevent fully testing the software application that which can lead to producing an insecure and less productive software application .
SQL stands for Structured Query Language. SQL lets you access and manipulate databases. SQL (Structured Query Language) is used to perform operations on the records stored in the database, such as updating records, inserting records, deleting records, creating and modifying database tables, views, etc.
SQL is not a database system, but it is a query language.
Quality assurance is defined as all the planned and systematic activities implemented within the quality system that can be demonstrated to provide confidence that a product or service will fulfill requirements for quality where as Quality control can be defined as part of quality management focused on fulfilling quality requirements.
Tools that are used for bug tracking are called bug tracking tools . Bug tracking is the process of logging and monitoring bugs or errors during software testing. It is also referred to as defect tracking or issue tracking. Large systems may have hundreds or thousands of defects. Each needs to be evaluated, monitored and prioritized for debugging. In some cases, bugs may need to be tracked over a long period of time.
We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.