Professional Documents
Culture Documents
SWTest 1 - Introduction
SWTest 1 - Introduction
(11CS 491)
Unit I – Introduction
Importance of Software Quality, Process and Code
Quality and SDLC Process, V-Model
Ashoka M
ISE, PESIT
Lecture Agenda
1. Course Introduction
2. Consequence of poor quality
3. Methods of enhancing quality & SQA
4. SDLC process & testing activity
5. Importance of testing and not testing
6. Validation & Verification
2
Software Testing – About the course
Subject relevance
◦ So far, covered the s/w construction extensively
◦ Detailed extension of s/w engg.
Difficultiesin real-world of software
Quality as an engineering discipline
◦ Higher level
◦ Engineering Design - Production
Course Objectives
Software Testing – Course objective
At the end of the course you should be
◦ Able to apply proper testing technique
◦ Familiar with various types of testing
◦ Appreciative of difficulties and complexities in
software quality
◦ Exposed topics of software quality engineering,
Quality Assurance, Testing automation
◦ Able to plan proper quality approach in software
projects
Testing in SDLC
Activity cost distribution
Wat erfall model
0 25 50 75 100
It erative development
0 25 50 75 1 00
0 25 50 75 1 00
0 25 50 75 100
Reliability
Maintainability
Efficiency
Testability Portability
Integrity
Flexibility Re-usability
Usability Inter-operability
Quality factors
Correctness
◦ accuracy, completeness of required output, upto-
dateness, availability of the information
Reliability
◦ Low failure rate
Efficiency
◦ Resource consumption to perform software function
Integrity
◦ software system security, access rights
Usability
◦ ability to learn, perform required task
Software Quality factors
Maintainability
◦ effort to identify and fix software failures
(modularity, documentation, etc)
Flexibility
◦ degree of adaptability (to new customers, tasks,
etc)
Testability
◦ support for testing (e.g. log files, automatic
diagnostics, etc)
Software Quality factors
Portability
◦ adaptation to other environments (hardware,
software)
Reusability
◦ use of software components for other projects
Interoperability
◦ ability to interface with other
components/systems
Methods of enhancing quality
Quality of product V/s Quality of Process
Holistic approach required
Integrated with Total Quality management
Quality Standards, Certifications
◦ ISO 9001, CMMI, 6-Sigma….
One of the commonly accepted
management framework / practice is QA –
Quality Assurance.
What is quality assurance? – SQA?
According to the IEEE Software quality
assurance is:
◦ A planned and systematic pattern of all actions
necessary to provide adequate confidence that an
item or product conforms to established technical
requirements.
Analysis
Analysis Functional
FunctionalSpecs
Specs Reviews
Reviews
Architecture
Architecture&&Design
Design Design
DesignSpecs
Specs Reviews
Reviews
Development
Development Code
Code&&Executables
Executables
Implement
Implement
Test
TestCases
Cases
Testing
Testing
Deployment
Deployment Deployment
DeploymentDocs
Docs Review
Review
SQA Artifacts for a Project
Dev. Artifacts SQA Artifacts SQA Artifacts
(more)
Requirement
RequirementSpecs
Specs RS
RSReviews
Reviews
Functional
FunctionalSpecs
Specs FS
FSReviews
Reviews
Test
TestPlan
Plan
Design
DesignSpecs
Specs DS
DSReviews
Reviews
Test
TestCases
Cases
Code
Code&&Executables
Executables Bug
BugReports
Reports
More
MoreTest
TestCases
Cases
Deployment
DeploymentDocs
Docs DD
DDReviews
Reviews
SQA Responsibilities for a Project
Review of documents developed by development team.
Track the compliance with standards.
Development of QA Plan (test plan + test cases).
Implementation of test cases (Black Box or Glass Box
Testing).
Management of bug repository.
Participating in code and design reviews.
An Effective Testing Team
SQA Team should be composed of:
◦ Members with different background
◦ Members from different domains
◦ Technical gurus and user representatives
◦ Members with more analytical abilities.
Characteristics of Good SQA Engineer
Experience & Education as a programmer or analyst.
A thick skin.
Good sense of humor.
Tolerance for chaos.
Firmness.
Evidence oriented.
Logical.
Honest.
Self sufficient.
Testing in different process models
Dev Process Model Testing approach
Testing in waterfall model Usually done toward the end of
development cycle
V-model Explicitly specifies testing activities in
each phase of development cycle
Requirement
specification
Design
Coding and
unit testing
System testing
Acceptanc
e testing
Training
and delivery
Maintenance
Testing in V-model
Maintenance
Requiremen
t analysis
Acceptanc
Validate requirements e testing
Develop system acceptance test
Design
System testing
Validate design
Develop integration test
Coding Integration
testing
Initial test
activity (prototype ,
evolves over time)
Importance of Testing
Minimize defects ‘leaking’ to the next stage
Customer satisfaction
Process and engineering efficiency
◦ Un-planned expenditure
◦ Delayed defect recognition and correction is
(very) costly
Feedback to Improve development practices
Un-earth hidden contradictions in
functionality / requirements
It is an important concern in project planning
Software Errors, software faults and
software failures
Bug/defect/fault consequence of a human error
results in non-conformance to requirements
manife
sts as failure in running software
9 causes of software errors
1. Faulty requirements definition
2. Client/developer communication failures
3. Deliberate deviations from software requirements
4. Logical design errors
5. Coding errors
6. Noncompliance with documentation and coding
instructions
7. Shortcomings of the testing process
8. User interface and procedure errors
9. Documentation errors
Development process relation to
defects
Majority of defects are introduced in earlier
phases
1000x
100x
10x
Reactive Proactive
Required Required
Generic model to facilitate V & V in
any SDLC Phase
ETVX Model for Design Phase
(Entry, Task, Verification, Exit )
Exit Criteria
Entry Criteria Traceability matrix, Output
Customer approved Task ready for next phase
SRS Evolve Architecture
Create High Level Design
Create Detailed Design
Create Program Specs
Output:
Input: SRS Design docs,
Program Specs
Statements about Testing & QA
What is expected may not happen but what is
inspected will!
What is not tested will NOT work
You will not have time for testing; But you are
forced to spend time on reworking
If something can fail, it will
◦ Corollary – It fails when it can cause maximum
incovenience!
Topic Summary
Quality is an integral part of software
engineering
Poor quality has huge socio-economic
implication
A structured, scientific approach to enhance
software quality is imperative in business
Quality and it’s practice has influenced
overall development methodologies &
practices
THANKS!