CH02.L01. SWDLC

MaharaTech - ITI MOOCA
16 Nov 201713:14

Summary

TLDRThis script delves into software testing within the Software Development Life Cycle (SDLC), exploring various models like the sequential, iterative, and incremental approaches. It emphasizes the importance of testing at different stages and the role of ISO 12207 in standardizing SDLC models. The script contrasts the traditional Waterfall model with the V-model, highlighting their advantages and limitations. It also discusses the iterative model's flexibility and the incremental model's structured approach, including prototyping and agile development. The distinction between verification and validation testing is clarified, with verification ensuring requirements are met, and validation confirming customer needs are satisfied.

Takeaways

  • πŸ“š The chapter discusses the integration of testing throughout the Software Development Life Cycle (SDLC) and its importance in different development stages.
  • πŸ” Testing levels and types are introduced, highlighting their application in ensuring software quality before delivery to customers.
  • πŸ”§ Maintenance testing is emphasized as a crucial final stage to identify and fix bugs post-deployment, ensuring ongoing software reliability.
  • 🌐 The testing phase is not a separate entity but an integral part of the SDLC, with execution methods varying based on the chosen development model.
  • πŸ“ˆ ISO 12207 is identified as the standard that compiles rules and models for software development, providing a unified reference for selecting and applying SDLC models.
  • πŸ› οΈ The Sequential Model, including the Waterfall and V-Model, is explained, detailing their phases and the sequential nature of development and testing.
  • πŸ’‘ Advantages of the Waterfall Model include simplicity, clear phase requirements, and suitability for small projects with specific goals.
  • 🚧 Disadvantages include inflexibility in making modifications and high risk due to late visibility of the working program.
  • 🌟 The V-Model is presented as an improvement over the Waterfall Model, with integrated testing phases that allow for earlier defect discovery and resolution.
  • πŸ”„ The Iterative Model is described, allowing for overlapping development and testing cycles, providing flexibility and early customer feedback.
  • πŸ“ˆ The Incremental Model combines elements of both Sequential and Iterative approaches, enabling phased development and testing of software modules.
  • πŸ“Œ Verification and Validation Testing are distinguished, with Verification ensuring requirements are met, and Validation confirming customer needs are satisfied.

Q & A

  • What is the main focus of Chapter 2 in the transcript?

    -The main focus of Chapter 2 is on the testing phase within the software development life cycle (SDLC), including different software development models, their execution stages, and how testing is integrated into these stages.

  • What does SDLC stand for and why is it significant in software development?

    -SDLC stands for Software Development Life Cycle. It is significant because it represents the process of developing, testing, and deploying a software product, and it helps in choosing the correct model for software development.

  • What is the ISO 12207 standard mentioned in the transcript?

    -ISO 12207 is a standard that gathers all the rules and standards for software engineers working in the field of software development, including the SDLC models that are chosen and applied during software development.

  • What are the three software development models discussed in the transcript?

    -The three software development models discussed are the sequential model, the iterative model, and the incremental model.

  • What is the Waterfall model and how does it differ from other models?

    -The Waterfall model is a sequential model where each phase of software development is completed before moving on to the next. It differs from other models in that it does not allow for iteration or going back to previous phases once they are completed.

  • What is the V-model and how does it address the weaknesses of the Waterfall model?

    -The V-model is a variation of the Waterfall model that includes testing activities for each phase of development. It addresses the weaknesses of the Waterfall model by allowing for testing to begin as soon as the coding phase is reached, thus identifying defects earlier in the development process.

  • What are the advantages of the V-model over the Waterfall model?

    -The V-model's advantages include the ability to start testing earlier in the development process, which helps to identify and fix defects earlier, leading to higher project success rates and lower costs for defect fixing.

  • What is the iterative model and how does it differ from sequential models?

    -The iterative model divides the software life cycle into smaller cycles, allowing for requirements analysis, design, and coding to be repeated. It differs from sequential models by enabling work to start on new parts of the project without waiting for the completion of previous phases.

  • What is the incremental model and how does it combine elements of sequential and iterative models?

    -The incremental model is a blend of sequential and iterative approaches, where all requirements are divided into parts and developed through multiple cycles, with each cycle resulting in a working module that adds to the final software product.

  • What is the difference between verification testing and validation testing?

    -Verification testing checks if the software meets the initially required specifications, while validation testing assesses whether the software satisfies the customer's needs after confirming that it meets the requirements.

  • Why is the iterative incremental model beneficial in software development?

    -The iterative incremental model is beneficial because it allows for continuous feedback and improvement, enabling developers to create and test modules incrementally, ensuring that each part of the software meets both the specified requirements and the customer's needs.

