ISTQB Advanced CTAL Exam-Study Guide-Part 4
Prior to appearing for exam for ISTQB Advanced Level certification, it is wise to quickly brush up your knowledge by reviewing the following questions � answers that are extremely important from the examination point of view.
Q. 31: What is Equivalence partitioning?
Specifications frequently partition the set of all possible inputs into classes that receive equivalent treatment. Such partitioning is called equivalence partitioning. A result of equivalence partitioning is the identification of a finite set of functions and their associated input and output domains.
Input constraints and error conditions can also result from this partitioning. Once these partitions have been developed, both extremal and midrange testing are applicable to the resulting input domains.
Equivalence partitioning can be compared with random testing on the basis of statistical confidence in the probability of failure after testing is complete.
<<<<<< =================== >>>>>>
Q. 32: What is Syntax checking?
Every robust program must parse its input and handle incorrectly formatted data. Verifying this feature is called syntax checking. One means of accomplishing this is to execute the program using a broad spectrum of test data. By describing the data with a BNF grammar, instances of the input language can be generated using algorithms from automata theory and describe systems that provide limited control over the data to be generated.
<<<<<< =================== >>>>>>
Q. 33: What is Special value testing?
Selecting test data on the basis of features of the function to be computed is called special value testing. This procedure is particularly applicable to mathematical computations. Properties of the function to be computed can aid in selecting points that will indicate the accuracy of the computed solution.
For example, the periodicity of the sine function suggests use of test data values, which differ by multiples of 2 Pi. Such characteristics are not unique to mathematical computations.
<<<<<< =================== >>>>>>
Q. 34: What are the Decision Tables?
Decision tables are a concise method of representing an equivalence partitioning. The rows of a decision table specify all the conditions that the input may satisfy. The columns specify different sets of actions that may occur. Entries in the table indicate whether the actions should be performed if a condition is satisfied. Typical entries are “Yes,” “No,” or “Don�t Care.” Each row of the table suggests significant test data. Cause-effect graphs provide a systematic means of translating English specifications into decision tables, from which test data can be generated.
<<<<<< =================== >>>>>>
Q. 35: What is Implementation-oriented testing?
In implementation-oriented program testing, test data selection is guided by information derived from the implementation [Howden75]. The goal is to ensure that various computational characteristics of the software are adequately covered. It is hoped that test data that satisfy these criteria have higher probability of discovering faults. Each execution of a program executes a particular path. Hence, implementation oriented testing focuses on the following questions: What computational characteristics are desirable to achieve? What paths for this program achieve these characteristics? What test data will execute those paths? What are the computational characteristics of the set of paths executed by a given test set?
Implementation oriented testing addresses the fact that only the program text reveals the detailed decisions of the programmer. For the sake of efficiency, a programmer might choose to implement a special case that appears nowhere in the specification. The corresponding code will be tested only by chance using specification-oriented testing, whereas use of a structural coverage measure such as statement coverage should indicate the need for test data for this case.
Implementation-oriented testing schemes may be classified according to two orthogonal axes: 1) Error orientation and 2) Program view.
A testing scheme�s error orientation is the aspect of fault discovery that is emphasized: execution, infection, or propagation. A testing scheme�s program view is the program abstraction source that is used to determine desirable computational characteristics: control flow, data flow, or computation flow. Program view emphasizes how a particular strategy works; error orientation emphasizes the motivation behind the strategy and helps one to better evaluate claims made about the strategy.
<<<<<< =================== >>>>>>
Q. 36: What is Structure-oriented testing?
A testing technique is structure-oriented if it seeks test data that cause various structural aspects of the program to be exercised. Assessing the coverage achieved may involve instrumenting the code to keep track of which parts of the program are actually exercised during testing. The inexpensive cost of such instrumentation has been a prime motivation for adopting structure-oriented techniques. Further motivation comes from consideration of the consequences of releasing a product without having executed all its parts and having the customer discover faults in untested code.
Following are the three essential components that are covered in Structure-oriented testing are: computations, branches & data.
<<<<<< =================== >>>>>>
Q. 37: What is Statement testing?
Statement testing requires that every statement in the program be executed. While it is obvious that achieving 100% statement coverage does not ensure a correct program, it is equally obvious that anything less means that there is code in the program that has never been executed.
<<<<<< =================== >>>>>>
Q. 38: What is Branch testing?
Achieving 100% statement coverage does not ensure that each branch in the program flow graph has been executed. For example, executing an if … then statement (no else) when the tested condition is true, tests only one of two branches in the flow graph. Branch testing seeks to ensure that every branch has been executed. Branch coverage can be checked by probes inserted at points in the program that represent arcs from branch points in the flow graph. This instrumentation suffices for statement coverage as well.
<<<<<< =================== >>>>>>
Q. 39: What is Data coverage testing?
In some programs, a portion of the flow control is determined by the data, rather than by the code. Knowledge-based applications, some AI applications, and table-driven code are all examples of this phenomenon. Data coverage testing seeks to ensure that various components of the data are “executed,” i.e., they are referenced or modified by the interpreter as it executes. Paralleling statement testing, one can ensure that each data location is accessed. Furthermore, in the area of knowledge bases, data items can be accessed in different orders, so it is important to cover each of these access orders. These access sequences are analogous to branch testing.
<<<<<< =================== >>>>>>
Q. 40: What is Infection-oriented testing?
A testing technique is considered Infection-oriented if it seeks to establish conditions suitable for infections to arise at locations of potential faults. Following are the testing techniques that require test data to force infections if faults exist.
1) Conditional testing
2) Expression testing
3) Domain testing
4) Perturbation testing
5) Fault sensitivity testing
Reference: Technical archive from SEI – Software Engineering Institute
Read Part -5 of the Study Guide
Full Study Material for ISTQB Test Analyst & Technical Test Analyst Exam
An expert on R&D, Online Training and Publishing. He is M.Tech. (Honours) and is a part of the STG team since inception.