Vous êtes sur la page 1sur 35

Introducing Software Development Life Cycle

and Testing
 
Objectives
In this lesson, you will learn to:
         
• Identify Software Development Life Cycle (SDLC) models
• Differentiate between quality assurance and quality control
• Define test specifications
• Explain testing life cycle
• Identify the roles and responsibilities of a software tester
• Identify the profile of a software tester

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 1 of 34


Introducing Software Development Life Cycle
and Testing
 
Software Development Life Cycle
(SDLC)
• SDLC is a disciplined and systematic approach that divides the software
development process into various phases, such as requirement, design, and
coding.
• The phase-wise software development process helps you track schedule, cost,
and quality of the software projects.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 2 of 34


Introducing Software Development Life Cycle
and Testing
 
Software Development Life Cycle
(SDLC) (Contd.)
• There are six phases of SDLC:
• Feasibility analysis
• Requirement analysis and specification phase
• Design phase
• Coding phase
• Testing phase
• Maintenance phase

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 3 of 34


Introducing Software Development Life Cycle
and Testing
 
SDLC Models
• SDLC models:
• Are a tailored form of SDLC phases.
• Provide a basis for categorizing and controlling the various activities
required to develop and maintain the software system
• The three types of SDLC models are:
• Linear model
• Iterative model
• Incremental model

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 4 of 34


Introducing Software Development Life Cycle
and Testing
 
Linear Models
• Linear models are suitable for projects where all the requirements are
identified and well understood before the design of the software begins.
• The two types of linear modals are:
• Waterfall model
• Prototyping model

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 5 of 34


Introducing Software Development Life Cycle
and Testing
 
Waterfall Model
• Waterfall model:
• Describes the software development process in a linear sequential flow.
• Defines the software development process in seven phases:
• Conception
• Initiation
• Analysis
• Design
• Construction
• Integration and testing
• Implementation and maintenance

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 6 of 34


Introducing Software Development Life Cycle
and Testing
 
Waterfall Model (Contd.)
• The following figure shows the various phases of the waterfall model:

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 7 of 34


Introducing Software Development Life Cycle
and Testing
 
Prototyping Model
• Prototyping model:
• Is a sample implementation of the system that shows limited and main
functional capabilities of the proposed system.
• Helps the customer determine how the features will function in the final
software.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 8 of 34


Introducing Software Development Life Cycle
and Testing
 
Prototyping Model (Contd.)
• The following figure shows the structure of a prototyping model:

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 9 of 34


Introducing Software Development Life Cycle
and Testing
 
Iterative Model
• Iterative model is used when the requirements for the software are likely to
evolve throughout the development process.
• The various types of iterative models are:
• Spiral model
• Win-win spiral model
• Component-based development model

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 10 of 34


Introducing Software Development Life Cycle
and Testing
 
Spiral Model
• Spiral model:
• Includes the iterative nature of the prototyping model and the linear
nature of the waterfall model.
• Is ideal for developing software that are released in various versions.
• The six phases of spiral model are:
• Customer communication
• Planning
• Risk analysis
• Engineering
• Construction and release
• Customer evaluation

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 11 of 34


Introducing Software Development Life Cycle
and Testing
 
Spiral Model (Contd.)
• The following figure shows the various phases of the spiral model:

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 12 of 34


Introducing Software Development Life Cycle
and Testing
 
Win-Win Spiral Model
• In the win-win spiral model, the development team and the customer hold
discussions and negotiate on the requirements.
• The six phases of win-win spiral model are:
• Identify requirements
• Negotiate requirements with the customer
• Establish new requirements after negotiations with the customer
• Evaluate process and product alternatives and analyze risks
• Approve the selected process and product
• Review the feedback report given by customer

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 13 of 34


Introducing Software Development Life Cycle
and Testing
 
Win-Win Spiral Model (Contd.)
• The following figure shows the win-win spiral model:

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 14 of 34


Introducing Software Development Life Cycle
and Testing
 
Component-Based Development
Model
• In a component-based development model:
• Components are reused and combined with other components in the same
or other computers in a distributed network to form an application.
• All related modules that form a component are tested to ensure that they
work together.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 15 of 34


Introducing Software Development Life Cycle
and Testing
 
Incremental Model
• In an incremental model:
• Software requirements are broken down into various functional units.
• Each functional unit is implemented in an increment and the final product
is achieved after all the functional units are implemented in the
development process.
• Each increment in an incremental model includes three phases:
• Design
• Implementation
• Analysis

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 16 of 34


