Software Testing Methodologies Course Page
R07 Regulation - Dept. of CSE & IT
Aditya Engineering College

QUICK LINKS
BRIEF OVERVIEW
UNIT I
Purpose of Testing
Dichotomies
Model for Testing
Consequences of Bugs
Taxonomy of Bugs
Summary

UNIT II
Basics of Path Testing
Predicates, Path Predicates and Achievable Paths
Path Sensitizing
Path Instrumentation
Application of Path Testing
Summary

UNIT III
Transaction Flows
Transaction Flow Testing Techniques
Implementation
Basics of Data Flow Testing
Strategies in Data Flow Testing
Application of Data Flow Testing
Summary

UNIT IV
Domains and Paths
Nice and Ugly domains
Domain Testing
Domain and Interface Testing
Domains and Testability
Summary

UNIT V
Path products and Path expression
Reduction Procedure
Applications
Regular Expressions and Flow Anomaly Detection
Summary

UNIT VI
Logic Based Testing
Decision Tables
Path Expressions
KV Charts
Specifications
Summary





GLOSSARY

Acceptance Testing:
Testing conducted to enable a user/customer to determine whether to accept a software product. Normally performed to validate the software meets a set of agreed acceptance criteria.

Black Box Testing:
Testing based on an analysis of the specification of a piece of software without reference to its internal workings. The goal is to test how well the component conforms to the published requirements for the component.

Data Objects:
An input or output that is user visible. Data Objects are document objects consisting of factual information normally arranged into datafiles (1.2.10) or tables (1.2.10.1) which are used as a basis for reasoning, discussion, or calculation.

Debugging:
Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected.

Desk-checking:
Checking source code created with an editor before compiling it to check for typographical and other errors.

Domain:
Domain of a variable is a (mathematical) set that includes all possible values of a variable of a function.

Dynamic testing:
Dynamic Testing (or dynamic analysis) is testing software through executing it. A term used in software engineering to describe the testing of the dynamic behavior of code.

Formal Inspections:
(Also known as Fagan Inspection) Formal Inspection refers to a structured process of trying to find defects in development documents, programming code, specifications, designs and others artifacts during various phases of the software development program. Fagan Inspection is a group review method used to evaluate output of a given process.

Firmware:
Firmware is a term sometimes used to denote the fixed, usually rather small, programs that internally control various electronic devices. Typical examples range from end-user products such as remote controls or calculators

Language Processor:
A program that performs tasks, such as translating and interpreting, required for processing a specified programming language. Note: Examples of language processors include a Fortran processor and a COBOL processor.

Pachinko Code:
Pachinko is a japanese gaming device (for gambling) used for amusement and prizes. Pachinko code as the name implies, is not predictable and not testable.

Path Sensitizing:
Choosing a set of input values to force the execution of a component to take a given path.

Predicate:
A logical expression which evaluates to TRUE or FALSE, normally to direct the execution path in code.

Regression (Software):
A software regression is a software bug which makes a feature stop functioning as intended after a certain event (for example, a system upgrade, system patching or a change to daylight saving time).

Software Quality Assurance:
Software testing is a process used to identify the correctness, completeness and quality of developed computer software.

Spaghetti code:
Unstructured, or poorly structured program source code; especially code with many GOTO statements (or their equivalent).

Static testing:
Static testing (Static Analysis) takes place without running an application or its modules. It can include source code reviews, code inspections, and software walkthroughs.

Structured programming:
A style of programming in which the programmer divides his program's source code into logically structured chunks of code.

Test Case:
The specification (usually formal) of a set of test inputs, execution conditions, and expected results, identified for the purpose of making an evaluation of some particular aspect of a Target Test Item.

Unachievable Path:
A functionally meaningful processing path in the code for which there is no combination of input values that will force that path to be executed.

Unreachable Code:
Code for which there is no combination of input values that will cause the code to be executed.

Walk-throughs:
The process of inspecting algorithms and source code by following paths through the algorithms or code as determined by input conditions and choices made along the way.

White Box Testing: :
Testing based on an analysis of internal workings and structure of a piece of software. Includes techniques such as Branch Testing and Path Testing


© 2010 Suresh Babu Mudunuri, Associate Professor, Aditya Engineering College