Nothing Special   »   [go: up one dir, main page]

Question Software Varification and Validation

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 16

Question : what is software verification and validation

Ans: Software Verification And Validation


Software validation or, more generally, verification and validation
(V&V) is intended to show that a system both conforms to its
specification and that it meets the expectations of the customer.

Validation may also involve checking processes, such as


inspections or reviews at each stage of the software process, from
defining the requirements till the software development.

Testing, where the system is executed using simulated test data, is


an important validation technique.

The stages of testing

Testing has three main stages:


1. Development (or component) testing: The components
making up the system are tested by the people developing the
system. Each component is tested independently, without other
system components.
2. System testing: System components are integrated to create
a complete system. This process is concerned with finding
errors that result from interactions between components. It is
also concerned with showing that the system meets its
functional and non-functional requirements.
3. Acceptance testing: This is the final stage in the testing
process before the system is accepted for operational use. The
system is tested with data supplied by the system customer
rather than using simulated test data. It may reveal errors in
the system requirements definition.

Components may be simple entities such as functions or object


classes, or may be coherent groupings of these entities. Test
automation tools, such as JUnit are commonly used to run
component tests.

Normally, component development and testing process are


interleaved. Programmers tend o make up their own test data and
incrementally test the code as it’s developed.

In some other cases, tests are developed along with the


requirements before the development starts. This helps the testers
and developers to understand the requirements and reveals
requirements problems.

When a plan-driven software process is used, testing is driven by a


set of test plans, which created from the system specification and
design.
How the test plans are the link between each phase of the
development life cycle and its associated phase of testing can be
demonstrated by a software process model called “V-model”.

Testing phases in a plan-driven software process


Question:Describe the importance of software Engineering? What should be steps
taken under the process of developing a software system.
Answer:

Software Engineering
Software Engineering is a part of computer science in which several kind of method,
thoughts and techniques used for getting the high quality software and computer
programs.
1. Minimum cost
2. On given time
3. Continuous production
We can judge the usefulness of the software Engineering with the importance of its
attributes. Both are used for the same manner. The basic target of software
Engineering is to provide the high quality software, which can be delivered.
1. On given time,
2. Within budget &
3. That fulfills the need.
Thus we can say that this is the best way or programs to get the following points:
1. To provide the best output of software system.
2. To make easy to use the software systems and develop them.
3. To improve the rate of production.
4. To maintain the budget for development of Software system.
5. Job satisfaction of software engineering.
It is necessary to produce a high quality software to fulfill the below given points.
1. Consistency
2. Improved quality
3. Minimum cost
4. Within time
5. Reliability &
6. Fulfill the need of user

Steps used while developing a software system


To achieve consistency, software development process is divided into set of phases.
Various methods, tools & techniques are applied to accomplish each phases. The
process of developing a software system is divided in two parts to bring the
consistency in this process. To complete the software developing process several kind
of methods, Techniques, used. Below given steps are used to develop a software
system.