Introducing Software Development Life Cycle
and Testing
 
Incremental Model (Contd.)
• The following figure shows the incremental model with various phases:

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 17 of 34


Introducing Software Development Life Cycle
and Testing
 
Fundamentals of Software Quality
Assurance
• Quality:
• Degree of excellence of a product
• Interpreted as meeting customer requirements
• Customer requirements can be:
• Explicit
• Implicit
• To ensure quality in the software development process, software quality
assurance activities need to be implemented in each phase of the software
development life cycle.
• For implementing software quality assurance, you need to have a well-defined
quality system.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 18 of 34


Introducing Software Development Life Cycle
and Testing
 
Fundamentals of Software Quality
Assurance (Contd.)
• Quality System:
• Set of guidelines that describe the organizational structure,
responsibilities, procedures, processes, standards and formats for
implementing quality assurance.
• Used to achieve quality objectives.
• Quality Objectives:
• Development products must conform to the specified requirements
• Appropriate processes must be followed in the development process

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 19 of 34


Introducing Software Development Life Cycle
and Testing
 
Introducing Software Quality
Assurance
• Software Quality Assurance (SQA) is a planned and systematic approach to
monitor and improve the software development process.
• SQA processes:
• Evaluate the adherence of a software product to software product
standards.
• Define the procedures to be used for software development.
• Ensure the existence and adequacy of standards and procedures for
developing software.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 20 of 34


Introducing Software Development Life Cycle
and Testing
 
Software Quality Assurance Activities
• SQA activities can be broken down into the following tasks:
• Application of technical methods
• Conducting Formal Technical Reviews (FTRs)
• Enforcement of standards
• Process monitoring
• Product evaluation
• Control of change
• Measurement
• SQA audits
• Record keeping and reporting

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 21 of 34


Introducing Software Development Life Cycle
and Testing
 
SQA Activities in Various SDLC Phases
• SQA activities in Software Conception and Initialization phase:
• Reviewing the software project plan
• Ensuring that the processes, procedures, and standards identified in the
plan are appropriate, clear, specific, and auditable

• SQA activities in Software Analysis phase:


• Reviewing the requirements document
• Ensuring that the software requirements are complete, testable, and
properly expressed as functional, performance, and interface requirements

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 22 of 34


Introducing Software Development Life Cycle
and Testing
 
SQA Activities in Various SDLC Phases
(Contd.)
•SQA activities in the Software Design phase, involve assuring the following:
• The design adheres to the approved design standards as designated in the
management plan
• All software requirements are mapped to the software components
• The interface control documents agree with the standard, in form and content
• All action items are resolved according to the review finding of the high level
design (HLD) review documentation
• The approved design is placed under configuration management
• The development team follows approved design standards
• The allocated modules are included in the detailed design
• The results of design inspections are included in the design
• All action items are resolved according to the review findings of the Low Level
Design (LLD) review documentation

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 23 of 34


Introducing Software Development Life Cycle
and Testing
 
SQA Activities in Various SDLC Phases
(Contd.)
• SQA activities in the Software Construction phase involve assuring the following:
• Audit of results of coding and design activities including the schedule contained
in the software development plan
• Audit of configuration management activities and the software development
library
• Audit of deliverable items
• Audit of nonconformance reporting and corrective action system
• Formal Technical Review of code

•SQA activities in the Software Testing phase:


• Monitoring the testing process for conformance to standards
• Reviewing test documentation for completeness and adherence to standards
• Reviewing the Test Plan
©NIIT Planning and Designing Software Tests Lesson 1 / Slide 24 of 34
Introducing Software Development Life Cycle
and Testing
 
Fundamentals of Software Testing
• Types of errors:
• Leakage Errors
• New Errors
• Compatibility Errors
• Testing is the process of executing a program with the intent of finding errors and
to verify that it satisfies specified requirements.
• Testing is done for the following reasons:
• To detect errors in a software product
• To verify that a software product conforms to its requirements
• To establish confidence that a program or system does what it is supposed to
do
• To evaluate an attribute or capability of a software product and determining
that it meets its required results
• Testing can show the presence of defects in software, but cannot guarantee their
absence.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 25 of 34


Introducing Software Development Life Cycle
and Testing
 
Defining Test Specifications
• Test specifications define the scope of the testing activity.

• Test specifications include the following elements:


• Test objectives
• Testing approaches
• Pass/Fail criteria
• Entrance/Exit criteria

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 26 of 34


Introducing Software Development Life Cycle
and Testing
 