Outlines

00:00

πŸ” Introduction to Software Testing in SDLC

This paragraph introduces Chapter 2, focusing on software testing throughout the software development life cycle (SDLC). It emphasizes that testing is not a separate phase but an integral part of the development process. The chapter will explore different software development models, their execution stages, and how testing is conducted at each stage. The goal is to understand the various testing levels and types that software must pass. The ISO 12207 standard, which includes all SDLC models, is mentioned as a key reference for choosing the correct model. The paragraph also discusses the sequential model, particularly the waterfall model, and its advantages and disadvantages.

05:03

🌟 Exploring the V-Model and Iterative Models

The second paragraph delves into the V-model, which is an improvement over the waterfall model. It explains that the V-model is divided into three parts: development phases, testing phases, and work products. The model allows for testing activities to be planned and executed concurrently with development, enabling earlier detection and resolution of defects. The paragraph also discusses the advantages of the V-model, such as simplicity, time-saving, and early defect detection, as well as its disadvantages, including inflexibility and the need for updates to testing documents during modifications. The iterative model is introduced as a way to break down the software life cycle into smaller cycles, allowing for continuous testing and feedback. The paragraph concludes with a brief mention of the integrative model, which combines elements of both sequential and iterative approaches.

10:04

πŸ–ŒοΈ Iterative Incremental Model and Testing Types

The third paragraph discusses the iterative incremental model, which blends sequential and iterative approaches. It explains that this model involves dividing requirements into parts and developing them through multiple cycles, with each cycle resulting in a working module. The paragraph uses the example of painting the Mona Lisa to illustrate how the model works, emphasizing the importance of customer feedback and iterative improvements. The paragraph also distinguishes between verification testing and validation testing, explaining that verification tests check if the software meets initial requirements, while validation tests ensure the software satisfies the customer's needs. The V-model is highlighted as an example where these testing types are crucial.

Mindmap

Keywords

πŸ’‘Software Life Cycle

The software life cycle refers to the stages a software goes through from its initial conception to its eventual retirement. In the video, this concept is central as it discusses how testing is integrated throughout these stages. The script mentions that testing is not a separate phase but an integral part of the software development cycle.

πŸ’‘Software Development Models

Software development models are frameworks that guide the process of developing software. The video script delves into different types of these models, such as sequential, iterative, and incremental models, explaining how they affect the testing phase in software development.

πŸ’‘Testing Phase

The testing phase is a critical part of the software development life cycle where the software is evaluated to ensure it meets the requirements and functions correctly. The script emphasizes that testing is not a standalone process but is interwoven with the development stages.

πŸ’‘Maintenance Testing

Maintenance testing is the process of checking software for bugs and issues after it has been delivered and is in use. The script mentions that this testing occurs at the end of the software development life cycle to ensure quality and functionality in a real-world environment.

πŸ’‘SDLC (Software Development Life Cycle)

SDLC is an abbreviation for Software Development Life Cycle, which encompasses all the stages involved in developing software. The script discusses how testing is applied within the SDLC and the importance of choosing the right model from ISO standards.

πŸ’‘ISO 12207

