Software Testing Tutorial #9 - V Model in Software Engineering

Software Testing Mentor
6 Nov 202013:39

Summary

TLDRThis tutorial introduces the V-Model, an improvement over the Waterfall model in software development. It addresses the delay in testing in the Waterfall approach by involving the testing team at every stage of the development process. The video explains how the V-Model aligns testing phases with corresponding development phases, such as writing test cases during requirements gathering and system design. This early involvement of testers helps identify defects earlier, ensuring better quality and feedback throughout the lifecycle. The tutorial also highlights the advantages of the V-Model over the Waterfall model.

Takeaways

  • 📋 V-Model is an improvement over the Waterfall Model, addressing its major drawback: delayed feedback in testing.
  • ⏳ The main issue with the Waterfall Model was the late involvement of testing, leading to delayed defect detection.
  • 💡 In the V-Model, testing is incorporated at every phase, with corresponding test phases for each development phase.
  • 📝 During the requirements gathering phase, the testing team starts writing user acceptance test cases to catch defects early.
  • 🔍 The system analysis and design phase involves understanding how the new system will interact with other systems, while testers write system test cases for end-to-end testing.
  • ⚙️ In the global design phase, the testing team prepares integration test cases to ensure modules work together after coding.
  • 🧩 During the detailed design phase, testers create unit test cases for individual modules. These are often written by developers but might involve white-box testers.
  • 👨‍💻 The coding phase begins once the design is complete, and testing execution starts immediately for unit tests and integration tests as modules are developed.
  • 🌐 Integration testing begins when multiple modules are ready and integrated, ensuring proper interaction between them.
  • ✅ System testing and user acceptance testing follow, ensuring that the entire system works as expected and meets the customer's requirements.

Q & A

  • What is the V-Model in software development?

    -The V-Model is an extension of the traditional waterfall model where each development phase has a corresponding testing phase. It is named after the V-shape formed by the process stages, representing an improvement in feedback and testing involvement over the waterfall model.

  • How does the V-Model address the disadvantages of the waterfall model?

    -The V-Model addresses the major disadvantage of the waterfall model, which is the delayed feedback in testing. In the V-Model, testing is integrated into each development phase, ensuring that defects are identified and addressed early in the process.

  • What is the role of the testing team during the requirements phase in the V-Model?

    -During the requirements phase, the testing team starts writing the user acceptance test cases based on the gathered requirements. This early involvement allows them to spot potential gaps and issues before the development begins.

  • What is the system analysis and design phase in the V-Model?

    -In the system analysis and design phase, teams analyze how the new software will interact with other systems, including third-party and internal systems. Testers start writing system test cases during this phase to prepare for end-to-end system testing.

  • What is global design in the V-Model, and what happens during this phase?

    -Global design refers to the high-level design of the core application being developed. During this phase, the tech architects determine what changes are needed in the core system. The testing team writes integration test cases to test how the new application will interact with other systems.

  • What are unit tests in the V-Model, and who typically writes them?

    -Unit tests focus on testing individual modules of the software during the module-level design phase. These tests are usually written by the development team, but white-box testers may also write unit test cases if necessary.

  • What is the purpose of integration testing in the V-Model?

    -Integration testing in the V-Model occurs after individual modules have been developed and integrated. Its purpose is to test how the modules work together and ensure that the integration between different parts of the software functions correctly.

  • What is system testing in the V-Model?

    -System testing is conducted once the entire software is developed and integrated with other systems. It verifies that the complete system, including interactions with third-party or external systems, functions as expected.

  • What is user acceptance testing (UAT) in the V-Model?

    -User acceptance testing (UAT) occurs after system testing and is performed by business users or customers. It focuses on ensuring that the software meets the customer's requirements and is fit for use. The UAT team typically uses test cases written during the requirements phase.

  • Why is the V-Model considered advantageous compared to the waterfall model?

    -The V-Model is considered advantageous because it involves the testing team throughout the development process, allowing defects to be identified and addressed earlier. This reduces the risk of issues being discovered late in the development cycle, leading to a more efficient and higher-quality development process.

Outlines

00:00

🧑‍💻 Introduction to the V-Model in Software Testing

