Nothing Special   »   [go: up one dir, main page]

SDLC Introduction

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 33
At a glance
Powered by AI
The key takeaways are that SDLC is a process used to develop and maintain software products that aims to meet customer expectations, deliver on time and budget, and support ongoing maintenance. The main phases outlined are planning, requirements analysis, design, coding/implementation, testing, and maintenance.

The main phases of the SDLC process outlined are planning, requirements analysis, design, coding/implementation, testing, and maintenance.

The main goals of the SDLC process outlined are to meet or exceed customer expectations, deliver within time and cost estimates, work effectively within existing infrastructure, be cheap to maintain and enhance, and provide visibility and predictability.

INTRODUCTION

What is SDLC?
Is a process of formal, logical steps taken to develop and maintain a software product Goals: Meets or exceeds customer expectations Deliver within time and cost estimates Work effectively and efficiently in the current and planned IT infrastructure Cheap to maintain and cost-effective to enhance Support visibility and predictability

Why SDLC?

Software Development Life cycle(SDLC)

SDLC Generic Flowchart


Maintan anence & Support
Client Evaluation & Release
Testing and Integratio n ( Manual

Planning

Requirem ent Analysis Design


Coding & Impleme ntation

& Automated )

SDLC Phase Details


SDLC Phase Own er Participant(s) & Roles Main Customer(s) / Consumer(s ) RM Milestone Output(s) / Deliverable(s)

Strategy

PM

PM - Owner/Driver RM - Owner/Driver PM - Reviewer/Approver ENG - Reviewer/Approver QA - Reviewer/Approver TP - Reviewer/Approver PM - Owner/Driver ENG - Reviewer/Approver QA - Reviewer/Approver TP - Reviewer/Approver ENG - Owner/Driver PM - Reviewer/Approver QA - Reviewer/Approver TP - Reviewer ENG - Owner/Driver QA - Reviewer/Approver PM - Reviewer/Approver TP - Reviewer QA - Owner/Driver ENG - Reviewer/Approver/Bug Fixing PM - Reviewer/Approver

Release Planning

RM

PM, ENG, QA, TP

Release(s) Plan(s)

Requirements

PM

ENG, QA, TP

Requirement s Complete

BRD

Design

EN G

QA, TP

C2P

FDD, TDD; ENG, QA & TP Project Plans

Coding / Implementation

EN G

QA, TP

Code Complete

Code, Unit Tests, Test Specs, Test Reports

Integration & Testing

QA

ENG

Beta Ready

Test Plan, Test Specs, Test Cases, Test Scripts

Customer Uptake/Testing

PM

PM - Owner/Driver Customers - Reviewer/Approver ENG - Bug Fixer QA - Test Content Fixing

Apps / Customers

GA Ready

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

What is Software Testing?


Execute the Application in the Controlled manner to answer the question Does the Software behave as designed? Purpose :
Verification Validation Finding

defects

Verification
A Process that confirms the software meets its technical specifications.
Are we doing the Job right? Sample Scenario
User Name length should be more than 5 Characters

Validation
A Process that confirms the software meets the business requirements?
Are we doing the Right Job?

Sample Scenario:
Display the information of the Branch Managers Contact details with respect to the branch chosen.

Defects
Variance between the expected and actual

result. Defects Ultimate source can be traced in the specification, design or the code.

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Why we need to do testing?


Its not to find bugs. Focused on finding defects on final product Examples of some of the disaster defects:
In June 1996, European space craft Ariane 5 rocket failed immediately after launching, due to the lack of exception handling for a floating-point error when a 64-bit integer was converted to a 16-bit signed integer. The loss was $500 million In Oct 1999, NASA Mars Climate Orbitor, a Whether Satellite lost due to a data conversion error. Investigators discovered that software on the spacecraft performed certain calculations in English units (yards) when it should have used metric units (meters).

Why we need to testing? Contd..


Software testing answers questions that development testing and code reviews cant
Does it really work as expected? Does it meet the users requirements? Is it what the users expect? Do the users like it? Is it compatible with our other systems? How does it perform? How does it scale when more users are added? Which areas need more work? Is it ready for release?

Why we need to testing? Contd..


What can we do with the answers to these questions?
Save time and money by identifying defects early Does it meet the users requirements? Avoid or reduce development downtime Provide better customer service by building a better application Know that weve satisfied our users requirements Build a list of desired modifications and enhancements for later versions Identify and catalog reusable modules and components Identify areas where programmers and developers need training

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