ISO 12207 is an international standard that provides guidelines for software life cycle processes. The video script highlights that this standard includes various SDLC models and is a key reference for software engineers in choosing and applying development models.

πŸ’‘Sequential Model

The sequential model, also known as the waterfall model, is a software development approach where phases are completed in a linear sequence. The script describes this model and its application, noting that each phase must be completed before the next can begin.

πŸ’‘V-Model

The V-model is a variation of the sequential model that includes testing activities parallel to each development phase. The script explains how this model addresses some of the weaknesses of the waterfall model by integrating testing earlier in the development process.

πŸ’‘Iterative Model

The iterative model is a software development approach where the software is developed in cycles, allowing for incremental improvements and testing. The script uses the example of the Mona Lisa painting to illustrate how this model can be applied in practice.

πŸ’‘Incremental Model

The incremental model is a type of software development where the software is built and tested in increments. The script explains that this model combines aspects of both sequential and iterative approaches, allowing for the development of modules that are tested and integrated one at a time.

πŸ’‘Verification Testing

Verification testing is a type of testing that checks if the software meets the specified requirements. The script contrasts this with validation testing, explaining that verification testing focuses on the correctness of the software in relation to its requirements.

πŸ’‘Validation Testing

Validation testing is a process that ensures the software not only meets the requirements but also satisfies the customer's needs. The script emphasizes the importance of this type of testing in confirming that the software is fit for its intended purpose.

Highlights

Introduction to chapter 2 focusing on testing throughout the software development life cycle.

Exploration of different software development models and their execution stages in relation to testing.

Discussion on the importance of testing levels and types in software development.

Introduction to maintenance testing and its role after software delivery.

Understanding the integration of the testing phase within the software development cycle.

Explanation of the ISO 12207 standard and its significance in software development models.

Overview of sequential models, including the waterfall and V-model.

Advantages and disadvantages of the waterfall model in software development.

Introduction to the V-model and its structure for addressing waterfall model limitations.

The concept of testing activities in the V-model corresponding to development phases.

Explanation of work products in the V-model and their testing counterparts.

Advantages of the V-model, including early defect discovery and cost-effectiveness.

Disadvantages of the V-model, particularly regarding flexibility and prototype availability.

Introduction to the iterative model and its approach to software development.

Description of the iterative incremental model blending sequential and iterative approaches.

Examples of the iterative incremental model, including prototyping and RAD.

The importance of verification and validation testing in the development process.

Differentiation between verification testing and validation testing.

Transcripts

play00:05

We will start chapter 2 which tackles

play00:07

testing throughout software life Cycle

play00:10

and through which we will know about the different

play00:12

software development in models and their execution stages

play00:15

and to see how the testing takes place

play00:18

and in which stage of our software developing.

play00:21

After that we will be introduced to the testing levels

play00:24

and types that we apply on the software

play00:27

and finally we will talk about the maintenance testing

play00:30

which comes at the last stage after

play00:32

after finishing our software developing

play00:35

and deliver it to the customer to start working live.

play00:38

In this stage we will check if there are bugs or problems

play00:41

after using it or not, and to fix them as soon as they are discovered

play00:44

to guarantee our software quality

play00:47

and that it is running with the fewest number

play00:48

of bugs in the real environment

play00:52

By the end of Ch 2, we should have understood completely

play00:55

all the test levels and types that

play00:57

any software has to pass.

play00:59

Lets agree first

play01:00

that the testing phase itself is not a separate phase from the

play01:03

software development cycle or model

play01:06

but actually it is a basic part that occurs during it

play01:09

however, the way of its execution is the different from one model to another

play01:12

and that depends on t he type of the software developing model

play01:15

which will be chosen and the way it can be

play01:18

applied and executed.so all our focus in this chapter

play01:21

will be on the testing phase

play01:24

inside the software's developing life cycle

play01:27

