Vous êtes sur la page 1sur 5

Types of Software Testing

Non-Functional Testing: Testing the application performance how well the product
behaves.
Example going to a website and check how long it takes you once you clicked sign in button.

Functional testing

Functional testing demonstrates WHAT the product does. This type of testing ignores the internal parts and focus on the output is as per requirement or not. Functional Testing covers:

Smoke testing / Sanity testing Overview testing (Important)

is conducted to ensure whether the most crucial function of a Programs are working, without getting into too deep.

Integration Testing (Top Down, Bottom up Testing)


Lets have very basic example for quick understanding Take the example of aero plane assembling. Each and every unit is manufactured and tested separately. Then all parts assembled with each other and tested for functionality when two parts starts communicating with each other. This is Integration testing.

System Testing
Is to validate the system as whole is performing as per the requirement.

When you test Aero plane a one masterpiece for its Intended functionality it is called system testing.

White Box testing (Coding related testing)


Means testing the application with coding /programming knowledge. Mostly done by developers. 1) Guarantee that that all independent paths within a module have been checked 2) Exercise all logical decisions on their true and false side 3) Exercise internal data structures to ensure their validity

Unit Testing
Unit Testing is the first level of testing and it performs by the developer. Its a test that validates that individual units of source code are working properly.

Component Testing
Testing a specific part of a system or even a program. That would be called a component. So it is component testing.

Black Box Testing (No coding required)


testing the application without coding /programming knowledge that means the tester doesn't require coding knowledge. Just examines the applications external functional behaviors and GUI features. BLACK BOX TESTING ADVANTAGES Tests are done from a users point of view. Tester no need to know programming languages or how the software has been implemented. Tests can be conducted by a body independent from the developers, allowing for an objective perspective and the avoidance of developer-bias Test cases can be designed as soon as the specifications are complete BLACK BOX TESTING DISADVANTAGES Only a small number of possible inputs can be tested and many program paths will be left untested. Without clear specifications, which is the situation in many projects, test cases will be difficult to design

Regression Testing /Change related Testing

is to make sure that the older programming still works with the new changes.
Before a new version of a software product is released, the old test cases are run against the new version to make sure that all the old capabilities still work. The reason they might not work is because changing or adding new code to a program can easily introduce errors into code that is not intended to be changed.

Regression testing can be performed during any level of testing (Unit, Integration, System, or Acceptance) but it is mostly relevant during System Testing.

Positive and Negative Testing (equivalence partitioning)


is a concept. Way of thinking.

Positive testing:

testing the software by giving the valid input or data to test the results as expected or required. If an error is encountered during positive testing, the test fails.

Negative Testing:

Is testing the software by giving invalid input or data to check whether the application does what it should not and does not when it should.

A technique in black box testing is equivalence partitioning.


ECP is a method of reducing test cases by deciding to treat groups of values the same. For example, if I am testing a function that can accept values between 1 and 1000, I can probably treat most of those values the same (e.g. 2-999). Example: Children under 2 ride the bus for free. Young people pay $10, Adults $15 and Senior Citizen pay $5. Classes: Price:0 -> Age:0-1 Price:10 -> Age:2-14 Price:15 -> Age:15-64 Price:5 -> Age:65-infinity

Equivalence Classes Partitioning (ECP)

Boundary value testing (BV)


Is a technique to find whether the application is accepting the expected range of values and rejecting the values which falls out of range. Boundary value analysis simply means to select values near the boundaries of the classes. So you are still dividing the input domain according to the classes then instead of selecting values from the middle of the class use values from the boundaries. Example (1) If the valid input condition is a range from 20 to 70 then you have three classes of input Less than 20 Between 20 and 70

More than 70 Two points boundary value analysis select input would be >19-20___________70-71 Three points boundary value analysis select input > 19, 20, 21, ______ 69, 70, 71. This type of analysis picks up errors on the boundaries. Example (2) BV Testing is when you decide to test the values on the edge of each Class you have identified. The theory is that most defects are around the edges of a class. Example Classes: Price: Price: Price: Price: 0 -> 10 -> 15 -> 5 -> Age: Age: Age: Age: 0-1 (Boundary values 0, 1) 2-14 (Boundary values 2, 14) 15-64 (Boundary values 15, 64) 65-infinity (Boundary values 65)

Both Testing Methods difference


For example for equivalent testing of a function that takes values between 1 and 12 (Say months of a year) the partitions would be: values less than 1 (0,-1,-2), invalid partition values between 1-12, valid partition Values greater than 12, invalid partition For equivalence testing it is enough to pick one value as test input from each of these partition classes. That would mean tests with value of -2,6, and 15 would be considered enough to test behavior of the function. With the boundary value testing the test inputs would be: -1, 0, 1__11, 12, 13 (at the boundaries), which would catch off-by-one errors

Static testing:
Static analysis is performed without actually executing the software being examined by the tool. Static analysis can locate defects that are hard to find in testing. It is generally not detailed testing, but checks mainly for the sanity of the code, scripts or document.This type of testing can be used by the developer who wrote the code, in isolation.Static testing involves reviewing requirements and specifications. This is the verification portion of Verification and Validation. Even static testing can be automated. A static testing test suite consists of programs to be analyzed by an interpreter or a compiler that asserts the programs syntactic validity. Bugs discovered at this stage of development are less expensive to fix than later in the development cycle.[citation needed] The people involved in static testing are application developers and testers.