0% found this document useful (0 votes)
21 views

Lecture 2

The document discusses the software development lifecycle including its phases and activities. It covers requirements gathering, design, implementation, testing, deployment, and maintenance. It also discusses the role of testing in the SDLC and different testing approaches in each phase.

Uploaded by

Aruzhan Amanova
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Lecture 2

The document discusses the software development lifecycle including its phases and activities. It covers requirements gathering, design, implementation, testing, deployment, and maintenance. It also discusses the role of testing in the SDLC and different testing approaches in each phase.

Uploaded by

Aruzhan Amanova
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

Astana IT University​

Advanced QA​

Software Development Lifecycle

Week: 2 PhD Adamova Aigul Dyusenbinovna​


[email protected]
Today’s agenda

Software Development Model


Software Testing Axioms
Software Testing Terms and Definitions
Software Development Lifecycle (SDLC)
Process of producing and maintaining software systems
Primary goal is delivering software that is:
1. High quality
2. Meets customer expectations
3. On time & within budget

SDLC consist of several phases...


SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements
2. Design
3. Implementation
4. Testing
5. Deployment
6. Maintenance
SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements: Gather & define project foundation
2. Design
3. Implementation
4. Testing
5. Deployment
6. Maintenance
SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements: Gather & define project foundation
2. Design: Determine architectural structure documents
3. Implementation
4. Testing
5. Deployment
6. Maintenance
SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements: Gather & define project foundation
2. Design: Determine architectural structure documents
3. Implementation: Product coded & built to spec
4. Testing
5. Deployment
6. Maintenance
SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements: Gather & define project foundation
2. Design: Determine architectural structure documents
3. Implementation: Product coded & built to spec
4. Testing: Fix bugs, errors & inconsistencies
5. Deployment
6. Maintenance
SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements: Gather & define project foundation
2. Design: Determine architectural structure documents
3. Implementation: Product coded & built to spec
4. Testing: Fix bugs, errors & inconsistencies
5. Deployment: Public release, inc. training & help files
6. Maintenance
SDLC Process & Phases
Variations in names / phases but follows same process:
1. Requirements: Gather & define project foundation
2. Design: Determine architectural structure documents
3. Implementation: Product coded & built to spec
4. Testing: Fix bugs, errors & inconsistencies
5. Deployment: Public release, inc. training & help files
6. Maintenance: Support, big fixes, updates etc.
Role of Testing in SDLC
Testing is an essential part of the SDLC
Ensures quality and reliability
Occurs throughout development process
Identify & fix defects early
Prevents mistakes, reduces risk of failure
Testing in different SDLC Phases

1. Requirements - validate & verify that clear & complete


2. Design - check documents are accurate & consistent
3. Implementation - develop test cases, run Unit Testing
4. Testing - execute cases, identify defects & retest
5. Deployment - verify correct, provide support material
6. Maintenance - test new features, bug fixes and changes
SDLC Activities
Quiz
Elicitation Analysis Specification ??? Prioritisation
Requirements
Architectural Detailed Interface Design
Design ???
design design design documentation

Code review (e.g.,


Implementation Coding Integration ??? Code
peer code review)
refactoring
Test planning Test case ??? Test evaluation Defect
Testing design tracking
Configuration Release Deployment ??? Maintenance
Deployment
management management
Post-deployment
Unit testing Validation Design review Test execution
validation
Software Development Model

Waterfall model V model Spiral model

RAD model Agile model


