Defn: Testing Is The Process of Exercising or Evaluating A System or System
Defn: Testing Is The Process of Exercising or Evaluating A System or System
Measurements show that a defect discovered during design that costs $1 to rectify
will cost $1,000 to repair if detected in later stages. This is a tremendous cost
differential & clearly points out the advantage of early error detection.
Levels of testing
1. Unit Testing: The most ‘micro’ scale of testing; to test particular functions
or code modules. Typically done by the programmer & not by testers, as it
requires detailed knowledge of the internal program design & code.
1. Equivalence Partitioning:
this testing method divides the input domain of a program into classes of
data from which test cases can be derived.
a. Valid Input Set: Input set which when give to our program, our program
generates expected output.
b. Invalid Input Set: Input set which given to our program leads to error
handling or exception handling path.
2. Error Guessing:
This is purely based on previous experience and judgment of tester. Error
Guessing is the art of guessing where errors can be hidden.
I. Logical error tend to creep into our work when we design and implement
functions, conditions or controls that are out of the program
II. The design errors due to difference between logical flow of the program and
the actual implementation
III. Typographical errors and syntax checking
METHODS OF WHITE BOX TESTING
1. Segment coverage:
Ensure that each code statement is executed once.
2. Branch Coverage or Node Testing:
Coverage of each code branch in from all possible was.
3. Compound Condition Coverage:
For multiple condition test each condition with multiple paths and
combination of different path to reach that condition.
4. Basis Path Testing:
Each independent path in the code is taken for testing.
Short notes
TEST PLAN FORMAT
Defn : This plan contains all the details of required resources, the testing
approaches to be followed, the testing methodologies, the test cases etc.
The test plan has to be prepared during the project planning stage itself and revised
before the testing process starts.
FORMAT
TEST DATA & TEST CASE
TEST CASE
• A test case should contain particulars such as test case identifier, test case
name, objective, test conditions/setup, input data requirements, steps, and
expected results.
• process of developing test cases can help find problems in the requirements
or design of an application
TEST DATA
If you are writing test case then you need input data for any kind of test.
I. Tester may provide this input data at the time of executing the test cases or
application may pick the required input data from the predefined data
locations.
II. The test data may be any kind of input to application, any kind of file that is
loaded by the application or entries read from the database tables.
III. It may be in any format like xml test data, system test data, SQL test data.
o What is the ideal test data?
Test data can be said to be ideal if for the minimum size of data set all the
application errors get identified. The test data should not exceed cost and time
constraint for preparing test data and running tests.
1) No data: Run your test cases on blank or default data. See if proper error
messages are generated.
3) Invalid data set: Prepare invalid data set to check application behavior for
negative values, alphanumeric string inputs.
4) Illegal data format: Make one data set of illegal data format. System should
not accept data in invalid or illegal format. Also check proper error messages are
generated.
5) Boundary Condition data set: Data set containing out of range data. Identify
application boundary cases and prepare data set that will cover lower as well as
upper boundary conditions.
6) Data set for performance, load and stress testing: This data set should be
large in volume.
Documentation requirements
- prior to any code being written EX. Design docs, SRS doc, etc.
- Documentation should continue after the code has been completed EX. User
’s manuals, etc.
The two main types of documentation created are Process and Product
documents
Process Documentation
— Planning documentation
— Schedules
— Standards
— Etc.
Product Documentation
a. System Documentation
b. User Documentation
System Documentation
Examples:
— Requirements Specification
— Architectural Design
— Detailed Design
— Test Plans
User Documentation
1) End User
2) System Administrator
Document Structure
Design errors occur when , e.g. changes made to the software are
incorrect, incomplete, wrongly communicated or the change request
misunderstood.
SHORT NOTES
2) VERSION CONTROL
c. Risk planning : Draw up plans to avoid or minimise the effects of the risk;
d. Risk monitoring :Monitor the risks throughout the project;
Risk Identification
Risk analysis
— Assess probability and seriousness of each risk
Risk planning
Why we get poor quality software when the project is big and complex?
In software organizations, it is observed that when project is big & complex
software development team ends up with poor quality software which
requires maintenance to fix the problems or continuously upgrading the
system.
Following reasons can result in poor quality software.
1) Understanding of requirements – Software development team builds
software based on requirements given by customer. If customer is not clear
with the requirements or he is not able to construct or communicate his
requirements to analysts then the software developed by development team
will never satisfy the customer. On the other side, if customer is able to
communicate all the requirements but analyst is not able to understand them
or communicate them to other team members then it will end up with poor
quality software.
2) Poor scope – Customer & Analysts are unable to define the software
scope well in advance. Hence some of the requirements are unnoticed. Such
requirements will be added in maintenance phase.
3) Change management is poor – Software development team must
identify the changes suggested by user are valid or not. If they are valid,
team must study the effect of that change on working of entire software (in
terms of functionalities, in terms of data). Team must identify the effect of
changes on documentation. The changes must be reflected to documents.
Review of change must be taken.
4) Technology changes – In software industry, the technology upgrades
from time to time. If we develop a system with one technology & if the
technology is outdated after few months or years then we have to upgrade
the system for new technology.
5) Business needs changes – Today, team is working on one problem. If
after some time, another problem becomes important & management
neglects the first problem & attempts to solve second problem, the
developed solution’s quality can be questioned.
6) Deadline is unrealistic – The development schedule is following some
deadline for completion. If the deadline is unrealistic then the schedule
prepared will be too tight. Then the required quality will not be implemented
because of short time available for development.
7) Users are resistant – The new system will force some changes in
organization. The users never accept the changes easily.
8) Sponsorship is lost – The budget sanctioned by management team for
our project is diverted to some other project. In this case, development team
will face a problem of cost overrun & will not be able to develop quality
software.
9) Team lacks people with appropriate skill – The skills required for
developing the application are not present in the team, hence the required
quality cannot be implemented in the delivered product.
10) Managers avoid best practices & lessons learned – The software
development project is based on the past data & experience as well as
standard tools & techniques in software engineering. It is observed that the
project leaders never use past experience & standard tools & techniques.
Software Quality Management is concerned with ensuring that the required level of
quality is achieved in a software product.
Different Techniques are
1.Formal Technical Review (FTR)
2. Walkthroughs
3. Software Inspection
Walkthroughs
A structure walkthrough is an in - depth, technical review of some aspect of a
software system . In a walkthrough session, the material being examined is
presented by reviewee . The reviewee “walks through ”that work product, and
reviewers raise questions on issues of concern . A walkthrough is not a project
review, but is rather an in - depth examination of selected work products by
individuals who are qualified to offer expert opinions .
A walkthroughs team usually consists of reviewee and three to five reviewers .
Members of a walkthrough team may include the project leader, other members of
the project team, a representative from quality assurance group, a technical writer,
and other technical personnel who have interest in the project . Customers and
users should be included in walkthroughs. Higher level managers should not attend
walkthroughs . The goal of a Walkthrough is to discover and make note of problem
areas, problems are not resolved during the walkthrough session .
Software Inspection
Inspection in software project management, refers to peer review of any work
product by trained individuals who look for defects using a well defined process .
In an inspection, a work product is selected for review and a team is gathered for an
inspection meeting to review the work product .
The goal of the inspection is to identify defects . For example, if the team is
inspecting a software requirements specification, each defect will be text in the
document which an inspector disagrees with .
Inspection process :
The stages in the inspections process are : Planning, Overview meeting,
Preparation, Inspection meeting, Rework and Follow - up . The Preparation,
Inspection meeting and Rework stages might be iterated .
Planning : The inspection is planned by the moderator.
Overview meeting : The author describes the background of the work product .
Preparation : Each inspector examines the work product to identify possible
defects .
Inspection meeting : During this meeting the reader reads through the work
product, part by part and the inspectors point out the defects for every part .
Rework : The author makes changes to the work product according to the action
plans from the inspection meeting .
Follow - up : The changes by the author are checked to make sure everything is
correct . The process is ended by the moderator when it satisfies some predefined
exit criteria .
DIFFERENCE BETWEEN QA & QC ( LOOKS IMP TO ME)
SHORT NOTES
1.ISO CERTIFICATION FOR SOFTWARE ORG
2.SEI CMM
3.SOFTWARE QUALITY PARAMETERS
ISO CERTIFICATION FOR SOFTWARE ORG ( dekh lena its bakwass I say
leave it)
1) The ISO 9001,9002, and 9003 standards concern quality systems that are
assessed by outside auditors, and they apply to many kinds of production &
manufacturing organizations, not just software.
2) The most comprehensive is 9001, and this is the one most often used by
software development organizations. It covers documentation, design,
development, production, testing, installation, servicing, and other processes.
3) The sections of the ISO 9000 standard that deal the software are ISO 9001
and ISO 9000-3.
4) ISO 9000-3 is a guideline for applying ISO 9001 to sofware development
organizations.
5) To be ISO 9001 certified, a third-party auditor assesses an organization, and
certification is typically good for about 3 years, after which a complete
reassessment is required.
Some of the requirements in ISO 9000-3 include:
a. Develop detailed quality plans and procedures to control configuration
management, product verification & validation (testing), nonconformance
(bugs), and corrective actions (fixes).
b. Prepare & receive approval for a software for a software development plan
that includes a definition of the project, a list of the project’s objectives, a
project schedule, a product specification, a description of how the project is
organized, a discussion of risks and assumptions, and strategies for
controlling it.
c. Communicate the specifications in terms that make it easy for the customer
to understand and to validate during testing.
d. Plan, develop, document & perform software design review procedures.
e. Develop procedures that control software design changes made over the
product’s life cycle.
f. Develop and document software test plan.
SEI CMM
SEI: ‘Software Engineering Institute’ at Carnegie-Mellon University established to
help improve software development process.
CMM: ‘Capability Maturity Model’. It is an industry standard model for defining and
measuring the maturity of software company’s development process and for
providing direction on what they can do to improve their software quality. It was
developed by the SEI.
Level 1 Initial :
The software development processes at this level are ad hoc and often chaotic. The
project’s success depends on heroes & luck. There are no general practices It’s
impossible to predict the time and cost to develop the software. The test process is
just as ad hoc as the rest of the process.
Level 2 Repeatable:
Level 3 Defined : Organizational, not just project specific, thinking comes into
play at this level. Common management & engineering activities are standardized
& documented. These standards are adapted & approved for use on different
projects. Test documents & plans are reviewed & approved before testing begins.
The test group is independent from the developers. The test results are used to
determine when the software is ready.
Level 5 Optimizing : This level is called Optimizing (not ‘optimized’) because it’s
continually improving from level 4. new technologies & processes are attempted.,
the results are measured, and both incremental and revolutionary changes are
instituted to achieve even better quality levels. Just when everyone thinks the best
had been obtained, the crank is turned one more time, and the next level of
improvement is obtained.
SHORT NOTES
1)WBS
2)SOFTWARE SIZING
WBS
A complex project is made manageable by first breaking it down into individual
components in a hierarchical structure, known as the work breakdown structure, or
the WBS . Such a structure defines tasks that can be completed independently of
other tasks, facilitating resource allocation, assignment of responsibilities, and
measurement and control of the project .
Diagram : WBS
Higher levels in the structure generally are performed by groups . The lowest level
in the hierarchy often comprises activities performed by individuals.
Level of Detail :
The breaking down of a project into its component parts helps in resource allocation
and the assignment of individual responsibilities .Care should be taken to use a
proper level of detail when creating the WBS.
On the one extreme, a very high level of detail is likely to result in micro -
management .
On the other extreme, the tasks may become too large to manage effectively.
Defining tasks so that their duration is between several days and a few
months works well for most projects .
WBS's Role in Project Planning : The work breakdown structure is the foundation
of project planning . It is developed before dependencies are identified and activity
durations are estimated . The WBS can be used to identify the tasks in the CPM and
PERT project planning models .
Example
SOFTWARE SIZING
Software sizing is an important activity in software engineering that is used to
estimate the size of a software application or component in order to be able to
implement other software project management activities (such as estimating or
tracking).
Software Sizing Measures: There are only two software sizing measures widely
used today
1) Lines of Code (LOC or KLOC) and
2) Function Points (FP)
Lines of Code
• Lines of Code is a measure of the size of the system after it is built .
• It is very dependent on the technology used to build the system, the system
design, and how the programs are coded .
• The major disadvantages of LOC are that systems coded in different
languages cannot be easily compared and efficient code is penalized by
having a smaller size .
Function Points
• Function Points is a measure of delivered functionality that is relatively
independent of the technology used to develop the system .
• FP is based on sizing the system by counting external components (inputs,
outputs, external interfaces, files)
EXPLAIN DIFFERENT COCOMO MODELS USED FOR EFFORT ,TIME & COST
ESTIMATION
• Organic projects - "small" teams with "good" experience working with "less
than rigid" requirements
• Semi-detached projects - "medium" teams with mixed experience working
with a mix of rigid and less than rigid requirements
• Embedded projects - developed within a set of "tight" constraints (hardware,
software, operational, ...)
The coefficients ab, bb, cb and db are given in the following table.
Software
a b bb c b db
project
2. 1.0 2. 0.3
Organic
4 5 5 8
Semi- 3. 1.1 2. 0.3
detached 0 2 5 5
3. 1.2 2. 0.3
Embedded
6 0 5 2