Testing Life Cycle
• The various phases in the testing life cycle are shown in the following figure:
Risk Analysis

Planning Process

Test Design

Performing Tests

Defect Tracking and


Management

Quantitative
Measurement

Test Reporting

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 27 of 34


Introducing Software Development Life Cycle
and Testing
 
Roles and Responsibilities of a
Software Tester
• Developing test cases and procedures
• Creating test data
• Reviewing analysis and design artifacts
• Executing tests
• Using automated tools for regression testing
• Preparing test documentation
• Tracking defects
• Reporting test results

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 28 of 34


Introducing Software Development Life Cycle
and Testing
 
Key Performance Areas of a Software
Tester
• Defect detection efficiency
• Schedule slippage in Test case design and test execution
• Productivity (total number of test cases designed or executed, depending on
the nature of project)
• Number of weighted defects in user acceptance testing
• Initiatives taken in:
• Self development
• Developing tools
• Certifications
• Tools learned

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 29 of 34


Introducing Software Development Life Cycle
and Testing
 
Profile of a Software Tester
• A software tester must possess two types of skills:
• Technical skills
• Behavioral skills
• Technical skills required in a software tester:
• Knowledge of software development, operation, and maintenance process
• Knowledge of the application
• Knowledge of tools that aid in software development
• Knowledge of project management
• Knowledge of the testing process
• Knowledge of test process documentation
• Behavioral skills required in a software tester:
• Sensitivity to little things
• Tolerance for chaos
• Organized approach

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 30 of 34


Introducing Software Development Life Cycle
and Testing
 
Summary
In this lesson, you learned that:

• SDLC is a disciplined and systematic approach towards the development of


software.
• SDLC divides the software development process into six phases:
• Feasibility analysis
• Requirement analysis and specification
• Design
• Coding
• Testing
• Maintenance
• SDLC models are a tailored form of SDLC phases. They provide a basis for
categorizing and controlling the various activities required to develop and
maintain a software system.
• There are three types of SDLC models: linear, iterative, and incremental.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 31 of 34


Introducing Software Development Life Cycle
and Testing
 
Summary (Contd.)
• Linear models divide the process of software development into linear phases,
such as feasibility study, requirements analysis, and design. These models
are suitable for the projects where all the requirements are identified and
well understood before the design of the software begins. The two types of
linear model are waterfall and prototyping.
• Iterative models are used when requirements for the software system are
likely to evolve throughout the development process. The three types of
iterative model are spiral, win-win spiral, and component-based development
model.
• Incremental models develop the software product in multiple incremental
steps. In this model, minimal basic features of the software are implemented
in the first increment.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 32 of 34


Introducing Software Development Life Cycle
and Testing
 
Summary (Contd.)
• A product is called a quality product if it meets its specified requirements.
• The quality of the process used to develop a system also affects the quality
of the software product.
• The quality policy specifies the overall intentions and direction of an
organization with respect to quality.
• Quality management is that aspect of the overall management function that
establishes and implements the quality policy.
• A set of guidelines that describe the organizational structure, responsibilities,
procedures, processes, and resources for implementing quality management
is called a Quality System.
• To ensure that the set of guidelines specified in the Quality System are being
followed, you need to implement software quality assurance activities in each
phase of the system development life cycle.
• Software Quality Assurance (SQA) is a planned and systematic approach to
monitor and improve the software development process.

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 33 of 34


Introducing Software Development Life Cycle
and Testing
 
Summary (Contd.)
• The project SQA plan specifies the assurance procedures that the
development team needs to apply during each phase of the SDLC.
• Quality methods can be segmented into two categories: preventive methods
and detective methods.
• Quality Assurance is oriented to prevention of defects in development
products, whereas Quality Control is oriented to detection of defects in
development products.
• Testing is a Quality Control activity that executes a program with the intent
of finding errors.
• The testing life cycle consists of the following phases:
• Risk Analysis
• Planning Process
• Test Design
• Performing Tests
• Defect Tracking and Management
©NIIT Planning and Designing Software Tests Lesson 1 / Slide 34 of 34
Introducing Software Development Life Cycle
and Testing
 
Summary (Contd.)
• Quantitative Measurement
• Test Reporting
• The role of a software tester is to evaluate business risks in context of the
software being developed and to report those results to the management.
• The skills that a software tester must possess can be categorized as:
• Technical skills
• Behavioral skills

©NIIT Planning and Designing Software Tests Lesson 1 / Slide 35 of 34

Vous aimerez peut-être aussi