Unit I ST - Final
Unit I ST - Final
DEPARTMENT OF IT
(Accredited to National Board of Accreditation)
Poor quality software that can cause loss of life or property is no longer
acceptable to society. Failures can result in catastrophic losses. Conditions demand
software development staff with interest and training in the areas of software
products and process quality.
Highly qualified staff ensures that software products are built on time, within
budget and are of the highest quality with respect to attributes such as reliability,
correctness, usability and ability to meet all user requirements.
In response to the demand for high quality software, and the need for well
educated software professionals, there is a movement to change the way software is
developed and maintained. The profession of software engineering is slowly
emerging as a formal engineering discipline.
A test specialist is one whose education is based on the principles, practices and
processes that constitute the software engineering discipline, and whose specific
focus is on one area of that discipline – software testing.
A test specialist who is trained as an engineer should have knowledge of test related
principles, processes, measurements, standards, plans, tools and methods, and
should learn how to apply them to the testing tasks to be performed.
TESTING AS A PROCESS:
Process has been described as a series of phases, procedures, and steps that result
in the production of a software product. Embedded within this are several processes and
one such process is testing.
Testing itself consists of two processes. They are Verification and Validation.
Verification Validation
1. Verification addresses the concern: "Are 1. Validation addresses the concern: "Are
you building it right?" you building the right thing?"
Verification is a static practice of verifying Validation is a dynamic mechanism of
documents, design, code and program. validating and testing the actual product.
2. It does not involve executing the code. 2. It always involves executing the code.
3. It is human based checking of 3. It is computer based execution of
documents and files. program.
4. Verification uses methods like 4. Validation uses methods like black box
inspections, reviews, walkthroughs, and (functional) testing, gray box testing, and
III/VI SEM 4
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Definitions of Testing:
1. Testing is generally described as a process as a group of procedures carried
and establishing that the software has attained a specified degree of quality
that reveals defects, and the other one to evaluate quality attributes of the
Debugging process begins after testing has been carried out and the tester has
notedthat the software is not behaving as specified.
Economic aspects are related to the reality that resources and time
areavailable to the testing group on a limited basis
definedand documented. Testing must be planned, testers should be trained, the process
should have associated quantifiable goals that can be measured and monitored.
TMM is based on the Capability Maturity Model (CMM), and it was first
developed by the Illinois Institute of Technology.
III/VI SEM 6
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 7
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Level 1: Initial Software should run At this level, no process areas are identified
successfully An objective of testing is to ensure that
software is working fine
This level lacks resources, tools, and trained
staff
No Quality Assurance checks before software
delivery
Level 2: Defined Develop testing and This level distinguish testing from debugging &
debugging goals and they are considered distinct activities
policies Testing phase comes after coding
A primary goal of testing is to show software
meets specification
Basic testing methods and techniques are in
place
Level 3: Integrated Integration of testing into Testing gets integrated into an entire life cycle
the software lifecycle Based on requirements test objectives are
defined
Test organization exists
Testing recognized as a professional activity
III/VI SEM 8
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
CMM or Capability Maturity Model is for TMM or Test Maturity Model describes the
judging the maturity of the software process of testing and is related to monitoring the
processes of an organization quality of software testing model
TESTING AXIOMS
Axioms: “rules of the road” or the “facts of life” for software testing and software
III/VI SEM 9
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
development.
1. It’sImpossibletoTestaProgramCompletely
2. Software Testing Is a Risk-BasedExercise
3. TestingCan’tShowThatBugsDon’tExist
4. The More Bugs You Find, the MoreBugs There Are
5. The PesticideParadox
6. Not All the Bugs You Find Will BeFixed
7. WhenaBug’saBugIsDifficulttoSay
8. Product Specifications Are NeverFinal
9. SoftwareTestersAren’ttheMostPopularMembersofaProjectTeam
10. Software Testing Is a Disciplined TechnicalProfession
possible tests into a manageable set, and how to make wise risk-based decisions on
what’s important to test and what’s not.
Above graph shows the relationship between the amount of testing performed and the
number of bugs found. If you attempt to test everything, the costs go up dramatically
and the number of missed bugs declines to the point that it’s no longer cost effective to
continue.
If you cut the testing short or make poor decisions of what to test, the costs are low but
you’ll miss a lot of bugs. The goal is to hit that optimal amount of testing so that you
don’t test too much or too little.
House2 :
Findings :- no evidence of bugs. no signs of an infestation.
Maybe you find a few dead bugs or old nests but you see nothing that tells you that live
bugs exist.
Conclusion : your search you didn’t find any live bugs. Unless you completely
dismantled the house down to the foundation, you can’t be sure that you didn’t simply
just miss them.
Software testing works exactly as the exterminator does. It can show that bugs exist,
but it can’t show that bugs don’t exist. You can perform your tests, find and report
bugs, but at no point can you guarantee that there are no longer any bugs to find.
4. The More Bugs You Find, the More Bugs There Are
Reasons
III/VI SEM 11
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Programmers have bad days. Like all of us, programmers can have off days. Code
written one day may be perfect; code written another may be sloppy.
Programmers often make the same mistake. Everyone has habits. A programmer
who is prone to a certain error will often repeat it.
Some bugs are really just the tip of the iceberg. Very often the software’s design
or architecture has a fundamental problem. A tester will find several bugs that at
first may seem unrelated but eventually are discovered to have one primary
serious cause.
III/VI SEM 12
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
The software doesn’t do something that the product specification says it should
do.
The software does something that the product specification says it shouldn’t do.
The software does something that the product specification doesn’t mention.
The software doesn’t do something that the product specification doesn’t mention
but should.
The software is difficult to understand, hard to use, slow, or—in the software
tester’s eyes—will be viewed by the end user as just plain not right.
TESTING FUNDAMENTALS:
Basic Definitions:
1. Error:
An Error is a mistake, misconception, or misunderstanding on the part ofsoftware
developers.
2. Faults:
A fault(Defect) is introduced into the software as the result of an error. It is an
anomaly in the software that may cause it to behave incorrectly, and not according to its
specification. Faults or defects are sometimes called as “bugs”.
III/VI SEM 13
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
3. Failures:
A failure is the inability of a software or component to perform its required functions
within specified performance requirements.A Fault in the code does not always produce
a failure. In fact, faulty software may operate over a long period of time without
exhibiting any incorrect behavior. When the proper conditions occur the fault will
manifest itself as a failure. The conditions are:
1. The input to the software must cause the faulty statements to be executed.
2. The faulty statements must produce different results than the correct statements.
3. The incorrect internal state must propagate to the output, so that the result of the
fault is observable
4. Test Cases:
The tester has to select a set of input data and then execute the software with the input
data under a particular set of conditions to detect defects. The tester has to know the
proper output for the given input in order to check whether the software has passed the
test or not.
A test case is a test related item which contains the following information:-
A set of test inputs :-These are data items received from an external sourceby
the code under test. The external source can be hardware, software or human.
Execution Condition:-These are conditions required for running the test,
for example , a certain state of database, or a configuration of hardware devices.
Expected Outputs:-These are the specified results to be produced by thecode
under test
5. Test :
A test is a group of related test cases, or a group of related test cases and test
procedures (steps needed to carry out a test)
A group of related tests is sometimes referred to as a test set. A group of related tests
that are associated with the database, and are usually run together is sometimes referred
to as test suite.
6. Test Oracle:
A test oracle is a document, or piece of software that allows testers to
determine whether a test has been passed or failed.
A program, or a document that produces or specifies the expected outcome ofa test, can
serve as an oracle. Example include a specification, design documents, set of
requirements.Other sources are regression test suites. The suite usually contains
components with correct results for previous versions of software.
7. Test Bed:
A test bed is an environment that contains all the hardware and software
needed to test a software components or a software system.
III/VI SEM 14
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
8. Software Quality :
Two concise definition for quality are found in the IEEE standards Glossary
of SoftwareEngg Terminology
a. Quality relates to the degree to which a system, system component, or process
meets specified requirements
9. Metrics:
A metrics is a quantitative measure of the degree to which a system, system
component or process possesses a given attribute. There are product and process
metrics. A very commonly used example software products metrics is software size,
usually measured in Lines Of Code (LOC)
i. Correctness :- the degree to which the system performs its intended function
ii. Reliability :- the degree to which the software is expected to perform its
requiredfunction under stated conditions for a stated period of time
iii. Usability :-related to the degree of effort needed to learn , operate, prepare
input,and interpret output of the software.
vii. Interoperability: - the effort needed to link or couple one system to another.
a) The amount of effort needed to test the software to ensure it performs according
III/VI SEM 15
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
b) The ability of the software to reveal defects under testing conditions (some s/w is
designed in such a way that defects are well hidden during ordinary testing
conditions)
The Software Quality Assurance group (SQA) is a team of people with the necessary
training and skills to ensure that all necessary actions are taken during the development
process so that the resulting software conforms to established technical requirements.
They work with project managers and testers to develop quality-related policies and
quality assurance plans for each project.
12.Reviews:-
Review are types of static testing techniques that can be used to evaluate the quality
of the software artifacts such as requirement document , a test plan, a design
document ,a code component. Reviews are also a tool that can be applied to revealing
defects in these types of documents.
Definition:
A review is a group meeting whose purpose is to evaluate a software
artifact or a set of software artifacts.
Principles play an important role in all engineering disciplines and are usually
introduced as a part of an educational background in each branch of Engineering.
Testing Principles are important to test specialists/ Engineers because they provide the
foundation for developing testing knowledge and acquiring skills.
They also provide guidance for defining testing activities as performed in the practice of
a test specialist.
III/VI SEM 16
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Principle 2: When the test objectives is to detect defects, then a good test case
is onethat has a high probability of revealing a yet-undetected defect(s).
Principle 4:- A test case must contain the expected output or result.
III/VI SEM 17
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Principle 5:- Test case should be developed for both valid and invalid input
conditions.
III/VI SEM 19
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 20
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 21
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
ORIGINS OF DEFECTS
ORIGINS OF DEFECTS
1. Education: The software engineer did not have the proper educational background
toprepare the software artifacts. They did not understand how to do something. For
example, a software engineer who did not understand the precedence order of operators
III/VI SEM 22
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
in a particular programming language could inject a defect in an equation that uses the
operators for calculation.
4. Transcription:- The software engineer knows what to do, but makes a mistake
indoing it. A simple example is a variable name being misspelled when entering the
code.
5. Process:- The process used by the software engineer misdirected the action.
Forexample, a development process that did not allow sufficient time for a detailed
specification to be developed and reviewed could lead to specification defects.
A successful test is a one that reveals the presence of defect. A tester role is
compared with the role of a doctor. A doctor who is in the process of constructing a
diagnosis for an ill patient, develops hypotheses about possible illness using her
knowledge of possible diseases, and the patients symptoms. Tests are made in order to
make the correct diagnosis. A successful text will reveal the problem and the doctor can
begin the treatment. Completing the analogy of doctor and ill patient, one could view
defective software as the ill patient. Testers as doctors need to have knowledge about
possible defects (illness) in order tom develop defect hypotheses. They use the
hypotheses to:-
Very useful concept related to defects, testing, and diagnosis is that of the fault
model. A fault (defect) model can be described as a link between the error made (eg., a
missing requirement, a misunderstood design elements, a typographical error) and the
fault/ defect in the software.
Example of fault model a software engineer might have in memory is “an incorrect
value for a variable was observed because the precedence order for the arithmetic
operators used to calculate its value was incorrect” this could be called as “incorrect
operator precedence operator”.
III/VI SEM 23
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
DEFECT CLASSES:-
III/VI SEM 24
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
The beginning of software life cycle is critical for ensuring high quality in the
software being developed. Defects injects in early phases can persist and be very difficult
to remove in later phases.
Since many requirements are written using natural language representation, there are
very often occurrences of ambiguous, contradictory, unclear, redundant, and imprecise
requirements.
The overall description of what the product does, and how it should behave
(Input/Output), is incorrect, ambiguous, and /or incomplete.
2.Feature Defects
These defects are due to incorrect description of how the features should interact. For
ex:- suppose one feature of a software system supports adding a new customer to a
customer database. This feature interacts with another feature that categorizes the new
customer. Classification feature impacts on where the storage algorithm places the new
customer in the database, and also affects another feature that periodically support
sending advertising information to customers in a specific category.
These are defects that occur in the description of how the target software is to interface
with external software, hardware and users.
For detecting many functional description defects, black box testing techniques, which
are based on functional specification of the software, offer the best approach. Black Box
testing techniques such as equivalence class partitioning, boundary value analysis, state
transition testing, and cause and effect graphing are useful for detecting functional type
of defects.
III/VI SEM 25
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
BlackBox based tests can be planned at the unit, integration, system and acceptance
levels to detect requirements/specification defects.
DESIGN DEFECTS:-
These occur when the processing steps in the algorithm as described by the pseudo code
are incorrect. Eg:- the pseudo code may contain a calculation that is incorrectly
specified, or the processing steps in the algorithm written in pseudo code language may
not be in the correct order.
Control defect occur when logic flow in the pseudo code is not correct. For example,
branching to soon, branching to late, or use of an incorrect branching, condition. Other
examples in this subclasses are unreachable pseudo code elements, improper nesting,
improper procedure or function calls. Logic defects usually relate to incorrect use of
logic operators.
3. Data Defects:-
These are associated with incorrect design of data structures. For example a record may
be lacking a field, an incorrect type is assigned to a variable or field in a record, an array
may not have the proper number of elements assigned, or storage space may be
allocated incorrectly.
These are defects derived from, for example, using incorrect, and/or inconsistent
parameter type, an incorrect number of parameters, or an incorrect ordering of
parameters
The defects in this category include incorrect, missing, and/or unclear design element.
For example, the design may not properly describe the correct functionality of a module.
III/VI SEM 26
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
These are derived from incorrect design description for interfaces with COTS
components, external software systems, databases and hardware devices(eg:-I/O
devices). Other example are user interface description defects where there are missing
or improper commands, improper sequence of commands, lack of proper message,
and/or lack of feedback message for the users.
CODING DEFECTS:-
Coding Defects are derived from errors in implementing the code. Coding defects
classes are closely related to design classes especially if pseudo code has been used for
detailed design. Some coding defects come from a failure to understand programming
language constructs, and miscommunication with the designer.
Adding levels of programming detail to design , code related algorithmic and processing
defect would now include unchecked overflow and underflow conditions, comparing
inappropriate data types, converting one data type to another, in correct ordering of
arithmetic operators, misuse or omission of parenthesis, precision loss and incorrect use
of signs.
On the coding level these would include incorrect expression of case statements,
incorrect iteration of loops and missing paths
3. Typographical Defects:-
These are principally syntax errors, for example incorrect spelling of variable name, that
are usually detected by compiler, self reviews, or peer reviews
4. Initialization Defects:-
These occur when initialization statements are omitted or are incorrect. This may occur
because of misunderstanding or lack of communication between programmers, and /or
programmers and designers, carelessness, or misunderstanding of programming
environment.
There are certain reasonable operational sequences that data should flow through. For
example a variable should be initialized, before it is used in a calculation or in
acondition. It should not be initialized twice before there is an intermediate use. A
III/VI SEM 27
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
6. Data Defects :-
These are indicated by incorrect implementation of data structures. For example, the
programmer may omit a filed in a record, an incorrect type or access is assigned to a file,
an array may not be allocated the proper number of elements.
As in the case of module design elements, interface defects in the code may be due to using
incorrect or inconsistent parameter types, an incorrect number of parameters, or
improper ordering of the parameters, improper design, programmer may implement an
incorrect sequence of calls or calls to non existent modules
These defects arise from problems related to system calls, links to databases, input/output
sequences, memory usage, resource usage, interrupts and exception handling, data
exchange with hardware, protocols formats, interface with build files, and timing
sequences
TESTING DEFECTS:
Defects are not confined to code and its related artifacts. Test plans, test cases,
test harnesses, and test procedures can also contain defects. Defects in test plans are
best detected using review techniques.
In order to test software, especially at the unit and integration levels, auxiliary code
must be developed. This is called the test harness or scaffolding code. Test harness code
should be carefully designed, implements and tested since it is a work product and much
of this code can be reused when the new release of the software are developed.
These would encompass incorrect, incomplete, missing, inappropriate test cases, and
test procedures. These defects are again best detected in test plan reviews. Sometimes,
Defects are revealed during the testing process itself by means of a careful analysis of
test conditions and test results. Repairs will then have to be made.
III/VI SEM 28
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
The following example illustrates some instance of the defect classes. A simple
specification, a detailed design description and the resulting code are shown and defects
in each are described. These defects could be injected via one or more defect sources.
The fig 1.6 show the sample informal specification for a simple program that calculates
the total monetary value of a set of coins. The program could be a component of an
incentive cash register system to support retail store clerks. This simple example shows
requirements/ specifications defects, functional descriptions defects and interface
description defects.
The number _of_coins cannot be negative and the values in dollars and cents cannot be
negative in the real world domain .
Formally stated set of preconditions and post conditions would be helpful, and
would address some of the problem with the specification. These are also useful for
designing black box tests.
software
component to operate properly.
In this case a useful precondition would be one that states for example ,
Number_of_coins>=0
The below figure shows the specification transformed into a design description. There
are numerous design defects, some due to the ambiguous and incomplete nature of the
specifications.
III/VI SEM 30
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
The defect in this subclass arises from an incorrect “while” loop condition(should be
less than or equal to six)
These arise from the lack of error checks for incorrect and /or invalid inputs, lack of
III/VI SEM 31
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
path where users can correct erroneous inputs, lack of a path for recovery from input
errors. The lack of an error check could be counted as functional design defects since the
design does not adequately describe the proper functionality for the program.
Data Defects:-
This defect relates to an incorrect value for one of the elements of the integer array,
coin_values, which should read 1,5,10,25,50,100
These are defects arising from the absence of input messages or prompts that
introduced the program to the user and request inputs.
The user has no way of knowing in which order the number of coins for each
denomination must be input, and when to stop inputting values.
There is absence of help message and feedback for user if he wishes to change an input
or learn the correct format and order for inputting the number of coins.
The control and logic design defects are best addressed by white box based tests,
(condition/Branch testing, loop testing)
The program below is a C like programming language. Without effectives reviews the
specification and design defects could propagate to the code. Here additional defects
have introduced in the coding phase.
III/VI SEM 32
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 33
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
These include the loop variable increment step which is out of the scope of the loop.
Note that incorrect loop condition(i<6) is carried over from design and should be
counted as a design defects
The division operator may cause problems if negative values are divided, although
this problem could be eliminated with an input check.
Data Defects:-
The error in initializing the array coin_values is carried over form design and should
be counted as design defect.
The call to the external function “scanf” is incorrect. The address of the variable must
be provided (&number_of_coins)
The control, logic and sequence, data flow defects found in this sample could be
detected by combination of white and black box testing techniques.
Black Box tests may work well to reveal the algorithmic and data defects. the code
documentation defects require a code review for detection. The external software
interface defects would probably be caught by a good complier.
Poor quality of this small program is due to defects injected during several of the life
cycle phases with probable causes ranging from lack of education, a poor process, to
oversight on the part of the designers and developers.
We must catalog defects and try to eliminate them by improving education, training,
communication and process.
III/VI SEM 34
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
As Software Engineers and Test Specialists we should follow the example of engineers in
other disciplines who realized the usefulness of defect data.
Defect monitoring should continue for each ongoing project. The distribution of defects
will change as you make changes in your processes. The defect data is useful for
testplanning, a TMM level 2 maturity goals. It helps you to select applicable testing
techniques, design and the test cases you need and allocate the amount of resources you
will need to devote to detecting and removing these defects.
This in turn will allow you to estimate testing schedules and costs. The defect data can
support debugging activities as well.
As shown in the fig.1.9, a defect repository can help to support achievements and
continuous implementation of several TMM maturity goals including controlling and
monitoring of test, software quality evaluation and control , test measurements, and test
process improvement.
COST OF DEFECTS
The cost of defects can be measured by the impact of the defects and when
we find them. Earlier the defect is found lesser is the cost of defect. For example if
error is found in the requirement specifications during requirements gathering and
analysis, then it is somewhat cheap to fix it. The correction to the requirement
specification can be done and then it can be re-issued. In the same way when defect or
error is found in the design during design review then the design can be corrected and it
can be re-issued. But if the error is not caught in the specifications and is not found till
the user acceptance then the cost to fix those errors or defects will be way too
expensive.
If the error is made and the consequent defect is detected in the requirements
phase then it is relatively cheap to fix it.
Similarly if a requirement specification error is made and the consequent defect
is found in the design phase then the design can be corrected and reissued with
relatively little expense.
The same applies for construction phase. If however, a defect is introduced in
the requirement specification and it is not detected until acceptance testing or even once
the system has been implemented then it will be much more expensive to fix. This is
because rework will be needed in the specification and design before changes can be
made in construction; because one defect in the requirements may well propagate into
several places in the design and code; and because all the testing work done-to that
point will need to be repeated in order to reach the confidence level in the software that
we require.
It is quite often the case that defects detected at a very late stage, depending on
how serious they are, are not corrected because the cost of doing so is too expensive.
Average cost to fix a defect = (Number of people * number of days) * cost per person-day
III/VI SEM 36
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
When a customer provides you a requirement, it’s not that you start working on it
there and then (Figure 1, below). You first need to understand clearly what the customer
wants.
Once you have gone through the requirement, put down what you have
understood. Then, get your understanding confirmed from the customer. Doubts, if any,
in the requirement
specification, must be clarified at this stage. Do not procrastinate or hesitate in asking
your queries.
III/VI SEM 37
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
While working on the development of system software tools, I have seen many defects
creeping in due to misinterpretation of the requirement specification. Fixing such
defects at a later stage can prove costly. So, it is very important that you get your
understanding verified from the customer.
Peer Review
Functioning as a team is a skill. Delivering a high quality product is no responsibility of
an individual. It's the entire team who is responsible for it. If the product fails, each
team member is responsible for it.
Review is an important part of team work. Peer Review refers to participation of team
members in the development and assessment of task/activity performed by an
individual.
The artifact is then updated based on the review comments. This process is repeated till
the artifact is up to satisfaction of all the team members. Of course, in case of any
conflict it is the Project Leader who makes the final judgment.
III/VI SEM 38
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
may have ten interpretations of the specification. Discuss it out within your team, and
then pass your understanding to the customer for verification.
It is good to let someone in your team walk through you code, and do the review. All the
members must review the code changes with respect to other modules and give their
feedback in case some side-effect is suspected.
Many defects such as memory leaks, wrong passing of arguments, unreachable code,
lack of readability, high complexity and maintainability issues can be identified via
code review. Finding defects at the coding stage, and fixing them there and then, would
prove to be less expensive than finding them in the testing stage.
PART A
1. Define Software Engineering. (R) (MAY 2012)
Software Engineering is a discipline that produces error free software with in a time
and budget.
2. Define software Testing. ( R) ( DEC 2012), (May/June 2014)
Testing can be described as a process used for revealing defects in software, and for
establishing that the software has attained a specified degree of quality with respect to
selected attributes.
3. List the elements of the engineering disciplines. (R) (MAY 2012, Dec
2014)
Basic principles Standards
Processes Measurements
III/VI SEM 39
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 40
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
10. List the members of the critical groups in a testing process (R)
(Nov/Dec 2008)
Manager
III/VI SEM 41
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Developer/Tester
User/Client
11. Define Error. (R) (Nov 2011)
An error is mistake or misconception or misunderstanding on the part of a software
developer.
III/VI SEM 42
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
16.Write short notes on Test, Test Set, and Test Suite (U).
A Test is a group of related test cases, or a group of related test cases and test
procedure.
A group of related test is sometimes referred to as a test set.
A group of related tests that are associated with a database, and are usually run
together, is sometimes referred to as a Test Suite.
17. Define Test Oracle. (R) (April/May 2013 & April/May 2015) (Apr-May
2018)
Test Oracle is a document, or a piece of software that allows tester to determine
whether a test has been passed or failed.
18.Define Test Bed. (R) (April/May 2013 & April/May 2015)(Nov/Dec 2017)
A test bed is an environment that contains all the hardware and software needed to
test a software component or a software system.
19.Define Software Quality. (R)
Quality relates to the degree to which a system, system component, or process
meets specified requirements.
Quality relates to the degree to which a system, system component, or process
meets Customer or user needs, or expectations.
III/VI SEM 43
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
25. What do you mean by software defect? Write one example. (U)
(Nov/Dec 2013)
III/VI SEM 44
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 45
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
Scenario 1: The software will allow a user to make online payments using a
debit card.
Defect: The option of selecting a debit card for making payments is missing.
Scenario 2: The software will help me in avoiding spelling mistakes.
Defect: The feature for detecting the spelling error is missing.
III/VI SEM 46
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
III/VI SEM 47
PANIMALAR INSTITUTE OF TECHNOLOGY DEPT OF IT
organization
design
III/VI SEM 48