This paragraph introduces the V-Model, an improvement over the Waterfall Model in software development. The major drawback of the Waterfall Model was delayed feedback during testing, which the V-Model addresses by incorporating testing in each development phase. The speaker emphasizes the need to understand the Waterfall Model first, as the V-Model builds upon it. The V-Model's phased approach includes corresponding testing phases for each development stage, providing earlier defect detection and resolution.

05:00

🔍 Requirements Gathering and Early Test Involvement

This paragraph focuses on the requirements gathering phase, the first phase in both the Waterfall and V-Models. In the V-Model, the testing team gets involved early, writing user acceptance tests (UAT) based on gathered requirements. This early involvement helps identify gaps in the requirements before development begins. The main advantage of this phase is finding potential defects early, unlike in the Waterfall Model, where testing was delayed until much later.

10:01

🔗 System Analysis and Test Case Development

Here, the paragraph covers the system analysis and design phase of the V-Model. During system analysis, the focus is on how the software interacts with external systems. Testers write system test cases, focusing on the end-to-end functionality of integrated systems. This phase is crucial when multiple systems are involved in software development, such as third-party systems or internal subsystems that support a comprehensive application, like a banking application.

🌍 Global Design and Integration Testing

This paragraph discusses the global design phase, where the core application design is created. Architects plan the changes required in the core system, while the testing team writes integration test cases. The design includes both internal system integration and third-party interactions, ensuring the software is ready for comprehensive testing once modules are built. As the design happens, integration test cases are prepared for execution after code completion.

📦 Detailed Design and Unit Testing

This paragraph explains the detailed design or module-level design phase. Developers begin breaking the global design into smaller modules and start coding. Testers are responsible for writing unit tests, which are usually done by the development team but can be handled by white-box testers. Each module is tested individually through unit testing to ensure functionality before integration with other modules.

⚙️ Coding and Integration Testing Execution

This part covers the coding phase, where developers create the actual modules based on the design. Once modules are ready, the testing team begins unit testing, followed by integration testing. When two or more modules are integrated, integration tests are executed to verify the interaction between different parts of the system. This process ensures that integrated modules function properly as a whole before moving to the system testing phase.

🔄 System Testing and User Acceptance Testing

This paragraph explains system testing and user acceptance testing (UAT). After all modules are integrated and system-level testing is complete, the software is tested against third-party systems. Once system testing is passed, UAT takes place, usually conducted by business stakeholders or customers. UAT verifies if the system meets the user's needs. Since the UAT test cases were prepared early, this phase runs smoothly, allowing testers to ensure that the system aligns with business requirements.

📝 Conclusion and Benefits of the V-Model

The final paragraph summarizes the key advantage of the V-Model over the Waterfall Model: earlier and continuous testing involvement. In the V-Model, testing happens at every phase of the development cycle, allowing for the early detection and fixing of defects. This proactive approach improves overall software quality, making the V-Model more effective in reducing delays and costly errors. The speaker concludes by introducing the topic for the next tutorial, the iterative development model.

Mindmap

Keywords

💡V-Model

The V-Model is a software development life cycle model where processes are executed in a sequential manner, forming a V shape. Unlike the Waterfall model, the V-Model integrates corresponding testing phases at each stage of development. This approach helps to identify defects early by involving testers right from the requirement gathering phase. In the video, the presenter explains how the V-Model improves feedback loops compared to the Waterfall model.

💡Waterfall Model

The Waterfall Model is a traditional software development model where each phase flows sequentially from one to the next, without overlapping. Its main disadvantage, highlighted in the video, is the delayed testing phase, which means defects are often discovered late in the process. The V-Model was introduced to address these issues, making testing an ongoing part of each development phase.

💡Requirements Gathering Phase

This is the initial phase in both the V-Model and Waterfall model where the team collects and documents the requirements of the project. In the V-Model, testers are involved early in this phase to start writing user acceptance test cases based on these requirements. The early involvement of testers helps identify potential gaps in the requirements before development begins.

💡System Analysis

System analysis refers to understanding how the software will interact with other systems, especially in complex applications like banking systems. In the V-Model, this phase involves breaking down the system's requirements to analyze interactions with external and internal systems. Testers begin to write system test cases during this phase, targeting end-to-end system functionality.