which is abbreviated to SDLC and

play01:30

how it is applied inside the module

play01:31

where SDLC came from and what its sources

play01:34

to know how to choose the correct model from them

play01:38

these models exist in the ISO

play01:40

standard 12207. T he ISO is

play01:43

the organization that gathered and put

play01:45

all the rules and standards for the software engineers working in

play01:48

the field of software developement

play01:50

Also it gathered all the SDLC models

play01:53

which are chosen and applied in case of developing

play01:56

any software. As a result it became the

play01:59

unified main reference which we follow to choose

play02:02

the model and to apply it, to avoid being random in

play02:05

the applying and execution and to be working

play02:08

according the standard.

play02:09

let`s talk about software development models

play02:12

we have take in our consideration that although

play02:15

each model has its fixed and specified phases of apply

play02:18

but its execution in a project differs from

play02:20

the other according to the project's goals

play02:22

and objectives

play02:25

There are many types for the software development models,

play02:28

here in the course and according to "IS2qb"

play02:31

we will concentrate on three of them

play02:34

sequential models, iterative model,

play02:37

and the incremental model.

play02:39

1: The sequential model , in which the phases of the software development

play02:43

take place in a sequential that means

play02:46

each phase ends it calls the phase after it

play02:49

examples of this kind are waterfall and V-model

play02:51

that appeared after that time. First, the waterfall model

play02:54

which consists of some phases that are executed sequentially

play02:57

the way this model is applied

play02:59

depends on finishing

play03:00

each phase separately

play03:02

before starting another phase

play03:04

for ex, if we are in the phase of specifying the user requirements, i`ll not

play03:08

be able to start the next phase which is the design phase

play03:11

before gathering all the requirements related to the project

play03:13

and studying them all and getting them approved from the client

play03:16

what are the advantages and the disadvantages of applying the waterfall model

play03:20

for the advantages as following

play03:22

First, it is easy to use and apply

play03:26

Second, we will find each phase has its

play03:29

own specific requirements and specific way to be reviewed

play03:32

Therefore, I know in every phase what is required and what should be delivered

play03:35

For ex, if we are in the phase of requirements gathering

play03:38

then i should deliver the requirements document after finishing

play03:41

and also should be reviewed

play03:43

Each phase is fully executed

play03:45

before starting other phases

play03:48

This model suits more the small projects

play03:51

that clearly have specific goals

play03:54

As for its disadvantages:

play03:57

the difficulty to set any modification

play03:59

during executing the project, and this is because

play04:01

during the project we will not be able to return back to change

play04:04

the requirements because i have already finished

play04:07

the phase of the analysis and

play04:09

gathering for all our requirements and started the execution.

play04:13

Another thing is the complexity of transferring from a phase to another

play04:16

results a very high risk

play04:19

