SDLC Introduction
SDLC Introduction
SDLC 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?
Planning
& Automated )
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
Release(s) Plan(s)
Requirements
PM
ENG, QA, TP
Requirement s Complete
BRD
Design
EN G
QA, TP
C2P
Coding / Implementation
EN G
QA, TP
Code Complete
QA
ENG
Beta Ready
Customer Uptake/Testing
PM
Apps / Customers
GA Ready
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.
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.
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.
Roles
Testers
Provides funding
Software Developers
Testing Coordinators or QA Leads
Creates test plans and test specifications based on the requirements and functional, and technical documents
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.
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
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
Types of Testing
Unit test Integration testing System testing Block box testing White box testing Grey box testing