What do we Test?
Focus on what is Important Focus on Core functionality first and then look on Nice to have feature Check the Behavior of the application
Sometimes, the code might have been solid but coded in such a way that application behaves totally in a different way. It is also possible that application is perfectly behaving what we are telling it do, but we are not telling the right thing to the application.

Comprehensive testing covers testing of all the components associated with the application. Testing provides an opportunity to validate and verify things like the assumptions that went into the requirements, the appropriateness of the systems that the application is to run on, and the manuals and documentation that accompany the application.

What do we Test? Contd..


Testing can involve some or all of the following factors. The more, the better.
Business requirements Functional design requirements Technical design requirements Regulatory requirements Programmer code Systems administration standards and restrictions Corporate standards Professional or trade association best practices Hardware configuration Cultural issues and language differences

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Who does the testing?


Its not ONE persons Job. It takes a team to do it. Testers should ask the following questions
How well does it work? What does it mean to you that it works? How do you know it works? What evidence do you have? In what ways could it seem to work but still have something wrong? In what ways could it seem to not work but really be working? What might cause it to not to work well?

Who does the testing?


Professional Characters of the testers
Understanding the Business approach and goals of the Organization Understanding the entire software development process Strong desire for quality Establish and enforce SQA Methodologies, Test Strategies and Process Judgment skills to access high risk areas Clear communication skills with Analysis and Engineering team Report defects with full evidence Take actions for continuous improvement Report issues to the upper Management timely Say NO when the Quality is insufficient even before the release. Work Management and Meet deadlines.

Classic Testing Mistakes


Role of Testing
the testing team is responsible for assuring quality. Thinking that the purpose of testing is to find bugs. Not finding the important bugs. Not reporting usability problems. Starting Testing too late.

Planning the complete testing effort


A testing effort biased toward functional testing. Underemphazing the configuration testing Load testing at last minute No Document and Installation testing

Personnel issues
Using testing as the transitional job for new programmers Recruiting failed programmers as testers No domain expert

Testers at work
Checking that the product does what its supposed to do, but not that it doesnt do what it isnt supposed to do. Poor Bug reporting Testing only through user visible interface.

Business Sponsors & Partners

Roles
Testers

Provides funding

Specifies Requirements and deliverables

Approves Changes and some test results

Executes the tests and Document Results

Software Developers
Testing Coordinators or QA Leads

Design,Codes and Build Application

Participates in code reviews and testing


Project Managers

Fixes bugs defects and shortcomings

Creates test plans and test specifications based on the requirements and functional, and technical documents

Plans and Manages the Project

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Activities associated to testing?


Debugging
Process of Analyzing and locating the bugs when software was not behaving as expected Is an activity which supports testing, but cannot replace testing

Static Analysis
Activity which investigates the software code, looking for problems, gathering metrics without actually executing the code.

Dynamic Analysis
Looks at the behavior of software while it is executing Provides information such as execution traces, timing profiles and test coverage information.

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Test Life Cycle

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Test Related Documents


Test Plan
A formal detailed document that describes
Scope, objectives, and the approach to testing, People and equipment dedicated/allocated to testing Tools that will be used Dependencies and risks Categories of defects Test entry and exit criteria Measurements to be captured Reporting and communication processes Schedules and milestones

Test Design Specification Test case

Test Plan
Component
Responsibilities Assumptions Test Communication Risk Analysis Defect Reporting Environment

Description
Specific people who are and their assignments

Purpose
Assigns responsibilities and keeps everyone on track and focused Avoids misunderstandings about schedules

Code and systems status and availability

Testing scope, schedule, duration, and prioritization Communications planwho, what, when, how Critical items that will be tested

Outlines the entire process and maps specific tests Everyone knows what they need to know when they need to know it Provides focus by identifying areas that are critical for success Tells how to document a defect so that it can be reproduced, fixed, and retested Reduces or eliminates misunderstandings and sources of potential delay.

How defects will be logged and documented The technical environment, data, work area, and interfaces used in testing

Software Testing Fundamentals


What is Software Testing? Why we need do testing? What do we test ? Who does the testing? What are the activities associated to testing? Test Life Cycle Test Related Documents Types of Testing

Types of Testing
Unit test Integration testing System testing Block box testing White box testing Grey box testing

You might also like