The
V-Model is a also applicable to
hardware development) which can be presumed to be the extension of the waterfall model. Instead of moving down in a linear way, the
process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships
between each phase of the development life cycle and its associated phase of testing. The horizontal and vertical axes represents
time or project completeness (left-to-right) and level of abstraction
(coarsest-grain abstraction uppermost), respectively.
Verification
Phases
Requirements Analysis
In
the Requirements analysis phase, the requirements of the proposed system are collected by
analyzing the needs of the user(s). This phase is concerned
about establishing what the ideal system has to perform. However it does not
determine how the software will be designed or built. Usually, the users are
interviewed and a document called the user requirements document is generated.
The
user requirements document will typically describe the system’s functional,
physical, interface, performance, data, security requirements etc as expected
by the user. It is one which the business analysts use to communicate their
understanding of the system back to the users. The users carefully review this
document as this document would serve as the guideline for the system designers
in the system design phase. The user acceptance tests are designed in this
phase. See also Functional requirements. this is parallel
processing
System
Design
Systems design is the phase where system
engineers analyze and understand the business of the proposed system by
studying the user requirements document. They figure out possibilities and
techniques by which the user requirements can be implemented. If any of the
requirements are not feasible, the user is informed of the issue. A resolution
is found and the user requirement document is edited accordingly.
The
software specification document which serves as a blueprint for the development
phase is generated. This document contains the general system organization,
menu structures, data structures etc. It may also hold
example business scenarios, sample windows, reports for the better
understanding. Other technical documentation like entity diagrams, data
dictionary will also be produced in this phase. The documents for system
testing are prepared in this phase.
Architecture Design
The
phase of the design of computer architecture and software architecture can also be referred to as
high-level design. The baseline in selecting the architecture is that it should
realize all which typically consists of the list of modules, brief
functionality of each module, their interface relationships, dependencies, database tables, architecture diagrams,
technology details etc. The integration testing design is carried out in the
particular phase.
Module
Design
The
module design phase can also be referred
to as low-level design. The designed system is broken up into smaller units or
modules and each of them is explained so that the programmer can start coding
directly. The low level design document or program specifications will contain
a detailed functional logic of the module, in pseudo code:- Database tables, with all
elements, including their type and size
- All interface details with
complete API references
- All dependency issues
- Error message listings
- Complete input and outputs for
a module.
The
unit test design is developed in this stage.
Validation Phases
Unit
Testing
In
computer programming, unit testing is a method by which individual units of
source code are tested to determine if they are fit for use. A unit is the
smallest testable part of an application. In procedural programming a unit may
be an individual function or procedure. Unit tests are created by programmers
or occasionally by white box testers. The purpose is to verify the internal
logic code by testing every possible branch within the function, also known as
test coverage. Static analysis tools are used to facilitate in this process,
where variations of input data are passed to the function to test every
possible case of execution.
Integration Testing
In integration testing the separate modules will
be tested together to expose faults in the interfaces and in the interaction
between integrated components. Testing is usually black box as the code is not directly checked for
errors.
System
Testing
System testing will compare the system
specifications against the actual system. After the integration test is
completed, the next test level is the system test. System testing checks if the
integrated product meets the specified requirements. Why is this still necessary
after the component and integration tests? The reasons for this are as follows:
Reasons
for system test
a)
In the lower test levels, the testing was done against technical
specifications, i.e., from the technical perspective of the software producer.
The system test, though, looks at the system from the perspective of the
customer and the future user. The testers validate whether the requirements are
completely and appropriately met.
Example: The customer (who has ordered and
paid for the system) and the user (who uses the system) can be different groups of people or organizations with their
own specific interests and requirements of the system.
b)
Many functions and system characteristics result from the interaction of all
system components, consequently, they are only visible on the level of the
entire system and can only be observed and tested there.
User
Acceptance Testing
Acceptance testing is the phase of testing
used to determine whether a system satisfies the requirements specified in the
requirements analysis phase. The acceptance test design is derived from the
requirements document. The acceptance test phase is the phase used by the
customer to determine whether to accept the system or not. The following
description is unacceptable in and overview article
Acceptance Testing:
- To determine whether a system satisfies its acceptance criteria or not.
- To enable the customer to determine whether to accept the system or not.
- To test the software in the "real world" by the intended audience.
Purpose of acceptance Testing:
- To verify the system or changes according to the original needs.
Acceptance Testing:
- To determine whether a system satisfies its acceptance criteria or not.
- To enable the customer to determine whether to accept the system or not.
- To test the software in the "real world" by the intended audience.
Purpose of acceptance Testing:
- To verify the system or changes according to the original needs.
Procedures
for conducting the Acceptance Testing:
Define the Acceptance Criteria:
- Functionality requirements.
- Performance requirements.
- Interface quality requirements.
- Overall software quality requirements.
Develop an Acceptance Plan:
- Project description.
- User responsibilities.
- Acceptance description.
- Execute the acceptance test plan.
- To develop
Define the Acceptance Criteria:
- Functionality requirements.
- Performance requirements.
- Interface quality requirements.
- Overall software quality requirements.
Develop an Acceptance Plan:
- Project description.
- User responsibilities.
- Acceptance description.
- Execute the acceptance test plan.
- To develop
No comments:
Post a Comment