Concept of Complete Testing | Exhaustive testing is impossible

.. Continuing the Beginners Guide to Software Testing series

It is not unusual to find people making claims such as “I have exhaustively tested the program.” Complete, or exhaustive, testing means there are no undiscovered faults at the end of the test phase. All problems must be known at the end of complete testing. For most of the systems, complete testing is near impossible because of the following reasons:

  • The domain of possible inputs of a program is too large to be completely used in testing a system. There are both valid inputs and invalid inputs.
    The program may have a large number of states. There may be timing constraints on the inputs, that is, an input may be valid at a certain time and invalid at other times. An input value which is valid but is not properly timed is called an inopportune input. The input domain of a system can be very large to be completely used in testing a program.
  • The design issues may be too complex to completely test. The design may have included implicit design decisions and assumptions. For example, a programmer may use a global variable or a static variable to control program execution.
  • It may not be possible to create all possible execution environments of the system. This becomes more significant when the behaviour of the software system depends on the real, outside world, such as weather, temperature, altitude, pressure, and so on.

[From book – Software testing and quality assurance: theory and practice By Kshirasagar Naik, Priyadarshi Tripathy]

Must Read: Testing Limitations
The Impossibility of Complete Testing by Dr. Cem Kaner

Testing Limitations

.. Continuing the Beginners Guide to Software Testing series

Testing Limitations

  • You cannot test a program completely
  • We can only test against system requirements

– May not detect errors in the requirements.
– Incomplete or ambiguous requirements may lead to inadequate or incorrect testing.

  • Exhaustive (total) testing is impossible in present scenario.
  • Time and budget constraints normally require very careful planning of the testing effort.
  • Compromise between thoroughness and budget.
  • Test results are used to make business decisions for release dates.
  • Even if you do find the last bug, you’ll never know it
  • You will run out of time before you run out of test cases
  • You cannot test every path
  • You cannot test every valid input
  • You cannot test every invalid input

Must ReadThe Impossibility of Complete Testing by Dr. Cem Kaner

Practical interview questions on Software Testing – Part 1

.. Continuing the Beginners Guide to Software Testing series

1. On which basis we give priority and severity for a bug and give one example for high priority and low severity and high severity and low priority?
Always the priority is given by team leader or Business Analyst. Severity is given by the reporter of bug. For example, High severity: hardware bugs application crash. Low severity: User interface bugs. High priority: Error message is not coming on time, calculation bugs etc. Low priority: Wrong alignment, etc
2. What do you mean by reproducing the bug? If the bug was not reproducible, what is the next step?
If you find a defect, for example click the button and the corresponding action didn’t happen, it is a bug. If the developer is unable to find this behaviour he will ask us to reproduce the bug. In another scenario, if the client complaints a defect in the production we will have to reproduce it in test environment.
If the bug was not reproducible by developer, then bug is assigned back to reporter or goto meeting or informal meeting (like walkthrough) is arranged in order to reproduce the bug. Sometimes the bugs are inconsistent, so that that case we can mark the bugs as inconsistent and temporarily close the bug with status working fine now.
3. What is the responsibility of a tester when a bug which may arrive at the time of testing. Explain?
First check the status of the bug, then check whether the bug is valid or not then forward the same bug to the team leader and then after confirmation forward it to the concern developer.
If we cannot reproduce it, it is not reproducible in which case we will do further testing around it and if we cannot see it we will close it, and just hope it would never come back ever again.
4. How can we design the test cases from requirements? Do the requirements, represent exact functionality of AUT?
Ofcourse, requirements should represents exact functionality of AUT.
First of all you have to analyze the requirements very thoroughly in terms of functionality. Then we have to think about suitable test case design technique [Black Box design techniques like Specification based test cases, functional test cases, Equivalence Class Partitioning (ECP), Boundary Valve Analysis (BVA), Error guessing and Cause Effect Graphing] for writing the test cases.
By these concepts you should design a test case, which should have the capability of finding the absence of defects.
Read: Art of Test case writing
5. How to launch the test cases in Quality Centre (Test Director) and where it is saved?You create the test cases in the test plan tab and link them to the requirements in the requirement tab. Once the test cases are ready we change the status to ready and go to the “Test Lab” Tab and create a test set and add the test cases to the test set and you can run from there.
For automation, in test plan, create a new automated test and launch the tool and create the script and save it and you can run from the test lab the same way as you did for the manual test cases.
The test cases are sorted in test plan tab or more precisely in the test director, lets say quality centers database. test director is now referred to as quality center.
6. How is traceability of bug follow?
The traceability of bug can be followed in so many ways.
1. Mapping the functional requirement scenarios(FS Doc) – test cases (ID) – Failed test cases(Bugs)
2. Mapping between requirements(RS Doc) – Test case (ID) – Failed test cases.
3. mapping between test plan (TP Doc) – test case (ID) – failed test cases.
4. Mapping between business requirements (BR Doc) – test cases (ID) – Failed test cases.
5. Mapping between high level design(Design Doc) – test cases (ID) – Failed test cases.
Usually the traceability matrix is mapping between the requirements, client requirements, function specification, test plan and test cases.
7. What is the difference between use case, test case, test plan?
Use Case: It is prepared by Business analyst in the Functional Requirement Specification(FRS), which are nothing but a steps which are given by the customer.
Test cases: It is prepared by test engineer based on the use cases from FRS to check the functionality of an application thoroughly
Test Plan: Team lead prepares test plan, in it he represents the scope of the test, what to test and what not to test, scheduling, what to test using automation etc.
Related Topics:
Mercury Quality Center Interview Questions

Descriptive Programming in QTP

Descriptive Programming:

When we start recoding on any application with QTP, QTP learns the object by adding some of its properties in Object Repository. QTP uses default Object Identification properties: mandatory and assistive to learn objects. For more information on how QTP learn objects, read this article. and QTP Object Identification tutorial.
Whenever QTP records any action on any object of an application, it adds some description on how to recognize that object to a repository of objects called object repository. QTP cannot take action on an object until unless its object description is in the Object Repository.

But descriptive programming provides a way to perform action on objects which are not in Object repository.

Download the Descriptive Programming Tutorials for QTP.
Document 1: Download – Basics of Descriptive Programming in QTP. [Note – This is writtern by Tarun Lalwani using QTP 8.2. It is atill applicable to all QTP versions.. A must read]

Document 2: Converting OR (Object Repository) Based scripts to Descriptive Programming
Document 3: Descriptive Programming Dummy Properties
Document 4: General issues people face while using Descriptive Programming (DP) in QTP.

Author – Tarun Lalwani (knowledgeinbox.com)

Related posts Book Review QuickTest Professional Unplugged.

QTP: Object Repository, Descriptive Programming and Beyond

This excellent and self explained presentation is prepared by Prepared by: Igor Gershovich.

  • This presentation explains the following:
  • Object Repository vs. Descriptive Programming –what to use?
  • OR Pros and Cons
  • DP Pros and Cons
  • QTP Scripting Using Object Repository
  • QTP Scripting Using Descriptive Programming
  • Descriptive programming – when and why?
  • Different ways to work with objects
  • ChildObjects method – using Collection Object
  • Regular Expressions in Object Repository
  • TO, RO and .Object methods in QTP
  • Run-Time “Native” Object Properties/Methods  from AUT
  • Object Smart Identification

Download this document – QTP: Object Repository, Descriptive Programming and Beyond