💡User Acceptance Testing (UAT)

UAT is the final testing phase in the V-Model where actual users or business stakeholders test the system to ensure it meets their requirements. In the V-Model, the UAT test cases are written during the requirements gathering phase, allowing testers to prepare for this final validation early. The video emphasizes how this early preparation helps streamline the UAT phase.

💡System Testing

System Testing involves testing the entire integrated system to ensure all components work together as intended. This phase occurs after integration testing in the V-Model, where testers execute test cases that focus on the full system, including interactions with third-party and internal systems. The video describes how early preparation of system test cases ensures smoother testing at this stage.

💡Integration Testing

Integration Testing is the phase where individual modules are combined and tested as a group to identify issues with their interactions. In the V-Model, testers prepare integration test cases during the design phases, and these are executed once modules are integrated. The video illustrates this process with an example of a banking application, showing how different modules, like applying for a card and saving customer details, are tested together.

💡Unit Testing

Unit Testing is the testing of individual modules or components to ensure they work as intended. In the V-Model, this is usually done by developers, though white-box testers may also be involved. The video highlights how unit tests are written during the detailed design phase and executed once coding is completed for each module.

💡Detailed Design

Detailed Design refers to the phase where the overall system is broken down into smaller modules for development. In this phase, specific technical details are outlined for each component. Testers write unit test cases based on the module designs. In the V-Model, this phase ensures that the detailed design is closely aligned with test preparation, as explained in the video.

💡High-Level Design (Global Design)

High-Level Design, also referred to as Global Design, outlines the architecture and structure of the system, focusing on how the core application will function. It includes decisions about system interactions with external systems. In the V-Model, testers write integration test cases based on this design to verify how different modules will integrate later. The video uses the example of a banking system's core functionalities being designed at this stage.

Highlights

The V-Model is an improvement over the waterfall model, addressing the delay in feedback and testing phases.

In the V-Model, testing is integrated into every phase of software development, ensuring early defect detection.

During the requirements gathering phase, the testing team starts writing user acceptance tests to identify gaps early.

In the system analysis and design phase, testers create system test cases for end-to-end integration with third-party systems.

Global design focuses on how the core application will be developed, and testers write integration test cases during this phase.

The detailed or module design phase breaks down the high-level design into smaller modules, and unit test cases are written here.

Developers begin coding once the design is complete, and testers execute unit tests on individual modules.

Integration testing begins once multiple modules are ready and integrated, ensuring smooth interaction between components.

System testing is performed after all modules are integrated to verify how the entire system functions with external systems.

User acceptance testing (UAT) is conducted by business users to ensure that the final product meets customer requirements.

UAT uses test cases that were written during the requirements phase, allowing for efficient and targeted testing.

The primary benefit of the V-Model is that testing involvement in each phase allows for early feedback, improving quality.

Compared to the waterfall model, the V-Model reduces the risk of late-stage defects by involving testers from the beginning.

The V-Model is especially useful in complex systems that integrate with multiple third-party systems, ensuring seamless operation.

In conclusion, the V-Model's phased approach with concurrent testing ensures early defect detection, reducing overall project risks.

Transcripts

play00:00

hello everyone welcome again in this

play00:03

software testing tutorial

play00:04

we are going to learn what is v model

play00:08

so we have already understood about the

play00:10

waterfall model in the previous tutorial

play00:12

of a software development life cycle so

play00:15

there is a waterfall model

play00:17

that teams used to follow and because of

play00:19

the disadvantages that we have discussed

play00:21

in the waterfall model

play00:23

the model got evolved so the major

play00:25

disadvantage in waterfall model was

play00:28

around the delay in the feedback right

play00:31

or the testing

play00:32

phase was delayed a lot in that

play00:35

particular waterfall approach

play00:37

so if you haven't watched the previous

play00:38

tutorial please go ahead and watch it

play00:40

first before you come to the v

play00:42

model because both of them are

play00:43

interrelated and

play00:45

v model is a improvement over the

play00:48

issues that were there in the waterfall

play00:50

model so you need to understand

play00:51

waterfall model first

play00:53