Software Development Model
Waterfall model
Software Development Model
Spiral model
V model Software Development Model
RAD model Software Development Model
Agile model Software Development Model
Case Study Error in Intel's Pentium Microprocessor
Mathematics professor at Lynchburg College, USA, Dr.Thomas Nicely, found a floating point division error in Intel Pentium
microprocessor in the year 1994. He was computing on his Pentium-based computer to find the sum of the reciprocals of prime numbers.
He noticed that the computation result was significantly different from the theoretical values. When the same computation was carried out
on another computer with a different microprocessor (486 CPU) he was able to get the correct values that obey the theoretical values. The
worst and well-known case was division of 4195835 by 3145727. The correct value is 1.33382, however the Pentium's floating point unit
computed and generated a value 1.33374 (Only 6 places after decimal is mentioned here), which has an error of 0.006.
Dr.Thomas Nicely reported the bug to Intel, but Intel ignored it and Nicley did not receive any proper response from Intel. Later, Nicley
took the issue to public with the help of the Internet and media. Following these events, Intel publicly announced that "an error is only
likely to occur [about] once in nine billion random floating points". They also mentioned in their announcement that "an average
spreadsheet user could encounter this subtle flaw once in every 27,000 years of use." However, it was noted that the Intel Pentium
processors output was wrong every time when such division was performed for such values.
On November 28, 1994, Intel publicly admitted the problem and issued a statement saying that it would replace pentium chips only for
those who could explain the need of high accuracy in complex calculations. Industry experts, public, and media criticized this attitude of
Intel. Later, in the month of December, Intel announced that it would freely replace the processor for any owner who asked for one.
The bug problem made Intel to issue an apology to its customers and the public for the way it handled the bug and issues related to it. It
had to spend more than $400 million for replacing bad chips. Learning a lesson from this, Intel now reports all known problems on its
official website and it also monitors customer feedbacks carefully and regularly.

Questions
1. Is Intel right in their approach to customers? How did they win customers’ confidence?
2. Explain the kind of bug faced by Intel. What method would you suggest to overcome the bug?
Software Testing Axioms
Software Testing Axioms

Axiom 1 Axiom 2 Axiom 3


It is impossible to test a Software testing is a risk- Testing cannot show the
program completely based exercise absence of bugs.

Axiom 4 Axiom 5 Axiom 6


The more bugs you find, Not all bugs found will be It is difficult to say when a
the more bugs there are. fixed. bug is indeed a bug.

Axiom 8 Axiom 9
Axiom 7
Software testers are not Software testing is a
Specifications are never
the most popular disciplined and technical
final.
members of a project. profession.
Software Testing Terms and Definitions
Software Quality the actual testing of the product happens at a later stage. Defects
which occur due to discrepancies in functionality and specifications
Verification are detected in this phase. It answers the question, “Are we building
the right product?”

Validation
the process of discovering the possible failures in the software
Quality Assurance before the commencement of the testing phase. It involves reviews,
inspections, meetings, code reviews, and specifications. It answers
the question.” Are we building the product right?”
Quality Control

Test plan is impacted by bugs. It is essential that the software is bug free or
defect free and meets the requirements, specifications, and
expectations of the client.
Test case
Software Testing Terms and Definitions
Software Quality is a document and is the smallest unit of testing. It has a developed
set of inputs, execution preconditions and expected outcomes for a
Verification specific objective.

The activities are more generic and can encompass the whole
Validation development process. The main aim is to prevent defects, and thus
it focuses on the process of product or application building.
Quality Assurance
is a document which gives information about the objectives, scope,
approach and the various attributes that the testing project must
Quality Control focus on.

The main aim is to evaluate whether the deliverables are of


Test plan
acceptable quality. The focus thus is to detect defects and correction
of these defects (correction oriented). The activities ensure data
Test case integrity, correctness and completeness.
Questions
1. Is there any difference between the water fall model and the spiral model? Discuss.
2. In V model, test cases are developed at every stage of software development. Explain.
3. Explain how you will carry out software development process using RAD model.
4. In Agile model, the customers, developers, and testers constantly interact with each other
during the entire development process. Discuss.
5. How does test strategy differ from the test technique? Substantiate how planning a
strategy helps in efficient testing.
6. Suppose you are recruited as a tester in a software company, what qualities are you
expected to exhibit?
7. Do you think software testers need to be just knowledgeable in their domain? Are there
any specific soft skills they are expected to exhibit?
8. “The process of static test is very tedious”. Explain why.
9. Is there any difference between Verification and Validation? Discuss
10. “Not all bugs found will be fixed. “ How would you substantiate this axiom?
Summary
Testing plays critical role in SDLC
Ensures software is reliable & defect-tree
Testing throughout the SDLC minimises risk of software failure
The Waterfall model of software development is a traditional model which
follows sequential method of software development. V and Spiral models, which
employ testing as an integral part of software development, are more efficient
than the Waterfall model. Agile is considered to be the most advanced and
efficient type of software development model. Extreme Programming (XP) is a
method developed based on the agile model, which uses test driven development
to develop highly efficient software.

You might also like