because i can`t see my program working unless

play04:21

in the last phase when it is fully finished

play04:24

therefore, I have to wait till its finished to see the project

play04:27

complete and working, This is the reason

play04:30

another model was raised called the v-model, which fixes

play04:33

the weak points we have faced in the waterfall model

play04:36

The v-model is divided to

play04:38

3 parts. the first on the left side we will find exactly

play04:41

like the waterfall which begins with the user requirements

play04:44

the software specifications,

play04:46

high level design, and the low level design

play04:49

till we reach the coding phase

play04:52

The right side concentrates on testing

play04:55

activities that are planned for during

play04:57

each phase of the developments phases

play04:59

to begin testing directly after reaching the coding phase

play05:02

and they are the component or the unit test,

play05:05

integration test, system test, and

play05:07

acceptance test. Note that when it comes to the practical applying

play05:10

We will be able to shrink or extend

play05:13

the model levels whether in testing

play05:16

or in development according to the project

play05:19

we are working on ,like what ? We may

play05:22

find examples for projects that include a phase called component

play05:25

integration testing after the component testing phase

play05:29

or we may find system integration

play05:31

testing after system testing phase so it

play05:34

is highly expected to increase or decrease according the project we are working on.

play05:37

The third part is relating to the work products

play05:40

which consists of

play05:41

the output of each phase of the development phase

play05:45

which we will test using a specific

play05:48

testing activity, like what ?

play05:50

For ex, in the phase of gathering the requirements in

play05:53

the development cycle. we will notice that it meets

play05:56

the acceptance testing activity on the other side,

play05:58

in which a planning for the acceptance testing

play06:01

against the requirement specification

play06:05

Then after finishing the software and before its

play06:08

delivery we will execute all the acceptance

play06:11

testing work that we have prepared

play06:13

during gathering the requirements to check if

play06:15

the system achieves them or not after being completed, and

play06:18

if the customer will be satisfied with it or not. Now we can understand that for

play06:21

every development phase, there is another testing phase facing it, in which

play06:24

we plan for the testing we will run when

play06:27

we reach that phase. That is because when

play06:29

reaching the coding phase, we will begin executing the plan with

play06:32

the default testing. That means to prepare

play06:35

the testing tasks for each phase to avoid wasting

play06:38

time when executing and also

play06:41

to achieve its goals. And this is through the 5 phases

play06:44

and that have equivalent phases like

play06:47

acceptance test planning, system test planning,

play06:50

integration test planning, unit

play06:53

test planning and finally the coding phase. This is for

play06:56

the work products use in the v-model. We can

play06:59

increase our knowledge about them by

play07:03

checking the generic work products, that their

play07:06

reference is ISO12207

play07:09

and the CMMI

play07:12

( Capability Maturity Model Integration )

play07:15

you will find all the generic

play07:17

products we may need in any project.

play07:20

We said before that the v-model was raised

play07:23

to avoid the waterfall model disadvantages, but what about its advantages :

play07:26

It is simple in using and applying specially in

play07:29

the small projects.Also, it saves time

play07:32

as instead of waiting to test in the last

play07:34

phase of the software development and

play07:37

until the software is fully completed as in waterfall,

play07:41

here we begin preparing for the testing

play07:44

activities earlier from the requirements phase

play07:46

till reaching the coding phase.

play07:48

This helps to discover

play07:51

the defects in an earlier phase and get them fixed earlier,

play07:55

to apply the earlier testing principle.

play07:57

As a result the project success percentage and the percentage to complete it on time

play08:00

is high, in addition to the costs of fixing

play08:03

the defects are cheaper in the early phases of the project.

play08:06

Regarding its disadvantages , we will notice that if there

play08:08

is any modification during the project,we

play08:12

will need to update all

play08:14

the testing documents with the requirements because

play08:16

as any modification will have effect on the rest of the project,

play08:19

So although it is easily used,

play08:22

but it misses the flexibility. Although, we plan and prepare for each

play08:25

development phase,

play08:28

testing document, and although

play08:31

this helps us in discovering

play08:34

the defects, but we always need to

play08:37

wait for the implementation phase to start

play08:39

writing the code, and this also will deprive me from having

play08:42

any prototype from which I can get the customer feed

play08:45

before the delivery. And this was a simple idea about

play08:48

the v-model . we will talk about the integrative model

play08:51

that depends on dividing the software

play08:54

life cycle to a group of smaller life cycles that

play08:57

begins with the requirements analysis and design an finalizes with coding,

play09:00

We repeat these processes and that`s why we call it iterative model,

play09:03

so we don't have to wait

play09:05

for a full phase to be finished before

play09:08

starting another one.

play09:10

As a result, we will find that in each

play09:13

iteration, a group of tasks take place in the same phase,

play09:16

then we will find that we are testing

play09:19

repeatedly during each iteration before

play09:22

reaching the final product. As long as each

play09:24

time we work for a part and then we add to it

play09:28

or modify within it, so we have

play09:30