before you are able to understand what v

play00:55

model is

play00:57

so as you can see on my screen the v

play00:59

model as

play01:00

the name suggests it's in the shape of v

play01:03

rather than the waterfall approach

play01:05

where in all the phases were one after

play01:07

the other v model is bit of an

play01:09

improvement

play01:10

even though there is still the phased

play01:12

approach and there are

play01:14

you know phases after the other

play01:17

one after the other but still there are

play01:19

corresponding

play01:20

phases of testing for each of the

play01:24

development phase or the requirement

play01:26

phase so let's understand

play01:27

what exactly v model is and how software

play01:30

development happens

play01:32

when the team is following the v model

play01:35

so the first phase of v model is the

play01:37

requirements gathering phase which is

play01:38

very similar to sdlc or you know

play01:40

waterfall approach so requirements

play01:42

is the first source of truth for any

play01:45

software development team to start

play01:47

working on any of the coding uh

play01:50

or development activity so once

play01:53

the requirements are available to

play01:55

requirement gathering so in that

play01:57

particular phase

play01:58

in the software in the waterfall

play02:00

approach there was no test involvement

play02:02

at that particular phase so once the

play02:04

requirements got

play02:05

frozen only then the development

play02:08

activity or the design

play02:09

activity started in the waterfall

play02:11

approach now because of that

play02:12

the defects that could have been found

play02:15

in the requirement phase

play02:17

itself were delayed until testing or the

play02:21

deployment happened

play02:22

to overcome that v model was introduced

play02:26

and in this

play02:27

if you see there is a corresponding

play02:29

involvement

play02:30

of test team so as soon as the

play02:34

requirements

play02:35

are available testing team starts

play02:38

writing the user acceptance

play02:43

tests okay

play02:47

so what the testing team does is they go

play02:50

through the requirement

play02:51

and based on those requirements they

play02:53

start documenting

play02:55

their test cases or basically at this

play02:57

level they can

play02:58

understand what the high level

play03:00

requirements are and based on that

play03:02

what customer is looking for and when

play03:05

they understand those requirements

play03:07

they go through those requirements they

play03:09

are involved into the discussion

play03:11

with the team with the customer then

play03:14

they can

play03:15

write the user acceptance test cases and

play03:18

when they are

play03:19

writing the test cases they come up with

play03:22

any of the gaps

play03:23

that might be there in the requirement

play03:25

gathering phase

play03:26

so that's the um you know first

play03:30

involvement or the first within the

play03:32

first phase itself the testing team

play03:34

is involved in writing the user

play03:36

acceptance test cases

play03:38

now once the requirement are being

play03:39

gathered and if you can see here after

play03:41

the requirement phase then the system

play03:43

analysis and design starts

play03:45

so when we say system analysis in the v

play03:47

model it's basically

play03:49

say for example you are developing a

play03:51

banking

play03:53

application for for

play03:56

distributing the cards for example right

play03:58

so when you say uh the credit card or

play04:00

debit card it's

play04:02

it involves the complete life cycle and

play04:04

there are different number of systems

play04:06

that are involved so you will have a

play04:08

system to

play04:09

um you know to originate the card or

play04:13

a person or customer will come to

play04:14

originate or apply for the card right

play04:17

once they apply for the card then that

play04:21

card application goes into the backend

play04:24

system where there will be business

play04:25

process and the processing will happen

play04:27

once the processing is happen then the

play04:30

card goes for

play04:31

embossing so the physical card right so

play04:33

that goes to any third party or third

play04:35

system

play04:35

so those systems are usually not

play04:38

maintained

play04:38

by the banks right so bank uh

play04:42

has the tie up with other system other

play04:44

companies who do the card embossing or

play04:45

create the physical cards

play04:47

and send those similar is the case with

play04:50

the uh

play04:50

you know all those letter generation and

play04:52

all so if that is the case there are

play04:54

different

play04:55

you know companies involved in systems

play04:57

involved to

play04:58

produce the physical card to produce the

play05:00

letters etc

play05:01

then that understanding comes into the

play05:04

system

play05:04

analysis so how that particular software

play05:08

will interact with other underlying

play05:10

system

play05:11

