Limited Business Circulation
Testing Essentials Unit 1 `
QSIT- Quality Solutions for Information Technology Pvt. Ltd., A 706 & 707, Mittal Tower, BANGALORE- 560 001,INDIA URL: www.qsitglobal.com PH: +91 80 41134334 Fax: +91 80 25597445
Software Testing Essentials
1
www.qsitglobal.com
Topic Coverage
Overview Definition and Principles of System Development Various phases of the systems development lifecycle (SDLC) Cross life cycle activities that overlap SDLC Different Models of SDLC – –
Basic Models Extended Models
Software Testing Essentials
QSIT Copyright
2
www.qsitglobal.com
Page:1
Limited Business Circulation
System Development Process A
system development process is a set of activities, methods, best
practices, deliverables and automated tools that stakeholders use to develop and maintain information systems and software.
This process is called the System Development Life Cycle (SDLC) because every system is ‘born’ and eventually ‘dies’.
Software Testing Essentials
3
www.qsitglobal.com
Why Design Systems?
Information is a valuable resource that needs to be managed and not wasted. Systems are complex easy to miss key details – Requirement Gathering Ad Hoc methods frequently fail to meet requirements. Methodology Need to improve chance of developing a successful system. Standards Any model of a solution is better than no model. Previous data (Best practice) Companies do change, so systems change. – Enhancement
Software Testing Essentials
QSIT Copyright
4
www.qsitglobal.com
Page:2
Limited Business Circulation
Why Design System
Software Testing Essentials
5
www.qsitglobal.com
Principles of Systems Development
Get the Owners and Users Involved.
Use a Problem-Solving Approach.
Establish Phases and Activities.
Establish standards for consistent development and documentation.
Justify systems as capital investments.
Cancel project or revise scope if necessary.
Divide and conquer.
Design systems for growth and change.
Software Testing Essentials
QSIT Copyright
6
www.qsitglobal.com
Page:3
Limited Business Circulation
Software Development Life Cycle The period of time that starts when a software product is conceived and ends when the product is no longer available for use. Consists of many phases (usually 5-8). Phase is a related set of software engineering activities producing a workproduct which may act as input for next phase. Each phase provides an opportunity to understand the progress in the project.
Software Testing Essentials
7
www.qsitglobal.com
Software Development – Major Activities Three major Phases Analysis: understanding business needs Design: conceptualizing computer-system solution Implementation: construction, testing, and installation
Three additional Activities – Scope/Project Definition – Project planning (early) – Support (after implementation)
Software Testing Essentials
QSIT Copyright
8
www.qsitglobal.com
Page:4
Limited Business Circulation
Scope/Project Definition Phase Serves as a bridge between Marketing Team and the Delivery Team To
communicate the business acquisition with inputs
To
bring in organizational commitment for the project
Identifying Setting
the core business need
and managing Project expectations
To
develop and link project objectives in measurable and quantifiable deliverables
To
obtain Management approval for the Project
Software Testing Essentials
9
www.qsitglobal.com
Scope/Project Definition Phase
To assess the readiness of the teams to carry out the Project
To analyze the feasibility of the Project related work as well as technology.
To form the Peer Team for the Project.
To provide adequate inputs to begin the Project planning and execution Process.
Software Testing Essentials
QSIT Copyright
10
www.qsitglobal.com
Page:5
Limited Business Circulation
Planning Phase
Confirm project feasibility
Produce project schedule
Staff the project
Launch the project
Software Testing Essentials
11
www.qsitglobal.com
Analysis Phase
Gather information
Define system requirements
Build prototypes for discovery of requirements
Prioritize requirements
Generate and evaluate alternatives
Review recommendations with management
Software Testing Essentials
QSIT Copyright
12
www.qsitglobal.com
Page:6
Limited Business Circulation
Design Phase
Design and integrate the network
Design the application architecture
Design the user interfaces
Design the system interfaces
Design and integrate the database
Prototype for design details
Design and integrate the system controls
Software Testing Essentials
13
www.qsitglobal.com
Implementation Phase
Construct software components
Verify and test
Convert data
Train users and document the system
Install the system
Software Testing Essentials
QSIT Copyright
14
www.qsitglobal.com
Page:7
Limited Business Circulation
Support Phase
Maintain the system
Enhance the system
Support the users
Software Testing Essentials
15
www.qsitglobal.com
Cross Life Cycle Activities
Cross life cycle activities are activities that overlap many or all phases of the methodology – Fact-finding – Documentation and presentation – Feasibility analysis – Process and project management
Software Testing Essentials
QSIT Copyright
16
www.qsitglobal.com
Page:8
Limited Business Circulation
Ensuring Quality Deliverables from SDLC
Process Quality Assurance – Process Audits: ISO – Process Appraisals: CMMI Product Quality Assurance – Testing – Product Audits • Configuration Management Audit – Static Reviews • Formal Technical Reviews- FTRs • In-Formal Technical Reviews- InFTRs • Inspection Defect Prevention & Management
Software Testing Essentials
17
www.qsitglobal.com
Models of SDLC A framework that describes the activities performed at each stage of a software development project.
Basic Models: – Waterfall Model – Spiral model – V Model
Extended Models – W Model – Extreme Programming – Rational Unified Process (UML)
Software Testing Essentials
QSIT Copyright
18
www.qsitglobal.com
Page:9
Limited Business Circulation
Waterfall Model
One of the first models of Software development
Each phase or activities are found in nearly all models proposed since
Software Testing Essentials
19
www.qsitglobal.com
Waterfall Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control (plan, staff, track)
Works well when quality is more important than cost or schedule
Software Testing Essentials
QSIT Copyright
20
www.qsitglobal.com
Page:10
Limited Business Circulation
Waterfall Deficiencies
All requirements must be known upfront
Deliverables created for each phase are considered frozen – inhibits flexibility
Can give a false impression of progress
Little opportunity for customer to preview the system (until it may be too late)
Software Testing Essentials
21
www.qsitglobal.com
When to use the Waterfall Model
Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new platform.
Software Testing Essentials
QSIT Copyright
22
www.qsitglobal.com
Page:11
Limited Business Circulation
V Model
A variant of the Waterfall that emphasizes the verification and validation of the product.
Testing of the product is planned in parallel with a corresponding phase of development
Software Testing Essentials
23
www.qsitglobal.com
V-Shaped Strengths
Emphasize planning for verification and validation of the product in early stages of product development
Each deliverable must be testable
Project management can track progress by milestones
Easy to use
Software Testing Essentials
QSIT Copyright
24
www.qsitglobal.com
Page:12
Limited Business Circulation
V-Shaped Weaknesses The disadvantage of the model is the coarse division into constructive work (including the implementation) on the lefthand side of the “V” and the more destructive tasks on the right-hand side. –
Here also the impression may develop that, after the implementation phase, a ready product can be delivered. A planned-in removal of defects and regression test is not given.
Software Testing Essentials
25
www.qsitglobal.com
When to use the V-Shaped Model
Excellent choice for systems requiring high reliability – hospital patient control applications
All requirements are known up-front
When it can be modified to handle changing requirements beyond analysis phase
Solution and technology are known
Software Testing Essentials
QSIT Copyright
26
www.qsitglobal.com
Page:13
Limited Business Circulation
Structured Evolutionary Prototyping Model Developers build a prototype during the requirements phase
Prototype is evaluated by end users
Users give corrective feedback
Developers further refine the prototype
When the user is satisfied, the prototype code is brought up to the standards needed for a final product.
Software Testing Essentials
27
www.qsitglobal.com
Structured Evolutionary Prototyping Strengths
Customers can “see� the system requirements as they are being gathered
Developers learn from customers
A more accurate end product
Unexpected requirements accommodated
Allows for flexible design and development
Steady, visible signs of progress produced
Interaction with the prototype stimulates awareness of additional needed functionality
Software Testing Essentials
QSIT Copyright
28
www.qsitglobal.com
Page:14
Limited Business Circulation
Structured Evolutionary Prototyping Weaknesses
Tendency to abandon structured program development for “code-and-fix” development
Bad reputation for “quick-and-dirty” methods
Overall maintainability may be overlooked
The customer may want the prototype delivered.
Process may continue forever (scope creep)
Software Testing Essentials
29
www.qsitglobal.com
Spiral Model In the spiral-model a cyclical and prototyping view of Software development was shown.
Advantages: – Tests covered Risk Analysis, Validation of Requirements and development – Test phase is divided in to Module, Integration and Acceptance. Disadvantages: – Testing follows Coding. – Test Plan should be constructed after Design Phase. – No defined activities associated with the removal of defects. Software Testing Essentials
QSIT Copyright
30
www.qsitglobal.com
Page:15
Limited Business Circulation
Spiral Model Representation
Software Testing Essentials
Spiral Model
Implement
Develop
Design
Analyze
Modified Waterfall Model
31
www.qsitglobal.com
Summary
From the view of testing, all of the models presented previously are deficient in various ways: – The test activities first start after the implementation – The connection between the various test stages and the basis for the test is not clear – The tight link between test, debug and change tasks during the test phase is not clear
Extended Models help to remove the above mentioned disadvantages
Software Testing Essentials
QSIT Copyright
32
www.qsitglobal.com
Page:16
Limited Business Circulation
Extended Model – W Model Right hand side of the W contains not only the “destructive” test activities as in the V model but also the “constructive” change activities that are carried out as a result of the discovery of faults and defects.
Software Testing Essentials
33
www.qsitglobal.com
Agile Testing
No Requirement Specification required Initially defined Test cases are used as Requirements. These are then used after the implementation to help check the (sub-) product.
Software Testing Essentials
QSIT Copyright
34
www.qsitglobal.com
Page:17
Limited Business Circulation
Extended Model – Rational Unified Process
Software Testing Essentials
Inception phase: Are defined the objectives, initial requirements and scope of the project.
Elaboration phase: The requisites are refined and completed. The architect design software solutions to the requisites (functional solution)
Construction phase: Software solution is constructed by developers.
Transition phase: The components are deployed and users are trained
35
www.qsitglobal.com
Extended Model – Rational Unified Process The RUP Disciplines are:
Business Modeling: Maps the company business which relates to the project. More used in large or complex projects.
Requirements: Collect requisites of the key users.
Analysis & Design: Design the software requisites in UML models
Implementation: Implements the software solution in software components and database components
Test: Test the constructed components
Deployment: Install components and train users in your use
Configuration & Change Management: Maintain and manage the artifacts produced by the software team
Project Management: Manage, plan and distribute activities of the team, focusing in quality, schedule, budget and risk attack.
Environment: Maintain tools configuration and environment aspects in order to the development team.
Software Testing Essentials
QSIT Copyright
36
www.qsitglobal.com
Page:18
Limited Business Circulation
End of Chapter
QUESTIONS?
Software Testing Essentials
37
www.qsitglobal.com
Testing Essentials Unit 2 QSIT- Quality Solutions for Information Technology Pvt. Ltd., A 806 & 807, Mittal Tower, BANGALORE- 560 001,INDIA URL: www.qsitglobal.com PH: +91 80 41134334 Fax: +91 80 25597445
Software Testing Essentials
QSIT Copyright
38
www.qsitglobal.com
Page:19
Limited Business Circulation
Topic Coverage
Quality Perspective
Software testing
Objectives of software testing
Role of software testing
Benefits from software testing
Preventive and corrective actions
Software Testing Essentials
39
www.qsitglobal.com
Software Product Structur e Computer Program Documentatio n
People
Software Testing Essentials
QSIT Copyright
Standards
Fit for Environment
Data Deliverable to customer and end user
Software Product
Data Procedures
Rules
Risk: A factor that could result in Future negative consequences; Express as impact and likelihood 40
www.qsitglobal.com
Page:20
Limited Business Circulation
Causes of Software Defect
Error (mistake) A human action that produces an incorrect result
Defect (bug, fault) A flaw in a component or system that can cause the component or system to fail to perform its required function
Failure Deviation of the component or system from its expected delivery service or result
Software Testing Essentials
41
www.qsitglobal.com
How does defects affect?
Errors in the specification, design and implementation of the software and system
Errors in use of the system
Environmental conditions
Intentional damage
Potential consequences of earlier errors, intentional damage, defects and failures
Software Testing Essentials
QSIT Copyright
42
www.qsitglobal.com
Page:21
Limited Business Circulation
Fundamental of Software Testing QC and QA
Quality Control: The processes and methods used to monitor work and observe whether requirements are met.
Quality Assurance: A planned and systematic pattern of actions necessary to provide adequate confidence that the product optimally fulfills customers' expectations.
Software Testing Essentials
43
www.qsitglobal.com
Corrective and Preventive Measures Addressing Defects Preventive Quality
Appraisal Quality Testing
Training Process Maturity
Metric Program
Audits & Assessments
Reviews Inspection
Process Improvement
Walkthroughs
•Data Gathering & Analysis •Fault Analysis •Root Cause Analysis
Software Testing Essentials
QSIT Copyright
44
www.qsitglobal.com
Page:22
Limited Business Circulation
Preventive Quality Training refers to the acquisition of knowledge, skills, competencies as a result of the teaching of practical skills and knowledge that relate to specific useful Competencies Metric program Metrics derive information from raw data with a view to help in Decision making. A measurement scale and the method used for measurement. [ISO 14598] Audits and Assessments An inspection/assessment activity that verifies compliance with plans, policies and procedures
Software Testing Essentials
45
www.qsitglobal.com
Preventive Quality (con td‌) Review An evaluation of a product or project status to ascertain discrepancies from Planned results and to recommend improvements. Examples include management review, informal review, technical review, inspection, and walkthrough. [After IEEE 1028]
Walk Through A step-by-step presentation by the author of a document in order to gather information and to establish a common understanding of its content. [Freedman and Weinberg, IEEE 1028]
Inspection A type of review that relies on visual examination of documents to detect defects, E.g. violations of development standards and nonconformance to higher level documentation. The most formal review technique and therefore always based on a documented procedure. [After IEEE 610, IEEE 1028]
Software Testing Essentials
QSIT Copyright
46
www.qsitglobal.com
Page:23
Limited Business Circulation
Software Testing- Definitions
Definition (1) – Process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies specified requirement(IEEE 83a)
Definition (2) – Structured process that uncovers the defects in a software product. – Destructive in nature (dismantling the wishful assumption that code is bug-free)
Definition (3) – Testing is a process of executing a program with the intent of finding errors(Myers)
Software Testing Essentials
47
www.qsitglobal.com
Testing Glossary
Manual Testing –
Refers to a corrective process to meet customer requirements without using any automation tool.
Automated testing –
It is the process of automating the manual testing activities
Software Testing Essentials
QSIT Copyright
48
www.qsitglobal.com
Page:24
Limited Business Circulation
Testing Glossary Static testing: Testing of a component or system at specification or implementation level without execution of that software, e.g. reviews or static code analysis. Dynamic testing: Testing that involves the execution of the software of a component or system.
Software Testing Essentials
49
www.qsitglobal.com
Testing Glossary Functional testing: Testing based on an analysis of the specification of the functionality of a component or system. Non-functional testing: Testing the attributes of a component or system that do not relate to functionality, e.g. reliability, efficiency, usability, maintainability and portability.
Software Testing Essentials
QSIT Copyright
50
www.qsitglobal.com
Page:25
Limited Business Circulation
Software Testing- What Does it Ensure?
Find defects in product Demonstrate difference between specifications and developed system Ensure product works with negligible risks. Establish confidence in the product Offer advise on product quality and risks Insight to improving testing process
Software Testing Essentials
51
www.qsitglobal.com
Limitations of Software Testing
Does not generalize system behavior
Does not guarantee bug free product
No substitute for good programming
Software Testing Essentials
QSIT Copyright
52
www.qsitglobal.com
Page:26
Limited Business Circulation
Role of Software Testing Primary Role
–
Verification - The process of determining whether or not the products of a given phase in the lifecycle fulfill a set of established requirements
Are we doing things right? (Process)
Are we building the system right?
Software Testing Essentials
53
www.qsitglobal.com
Role of Software Testing –
Validation - The process of evaluating a system or component, during or at the end of the development life cycle, to determine whether it satisfies specified requirements.
Are we doing the right things? (Requirements) Did we build the right system?
Software Testing Essentials
QSIT Copyright
54
www.qsitglobal.com
Page:27
Limited Business Circulation
Role of Software Testing
Secondary Role –
Build Confidence to “Ship the Product”
–
Insight into Software Process
–
Improve the Software Testing Process
Software Testing Essentials
55
www.qsitglobal.com
Some Facts…About Testing...
No substitute for good programming
It can't prevent bugs
Can only identify them
However...
When testing is used in combination with good programming, you can deliver software that is of high quality, reliability and has a very low defect rate.
Software Testing Essentials
QSIT Copyright
56
www.qsitglobal.com
Page:28
Limited Business Circulation
Aspects that hinder effective software testing
Belief that the system works Negative attitude towards effective testing Conflict between testers and developers Testing is expensive Delivery commitments
Software Testing Essentials
57
www.qsitglobal.com
Principles of Software Testing Early Testing Testing activities should start as early as possible in the software or system development life cycle and should be focused on defined objectives Defect Clustering A small number of modules contain most of the defects discovered during pre-release testing or show the most operational failures Avoid Pesticide paradox If the same tests are repeated over and over again, eventually the same set of test cases will no longer find any new bugs. To overcome this, the test cases need to be regularly reviewed and revised, and new and different tests need to be written to Testing Shows Presence of Defects Testing can show that defects are present, but cannot prove that there are no defects. Testing reduces the probability of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness
Software Testing Essentials
QSIT Copyright
58
www.qsitglobal.com
Page:29
Limited Business Circulation
Principles of Software Testing Testing is context dependent Testing is done differently in different contexts. Ex: Testing a retail web site is different from testing a embedded application for an Aerospace application Absence of Errors fallacy Finding and fixing defects does not help if the system built is unusable and does not fulfill the users’ needs and expectation Exhaustive Testing is Impossible Testing everything (all combinations of inputs and preconditions) is not feasible except for trivial cases. Instead of exhaustive testing, we use risk and priorities to focus testing efforts
Software Testing Essentials
QSIT Copyright
59
www.qsitglobal.com
Page:30