software testing

 A set of activities conducted with the intent of finding errors in software  process of verifying that a program functions properly

Scope of Testing
‡ A primary purpose for testing is to detect software failures so that defects may be uncovered and corrected. This is a non-trivial pursuit. Testing cannot establish that a product functions properly under all conditions but can only establish that it does not function properly under specific conditions

Static vs. Reviews. or inspections are considered as static testing. ‡ whereas actually executing programmed code with a given set of test cases is referred to as dynamic testing. . walkthroughs. dynamic testing ‡ There are many approaches to software testing.

Code review ‡ Code review is systematic examination (often as peer review) of computer source code intended to find and fix mistakes overlooked in the initial development phase. improving both the overall quality of software and the developers' skills. .

walkthrough ‡ In software engineering. and other problems". and the participants ask questions and make comments about possible errors. a walkthrough or walk-through is a form of software peer review "in which a designer or programmer leads members of the development team and other interested parties through a software product. . violation of development standards.

Inspection ‡ Inspection in software engineering. refers to peer review of any work product by trained individuals who look for defects using a well defined process. .

e.. is this what the customer wants).. ‡ Validation: Have we built the right software? (i.Software verification and validation ‡ Verification: Have we built the software right? (i.e. does it match the specification). .

. exploratory testing and specification-based testing. fuzz testing. boundary value analysis.Testing methods Black box testing ‡ Black box testing treats the software as a "black box" without any knowledge of internal implementation ‡ Black box testing methods include: equivalence partitioning.

the defects can be noted. . unexpected. or random data to the inputs of a program. by crashing or failing built-in code assertions). If the program fails (for example.‡ Fuzz testing or fuzzing is a software testing technique that provides invalid.

‡ Equivalence partitioning is a software testing technique that divides the input data of a software unit into partition of data from which test cases can be derived ‡ Boundary value analysis is a software testing design technique in which tests are designed to include representatives of boundary values. .

.Advantages ‡ The black box tester has no "bonds" with the code. and a tester's perception is very simple: a code must have bugs. Using the principle." black box testers find bugs where programmers do not. "Ask and you shall receive.

As a result. and/or (2) some parts of the back-end are not tested at all.Disadvantages ‡ But. . there are situations when (1) a tester writes many test cases to check something that could have been tested by only one test case. black box testing has been said to be "like a walk in a dark labyrinth without a flashlight." because the tester doesn't know how the software being tested was actually constructed. on the other hand.

White box testing ‡ White box testing is when the tester has access to the internal data structures and algorithms including the code that implement these. .

.White box testing includes all static testing .creating tests to satisfy some criteria of code coverage (e.g. the test designer can create tests to cause all statements in the program to be executed at least once) ‡ Fault injection methods ‡ Mutation testing methods ‡ Static testing .Types of white box testing ‡ API testing (application programming interface) Testing of the application using Public and Private APIs ‡ Code coverage .

Such integration defects can arise. when the new modules are developed in separate branches. . that seeks to uncover collisions of individual software modules to each other. and then integrated into the main project.Integration Testing ‡ Integration testing is any type of software testing.

.Regression Testing ‡ Regression Testing ‡ The selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously-working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.

i. before integration or regression.Acceptance testing Acceptance testing can mean one of two things: ‡ A smoke test is used as an acceptance test prior to introducing a new build to the main testing process. ‡ Acceptance testing performed by the customer.e. is known as user acceptance testing (UAT). often in their lab environment on their own HW. .

The following table shows the cost of fixing the defect depending on the stage it was found. then it would cost 10 100 times more to fix than if it had already been found by the requirements review. if a problem in the requirements is found only post-release.Finding faults early ‡ It is commonly believed that the earlier a defect is found the cheaper it is to fix it. For example. .


Testing Life Cycle ‡ ‡ A systematic approach to testing that normally includes these phases: Risk Analysis Planning Process Test Design Performing Test Defect Tracking and Management Quantitative Measurement Test Reporting .

GUI Checklist Microsoft Word Document .

Orthogonal Defect Classification (ODC) Microsoft Word Document .

Sign up to vote on this title
UsefulNot useful