that happens in the system analysis and

play05:13

design and once that system analysis

play05:16

is in progress testers can at the same

play05:20

time

play05:21

write their system test cases

play05:26

all right so what system test cases will

play05:28

do is

play05:29

they will test or those test cases will

play05:32

target

play05:33

the end-to-end system right so they'll

play05:35

target

play05:36

when all the systems different systems

play05:39

third-party systems are integrated

play05:41

and how the overall testing will be

play05:43

performed

play05:44

in the end-to-end integrated system be

play05:47

do you know like third-party system or

play05:48

internal other systems that are

play05:50

you know available or involved in that

play05:52

particular software

play05:54

development right the next phase is

play05:57

basically the global design

play06:00

when you say global design so now you

play06:02

have understood about the system test

play06:03

cases

play06:04

system test cases will have integration

play06:06

with other systems as well

play06:08

right but most of the time when you talk

play06:11

about the actual core development it's

play06:13

basically

play06:13

you are developing an application and

play06:15

then that application might

play06:17

integrate with other systems okay so

play06:19

that's what we do in system analysis and

play06:21

design but the global design is

play06:23

how you will design that core

play06:25

application

play06:26

okay so if i say launching a new card

play06:30

so what all is required in the core

play06:32

system of the bank

play06:33

to launch a new card a new credit card

play06:36

so that goes into the global design

play06:38

wherein

play06:39

the tech architects will understand what

play06:42

all is required in the core system to be

play06:44

changed and implemented

play06:46

right so that is what happens in the

play06:48

high level design

play06:49

and in the system design and analysis

play06:51

system analysis and design

play06:53

along with that you know that software

play06:56

or the core design

play06:58

they think about how that system the new

play07:00

application they are building will

play07:02

integrate with third-party systems or

play07:04

other systems that's what happened in

play07:06

system analysis

play07:07

phase so in the global design phase once

play07:10

the global design is ready how the

play07:11

system will be

play07:12

implemented or the software will be

play07:14

implemented in that particular

play07:16

you know that application uh

play07:19

then in that phase itself what

play07:22

testing team do is they write their

play07:25

integration test cases right so they

play07:29

write integration

play07:31

tests all right so now with this

play07:35

phase the test theme is also involved to

play07:37

write

play07:38

whenever the design is happening they

play07:39

write the integration test cases

play07:41

and once the actual code is ready

play07:44

they'll execute

play07:45

those test cases similarly when it comes

play07:47

to the detailed design or the module

play07:49

level design so when we

play07:50

have the high level design and then the

play07:53

developers will need to

play07:55

develop small modules to make it you

play07:57

know like the overall software

play07:59

so they won't develop everything all at

play08:00

once so once the

play08:02

software design is there they'll break

play08:04

it down into smaller modules and then

play08:06

team will start developing those modules

play08:08

or developers will start

play08:10

developing those modules that is what

play08:13

happens in the detail design or module

play08:15

level design

play08:16

so model level design during the module

play08:18

level design the

play08:19

testers will go through the module level

play08:21

design and

play08:22

they will write their unit tests right

play08:27

so you need tests so usually most of the

play08:30

time you will see unit tests

play08:32

are written by the development team but

play08:35

there might be possibility that if you

play08:37

are a white box tester

play08:38

you might be required to write the unit

play08:40

test cases if you are a tester

play08:42

or white box tester in the team right

play08:47

so this is what happens in the detailed

play08:50

design or the module

play08:52

design so unit test cases are being

play08:54

written

play08:55

for the unit test phase now once all

play08:58

these design

play08:58

phases are complete then comes the

play09:00

coding phase so

play09:02

once the design is ready or the low

play09:04

level design is ready

play09:05

then the developers will start coding

play09:09

for those smaller modules and once those

play09:11

modules

play09:12

are ready then the test team because

play09:15

they have already written the test cases

play09:17

through

play09:17

going through the documentation they

play09:19

will start testing

play09:20

or doing the unit test right so once the

play09:23

code is ready

play09:24

the execution will start so the actual

play09:26

execution will

play09:27

happen the application will be launched

play09:29

so in the unit test case there will be

play09:31

tools used

play09:32

to do the unit test and if