1. Statement of problem & system study - The first step of system development process is
started with statement of problem & system study. In this step, we get the more knowledge
from everywhere on computer and manually. With the help of this knowledge we find out
the errors at the present time software system which is need to change for improvement.
Here several important points are given on this stage which is:
1. Full knowledge of problems and errors.
2. Ability to improve
3. Find the target for achieving.
4. Find out the benefits which should be in new software.
5. Find the area of plan which is affected after that change.
If we study the problems then it is necessary to think about the other solutions of the
problem and the cost of it which should be in the budget of the user. For this improvement a
lot of skill and attention required.
2. Study of work ability - On the basis of first steps result we moves for the next step which is
about the study of work ability. In this step we think about the present system and future
system and compared them. The area of comparison is skilled manpower, estimated time
period, and other important things. A study of work ability helps to decide the important
things.
o This plan is in our favor or not.
o We are capable for the required resources or not.
o Think again.
o Many types of work ability checked.
1. Technical work ability -
We have the required technology?
With the available tools can we developed the new system?
Can the future system provide the result as required?
The new system will be more suitable for the user or not it is checked by the expert.
For Example: If a software actual requirement to develop visual basic with oracle at
a backend. But here we use less than 48 processer with 14 bit word length then this
software will not be technically sound. It is concerned about the used technology
and tools which are satisfying the need of the system or not.
2. Social work ability - This is the study of user behavior that people like or dislike the
new software.
3. Economic work ability - This factor is determined that new software benefits and
savings is more in the comparison of old software.
4. Legal work abilit - Legal work ability determined that the new software is under the
govt. rule or not. According to the result of the work ability study it is analyzed to
reach the following:
Formulation of the different solution planning.
To check the other solution planning & their benefits and compared them.
Find out the best output and annualizes him.
3. Software need analysis and specification - Analysis is a study of following factors which
plays a major role in this step.
a. By the system many kind of activity are performed.
b. Connections between many functions and sub systems.
c. Finally the relationship out of the boundary of system.
Need analysis - The main objective of need analysis is to understand what the user
expectation with this software and collection of data and information about that.
d. Working capacity
e. performance
f. easy to use
g. easy to maintain
During this process several kind of tools and method used .flow chart, collected data,
diagram and etc. are the part of this exercise. After the resolution of all problems and needs
regarding this, information is organized into a software need specification document.
Software need specification - This topic covers the following points:
h. All the document of the user should be arranged in a systematic way,
i. Nature of its interface
j. Need of hardware
k. Base of agreement
l. Moral, legal coordination between client and developer
m. A detailed plan
n. To analyses and confirmation by the customer that it have all quality which is
expected by customer.
o. With the help of software engineers to develop a solution.
4. Software design and specification - During the process of this step need specification
converted in to a base, which is used in programming language. We have two types of
approaches:
1. Traditional Approach - This approach is also divided in two parts which are
First part-
Specific needs of this software is moved out.
Structured analysis is converted in to a shape of software design.
Analysis of many functions, flow chart of data is a part of structured
analyses.
Second part- Architecture design takes place after analysis of structured.
Which components are required.
The general base of the software.
The programs provided by every design.
Interfaces between modules.
Data base and result form of the system.
2. Object oriented design - In this design many kind of object raised in the domain of
problem and relationship between these objects is figured out.
Coding and module testing - Coding phase comes after the software design. Coding is a
process with the help of this we can convert the shape structure in to a programming
language. Every part of the design is a program module. Hare every module checked for
the surety of module that is according to the need.
Integration and system testing - In this phase as a whole system all modules which are
tested jointly according to architectural design. For getting the information that
interconnection concerned to modules are correct or not this step taken by the developer.
Effects of testing helps to get
1. Production of high quality software
2. User more satisfied
3. Cheap cost of maintenance
4. Accuracy
5. Result of surety
This system is tested only for getting the information that it is according to SRS or not. At
the last this test is done in the client presence.
System Implementation - System implementation means providing the information on
client site. We have three types of implementation.
1. Direct conversion
2. Phased conversion
3. Parallel conversion
System Maintenance - This step is required after that when customer use our software and
getting some problems .These problems can be related to website, installation and
operational. Maintenance divided in three parts.
o Corrective maintenance - During the process of software development corrective
fault not found or discovered.
o Perfective maintenance - Under this step functions which are performed by this
software increased according to the need of customer.
o Adaptive maintenance - Transform the software to new operating system,
environments or to a new computer is called Adaptive maintenance.
What is Integration testing? Examples, How
To Do, Types/Approaches, Differences
FacebookLinkedInTwitterEmail

Integration testing tests integration or interfaces between components, interactions to


different parts of the system such as an operating system, file system and hardware or
interfaces between systems. Integration testing is a key aspect of software testing.

It is essential for a software tester to have a good understanding of integration testing


approaches since they will come across it in every project in their software testing
career path.

 Integration Testing in Software Engineering


 Integration Testing Example
 Integration Testing Types or Approaches
 1. Big Bang Integration Testing
 2. Top-down Integration Testing
 3. Bottom up Integration Testing
 4. Incremental Integration Testing
 5. Sandwich Integration Testing
 6. Functional Incremental Testing
 Steps – How to do Integration Testing
 Difference Between – Integration Testing and/vs Unit Testing
o
 Other popular articles:

Integration Testing in Software Engineering


 After integrating two different components together we do the
integration testing. As displayed in the image below when two different
modules ‘Module A’ and ‘Module B’ are integrated then the integration testing
is done.
 Integration testing is done by a specific integration tester or testing team.
 Integration testing follows two approach known as ‘Top Down’ approach and
‘Bottom Up’ approach as shown in the image below:

Integration Testing Example


Let us understand Integration Testing with example. Let us assume that you work for
an IT organization which has been asked to develop an online shopping website for
Camp World, a company that sells camping gear.

After requirements gathering, analysis and design was complete, one developer was
assigned to develop each of the modules below.

1. User registration and Authentication/Login


2. Product Catalogue
3. Shopping Cart
4. Billing
5. Payment gateway integration
6. Shipping and Package Tracking

