0% found this document useful (0 votes)
33 views16 pages

Testing in The Software Life Cycle - Lesson 2

Uploaded by

Trap Trap
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views16 pages

Testing in The Software Life Cycle - Lesson 2

Uploaded by

Trap Trap
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Software

Development
Lifecycle
Software Development Models

Software Development Models are different processes or methodologies that are used for developing
software projects. These models specify the different stages of the development process and the
order in which they are carried out. The selection of the model has a high impact on the testing that is
carried out, as it will define the what, where, and when of the planned testing, influence regression
testing, and largely determine which test techniques to use.

The choice of which model to use will depend on the specific needs and requirements of the project,
as well as the preferences and expertise of the development team
(SDLC) approaches
1. Waterfall Model: This is a linear and sequential approach where each phase of the SDLC
(requirements, design, implementation, testing, deployment, and maintenance) is completed before
moving on to the next phase. It is often used for projects with well-defined requirements and stable
environments.

2. Agile Model: Agile methodologies, such as Scrum and Kanban, emphasize iterative and
incremental development. The project is divided into small iterations called sprints, with frequent
feedback and adaptation. Agile approaches prioritize flexibility, collaboration, and responsiveness to
change.

3. V-Model: The V-Model is an extension of the waterfall model, where each phase of the
development process is associated with a corresponding testing phase. It emphasizes the importance
of early test planning and verification. The V-Model ensures that each development phase has a
corresponding test phase, which helps in maintaining quality.
Software Development Models
Waterfall model

Through all development stages (analysis, design, coding, testing, deployment), the process moves
in a cascade mode. Each stage has concrete deliverables and is strictly documented. The next stage
cannot start before the previous one is fully completed. Thus, for example, software requirements
cannot be re-evaluated further in development. There is also no ability to see and try software until
the last development stage is finished, which results in high project risks and unpredictable project
results. Testing is often rushed, and errors are costly to fix.

Use cases:

● Simple small or mid-sized projects with clearly defined and unchanging requirements (small
company website development).
● Projects with the need for stricter control, predictable budget and timelines (e.g., governmental
projects).
● Projects that must adhere to multiple rules and regulations (healthcare projects).
● Projects where a well-known technology stack and tools are used.
Software Development Models
Agile model

The rest of the SDLC models we’ve chosen fall under the umbrella of Agile. Nowadays, more than
70% of organizations employ this or that Agile approach in their IT projects. In general, at the heart of
Agile are iterative development, intensive communication, and early customer feedback.

Each Agile iteration usually takes several weeks and delivers a complete working software version.
The models of this group put more focus on delivering a functioning part of the application quickly.
They pay less attention to detailed software documentation (detailed requirement specification,
detailed architecture description), and more to software testing activities. This fosters quick
development but considerably prolongs software transfer to the support team as well as makes its
maintenance more complicated as more time is spent to find the problem when there's no detailed
software description.

Agile is about working in close collaboration both across the team and with the customers. At the end
of each iteration, stakeholders review the development progress and re-evaluate the priority of tasks
for the future iteration to increase the return on investment (ROI) and ensure alignment with user
needs and business goals.
Software Development Models
Agile model

Accordingly, frequent releases are characteristic to the Agile models. They also allow for continuous
software improvement with easy fixes and changes, quick updates, and feature addition, and help to
deliver applications that satisfy users’ needs better. However, the lack of detailed planning and openness
to changes make it difficult to accurately estimate budget, time and people required for the project.

https://agilemanifesto.org/

Use cases:

● Practically any startup initiatives, when end users’ early feedback is required.
● Most of mid-sized projects in custom software development where business requirements cannot
be confidently translated to detailed software requirements.
● Large projects that are easy to divide into small functional parts and can be developed
incrementally over each iteration.
● Agile comes in different flavors. Today, its most common subtypes are Scrum, Extreme
Programming, and Kanban
Software Development Models
Agile model - Scrum

Scrum is probably the most popular


Agile model. The iterations (‘sprints’)
are usually 2-4 weeks long and they
are preceded with thorough planning
and previous sprint assessment. No
changes are allowed after the sprint
activities have been defined.
Software Development Models
Agile model - Extreme Programming (XP)

With Extreme Programming (XP), a typical