to run a regression test immediately to know if these

play09:33

modifications affected the rest of the modules or not.

play09:36

Note that , in this model it not a must to

play09:39

have all the requirements, but on

play09:43

contrary you can begin with

play09:45

a simple group of requirements and then increase them

play09:48

during the development. The

play09:51

Mona Lisa painting is a simple example for

play09:53

applying the iterative model, if a customer

play09:56

asked for drawing the Mona Lisa without giving any

play09:58

details, Here the requirements is not complete,

play10:01

in this phase we understood the required

play10:03

requirements that are incomplete. We made

play10:06

an initial design and applied it, and then we got

play10:09

the result, which in picture No1.

play10:12

Then we let the customer see the picture to know his opinion,

play10:15

if we should add new requirements, and

play10:18

what required modifications needed for the first version of results we have.

play10:21

So we will make another iteration with the new changes and modifications on the picture

play10:24

no1 and keep repeating this process

play10:27

till reaching the last shape of the product exactly like how

play10:29

the customer needs that is in picture No3.

play10:32

The third type of models is

play10:35

the iterative incremental model that is a

play10:38

blend of both the sequential and the iterative

play10:41

what does it mean? In this model we will have all the requirements

play10:44

but we will divide them for parts, we

play10:47

will execute them by multiple development cycle,

play10:50

as if each small cycle results a module, which is

play10:52

acts as full working part of the requirements. After finishing

play10:55

each part we will run his required tests.

play10:59

and you keep repeating these cycles that

play11:01

means iterations, and within each time we take

play11:04

a new part of the requirements and finish it and then

play11:07

add as a module for the preceded one

play11:09

till reaching the final software that

play11:12

the customer needs. The most famous examples for

play11:15

the iterative incremental model are the prototyping, the rapid

play11:18

application development or the RAD,

play11:20

rational unified process or RUP , and

play11:22

the agile development models. Let`s return back

play11:25

again for the Mona Lisa Painting but in this time

play11:27

instead of each time we get the initial shape of the picture and then

play11:30

modify on it till reaching the last required shape,

play11:33

we will devide the picture for parts and each time

play11:36

we will not begin a new part until finishing the current one first.

play11:39

And so on, meaning that we will advance phase by phase and

play11:42

at the beinging of each part we will add new part of

play11:44

the requirements and finish its tests then we will let

play11:47

the customer see it and take feedback. We will keep

play11:50

repeating this till reaching exactly what he needs.

play11:54

There are some important things that will be with us in all

play11:55

the phases of development that are

play11:58

the verification testing and

play12:00

validation testing, and the most famous

play12:03

example for them is the V-model,

play12:05

the letter (v) here means verification and validation

play12:08

but what is the difference between them?

play12:11

we will find that the verification test answers the question β€œdoes

play12:15

the software meets

play12:16

the requirements that was initially required

play12:19

or not ?” because it`s highly expected that

play12:21

the final version of the software has more than required

play12:24

in the initially agreed upon requirements, it`s

play12:26

also expected that we missed a specific

play12:28

requirement in our software, so we have always

play12:31

to verify the requirements, but about

play12:34

the Validation testing we use it to answer a more important question

play12:38

which is whether β€œafter confirming that the software

play12:40

meets the requirements, does it satisfy

play12:43

the customer's needs or no? ” , we may find that

play12:46

the software is totally not what

play12:48

the customer needs, especially in the

play12:51

V-model in which we can`t judge if

play12:53

the software fulfills the customer

play12:56

needs unless it finishes because it is

play12:59

sequentially. Finally let`s say again that

play13:02

the verification testing cares about the requirements but

play13:05

the validation testing cares about achieving

play13:07

the customer business needs.

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
SDLCTesting PhasesSoftware QualityWaterfall ModelV-ModelIterative ModelIncremental ModelQuality AssuranceAgile DevelopmentRequirements GatheringCustomer Feedback