play09:35

it is one done by developers then

play09:38

they'll do it otherwise if you're a

play09:39

white box tester you will actually

play09:40

execute the code whatever

play09:42

developers have coded for those modules

play09:45

and you will run the unit testing

play09:47

once couple of modules are ready and

play09:50

they are integrated okay so couple of

play09:52

modules in the application are ready

play09:54

and they are integrated say for example

play09:57

um in the cards uh so we are trying to

play10:00

launch a new card right so

play10:02

so there'll be couple of modules so

play10:04

apply

play10:05

card right so apply card

play10:08

and even in the apply card there could

play10:10

be you know apply card

play10:12

uh with minimal details so say for

play10:15

example minimal

play10:18

customer details

play10:21

all right so say for example this is

play10:23

considered as one module so what

play10:26

you know you will do is in the unit test

play10:28

this particular module

play10:29

you will have a test case which will

play10:34

have the minimal details into that

play10:36

particular module

play10:37

and as part of the unit test they will

play10:39

test this

play10:40

module only okay similarly when there

play10:43

are couple of modules

play10:45

ready so apply card is ready and then

play10:49

this apply card module once the card is

play10:51

applied then the card details need to

play10:53

save into the database

play10:54

right so this could be another module

play10:57

where there are there is some work that

play10:58

has been done

play10:59

and little bit integration between the

play11:02

front-end and back-end db

play11:03

has been done so if these two modules

play11:06

are integrated that's

play11:07

what happens in the integration testing

play11:09

so there are a couple of modules that

play11:11

have been

play11:11

worked upon if they are integrated then

play11:14

integration testing

play11:15

starts okay so this is what the testing

play11:18

team will do

play11:19

in if couple of modules are integrated

play11:22

they will start integration testing

play11:24

once all the modules are completed

play11:26

integration testing has been completed

play11:29

then they'll target at the system level

play11:31

so the whole

play11:32

software has been developed now how that

play11:35

software

play11:36

or application is integrated with other

play11:38

third-party systems or

play11:39

other systems that what happens in the

play11:42

system testing

play11:43

so the testing because they have already

play11:45

written system test cases they'll

play11:46

start executing system testing or

play11:49

executing those test cases

play11:51

once system testing is passed then

play11:54

user acceptance testing which is mostly

play11:57

done by

play11:58

people from the business or you know

play12:00

customers involvement

play12:02

which targets about whatever has been

play12:05

built

play12:06

in the system whether that is fit for

play12:10

use or that meets the customer

play12:12

requirement so that's

play12:13

what is done into the user acceptance

play12:16

testing

play12:16

and because user acceptance test cases

play12:19

have been written during the

play12:20

requirements phase

play12:21

then user acceptance testing can

play12:25

use the same test cases to execute the

play12:27

test in the user acceptance testing

play12:29

phase right so this is a brief

play12:33

introduction of the model

play12:36

and how we model will be advantages

play12:40

as compared to the waterfall approach

play12:42

that we have seen so waterfall approach

play12:44

the disadvantage was the testing

play12:46

involvement was very late

play12:47

and in order to overcome that the v

play12:51

model was introduced and testing team

play12:53

was

play12:53

introduced in every phase of the

play12:56

development life cycle

play12:57

and because of that lot of defects were

play13:00

identified early in the life cycle so

play13:03

because testing team is involved in

play13:05

every phase

play13:06

so they can provide the feedback or

play13:08

inputs for

play13:10

the defects in each and every phase

play13:12

rather than just waiting for the testing

play13:14

at

play13:14

one particular stage of software

play13:16

development life cycle

play13:18

all right so um that's all about

play13:22

the v model in his dlc or um software

play13:25

development life cycle

play13:26

hope this was helpful um in the next

play13:29

tutorial i'll talk about

play13:31

the iterative development model so

play13:33

that's all for this tutorial

play13:35

please do share and subscribe and thank

play13:37

you very much for watching

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
V-ModelWaterfall ModelSoftware TestingSDLCUser Acceptance TestingIntegration TestingSystem DesignDefect DetectionEarly TestingSoftware Development
هل تحتاج إلى تلخيص باللغة الإنجليزية؟