iteration lasts 1-2 weeks. The model allows
changes to be introduced even after the
iteration’s launch if the team hasn’t started to
work with the relevant software piece yet. Such
flexibility significantly complicates the delivery of
quality software. To mitigate the problem, XP
requires the use of pair programming, test-driven
development and test automation, continuous
integration (CI), small releases, simple software
design and prescribes to follow the coding
standards.
Software Development Models
Agile model - Kanban

As for Kanban, its key distinguishing feature is the


absence of pronounced iterations. If used, they are kept
extremely short (‘daily sprints’). Instead, the emphasis is
placed on plan visualization. The team uses the Kanban
Board tool that provides a clear representation of all
project activities, their number, responsible persons, and
progress. Such increased transparency helps to estimate
the most urgent tasks more accurately. Also, the model
has no separate planning stage, so a new change request
can be introduced at any time. Communication with the
customer is ongoing, they can check the work results
whenever they like, and the meetings with the project team
can happen even daily. Due to its nature, the model is
frequently used in projects on software support and
evolution.
Software Development Models
V-model

The V-model is a software development model that follows a sequential design process, similar to the waterfall model. It has
a testing phase parallel to each development phase, which makes it known as the Validation or Verification Model. The V-
model contains Verification phases on one side of the Validation phases on the other side. It should be used for small to
medium-sized projects where requirements are clearly defined and fixed. It works well for small projects where requirements
are easily understood.
The V-model has different phases of Verification Phase and Validation Phase. Verification phase has various stages,
including business requirement analysis, system design, architecture design, module design, and coding phase. Validation
phase has stages like unit testing, integration testing, system testing, and acceptance testing. Testing starts in early stages of
product development, which avoids downward flow of defects and helps to find the defects in the early stages.
The V-model has advantages over the waterfall model, which include proactive defect tracking, and testing methods like
planning, test designing happens well before coding. This saves a lot of time, hence a higher chance of success over the
waterfall model.
Applying the V-model’s clearly defined steps to small increments of software development allows for testing earlier in the
process. Catching bugs or errors as early as possible increases the speed of the development effort, cuts costs, and
improves overall quality. The approach dovetails well with the continuous integration and continuous deployment
methodology.
The V-model is a style of software development that splits the process into three parts: design, implementation, and
integration and qualification testing. The letter V is a symbolic representation of the development flow. In designing software
for complex systems, developers look for flexibility, speed, and the ability to make improvements to the code.
Software Development Models
Test Levels

There are mainly four Levels of Testing in


software testing :

● Unit Testing : checks if software


components are fulfilling functionalities or
not.
● Integration Testing : checks the data flow
from one module to other modules.
● System Testing : evaluates both functional
and non-functional needs for the testing.
● Acceptance Testing : checks the
requirements of a specification or contract
are met as per its delivery.
Software Development Models
Test Levels

Unit testing:

A Unit is a smallest testable portion of system or application which can be compiled, liked,
loaded, and executed. This kind of testing helps to test each module separately.

The aim is to test each part of the software by separating it. It checks that component are
fulfilling functionalities or not. This kind of testing is performed by developers.

Integration testing:

Integration means combining. For Example, In this testing phase, different software modules are
combined and tested as a group to make sure that integrated system is ready for system testing.

Integrating testing checks the data flow from one module to other modules. This kind of testing is
performed by testers.
Software Development Models
Test Levels

System Testing

System testing is performed on a complete, integrated system. It allows checking system’s


compliance as per the requirements. It tests the overall interaction of components. It involves
load, performance, reliability and security testing.

System testing most often the final test to verify that the system meets the specification. It
evaluates both functional and non-functional need for the testing.

Acceptance testing:

Acceptance testing is a test conducted to find if the requirements of a specification or contract


are met as per its delivery. Acceptance testing is basically done by the user or customer.
However, other stockholders can be involved in this process.
Software Development Models
Test types - What is a Software Testing Type?

Software Testing Type is a classification of different testing activities into categories, each
having, a defined test objective, test strategy, and test deliverables. The goal of having a
testing type is to validate the Application Under Test (AUT) for the defined Test Objective.

For instance, the goal of Accessibility testing is to validate the AUT to be accessible by
disabled people. So, if your Software solution must be disabled friendly, you check it against
Accessibility Test Cases.

You might also like