After each module was assigned to a developer, the developers began coding the
functionality on their individual machines. They deployed their respective modules on
their own machines to see what worked and what didn’t, as they went about
developing the module.
After they completed the development, the developers tested their individual
functionalities as part of their unit testing and found some defects. They fixed
these defects. At this point they felt their modules were complete.

The QA Manager suggested that integration testing should be performed to confirm


that all the modules work together.

When they deployed all of their code in a common machine, they found that the
application did not work as expected since the individual modules did not work well
together. There were bugs like – after logging in, the user’s shopping cart did not
show items they had added earlier, the bill amount did not include shipping cost etc.

In this way, Integration Testing helps us identify, fix issues and ensure that the
application as a whole, works as expected.

Integration Testing Types or Approaches


There are many different types or approaches to integration testing. The most popular
and frequently used approaches are Big Bang Integration Testing, Top Down
Integration Testing, Bottom Up Integration testing and Incremental integration testing.
The choice of the approach depends on various factors like cost, complexity,
criticality of the application etc.

There are many lesser known types of integration testing like distributed services
integration, sandwich integration testing, backbone integration, high frequency
integration, layer integration etc.

Let us take a look at some of the commonly used ones below.

1. Big Bang Integration Testing


In Big Bang integration testing all components or modules are integrated
simultaneously, after which everything is tested as a whole. As per the below image
all the modules from ‘Module 1’ to ‘Module 6’ are integrated simultaneously then the

testing is carried out.

Advantage: Big Bang testing has the advantage that everything is finished before
integration testing starts.

Di
sadvantage: The major disadvantage is that in general it is time consuming and
difficult to trace the cause of failures because of this late integration.

2. Top-down Integration Testing


Testing takes place from top to bottom, following the control flow or architectural
structure (e.g. starting from the GUI or main menu). Components or systems are
substituted by stubs. Below is the diagram of ‘Top down Approach’:

Advantages of Top-Down approach:

 The tested product is very consistent because the integration testing is basically
performed in an environment that almost similar to that of reality
 Stubs can be written with lesser time because when compared to the drivers
then Stubs are simpler to author.

Disadvantages of Top-Down approach:

 Basic functionality is tested at the end of cycle

3. Bottom up Integration Testing


Testing takes place from the bottom of the control flow upwards. Components or
systems are substituted by drivers. Below is the image of ‘Bottom up approach’:
Advantage of Bottom-Up approach:

 In this approach development and testing can be done together so that the
product or application will be efficient and as per the customer specifications.

Disadvantages of Bottom-Up approach:

 We can catch the Key interface defects at the end of cycle


 It is required to create the test drivers for modules at all levels except the top
control

4. Incremental Integration Testing


 Another approach is that all programmers are integrated one by one, and a test
is carried out after each step.
 The incremental integration testing approach has the advantage that the
defects are found early in a smaller assembly when it is relatively easy to detect
the cause.
 A disadvantage is that it can be time-consuming since stubs and drivers have to
be developed and used in the test.
 Within incremental integration testing a range of possibilities exist, partly
depending on the system architecture.

5. Sandwich Integration Testing


Sandwich integration testing is a combination of both top down and bottom up
approaches. It is also called as hybrid integration testing or mixed integration
testing.

In sandwich integration testing, the system is considered to be made up of three


layers.

 A layer in the middle which will be the target of testing


 A layer above the target layer and a layer below the target layer
 Testing begins from the outer layer and converges at the middle layer
 Advantage: The benefit of this approach is that top and bottom layers can be
tested in parallel
 Disadvantage: Extensive testing of the sub-systems is not performed before
the integration

6. Functional Incremental Testing


Integration and testing takes place on the basis of the functions and functionalities, as
documented in the functional specification.

Steps – How to do Integration Testing


 Choose the module or component to be tested based on the strategy or approach
 Unit testing of the component is to be completed for all the features
 Deploy the chosen modules or components together and make initial fixes that
are required to get the integration testing running
 Perform functional testing and test all the use cases for the components chosen
 Perform structural testing and test the components chosen
 Record the results of the above testing activities
 Repeat the above steps until the complete system is fully tested

Difference Between – Integration Testing and/vs Unit


Testing
Unit Testing Integration Testing

Integration testing is done to confirm if the


Unit testing is done to confirm if the unit of
different modules work as expected, when
code works as expected
integrated together

In Integration testing, the components may have


In unit testing, the unit is not dependent on
inter-dependency on each other or external
anything outside the unit being tested
systems

Unit testing is done by developer Integration testing is done by the testing team
In the Software Testing Life Cycle
Integration testing is usually done before system
(STLC), Unit testing is the first test to be
testing and it comes after unit testing.
executed

You might also like