SE Final Exam Segment-6
Shaharear Emon C213079
Software Validation and Verification
alidation:
V
Validation is the process of evaluating the final product to check whether
the software meets the customer's expectations and requirements. It is a
dynamic mechanism of validating and testing the actual product.
valuation Items:Plans, Requirement Specs, DesignSpecs, Code, Test
E
Cases.
Methods of Validation :
Dynamic Testing
• Testing
Verification:
erification is a static practice of verifying documents, design, code, and
V
programs. It includes all the activities associated with producing
high-quality software: inspection, design analysis, and specification
analysis. It is a relatively objective process.
Evaluation Items:The actual product/software.
ethods of Verification:
M
Static Testing
• Walkthrough
• Inspection
• Review
Differences between Verification and Validation
What is Software Testing?
oftware Testing is the process of identifying the correctness and quality
S
of software programs.
he purpose is to check whether the software satisfies the specific
T
requirements, needs, and expectations of the customer. In other words,
testing is executing a system or application in order to find software bugs,
defects, or errors. The job of testing is to find out the reasons for
application failures so that they can be corrected according to
requirements.
Ways of Software Testing
• Manual Testing: Test Cases executed manually.
• Automation Testing: Testing performed with the help of automation
tools.
xample:Car manufacturer tests the car for maximumspeed, fuel
E
efficiency and safety from crash.These test later become the part of
advertising strategy for car sales.
Shaharear Emon C213079
Roles And Responsibilities Of A Tester:
any people are not completely aware of the roles and responsibilities of
M
a software tester. Below, you’ll learn a great deal more about these roles
and responsibilities.
• Analyzing the SRS, System Requirement Specifications, and
understanding the necessities
• Determining an estimation for the testing
• Preparing or understanding the test plan
• Putting together test cases
• Assembling test data
• Testing and finding defects in the software
• Reporting the defects immediately to make it easier for the developer to
fix.
• Testing again after the initial problem has been fixed
• Carrying out regression testing
• Offering suggestions for improving SDLC processes
• Delivering support to customers testing the software
• Partaking in the implementation of the software
• Providing support after the implementation is completed
he importance of software testing is immense. This is why more and
T
more companies will continue to spend more money on software testing.
In fact, it could soon become of the greatest expense that any technology
company will incur. Nevertheless, it is also true that the costs will be well
worth it in the long run.
Testing Objectives
➢
Testing is a process of executing a program with the intent of finding
errors.
➢ A good test case is one that has a high probability of finding an
as-yet-undiscovered error.
➢ A successful test is one that uncovers an as-yet-undiscovered error.
➢ Testing cannot show the absence of defects, it can only show that
software errors are present.
Testing Process
esting is a complete process. For testing, we need two types of inputs.
T
Firstis software configuration. It includes softwarerequirement
specification, design specifications and source code of program.
Secondis test configuration. It is basically testplan and procedure.
How to design test case. Sp’22
e now know, test cases are integral part of testing. The most desired or
W
obvious expectation from a test case is that it should be able to find most
errors with the least amount of time and effort. A software product can be
tested in two ways
.In the first approach only the overall functioningof the product is
A
tested. Inputs are given and outputs are checked. This approach is called
black box testing. It does not care about the internal functioning of the
produc
. The other approach is called white box testing.Here the internal
B
functioning of the product is tested. Each procedure is tested for its
accuracy. It is more intensive than black box testing. But for the overall
product both these techniques are crucial. There should be sufficient
number of tests in both categories to test the overall product.
Testing
esting is a process of executing a program with the intent of finding
T
errors.
It is a crucial part of software quality assurance. • In industry it is not
unusual for testing to occupy between 30% to 49% of the project budget.
Types of testing
There are two basic types of testing
Shaharear Emon C213079
Black-box testing: [By End Users]
lack-box testing (also known as functional testing) treats software under
B
test as a black-box without knowing its internals. Tests are using software
interfaces and trying to ensure that they work as expected.
It provides external perspective of the software under test.
Some of the advantages of black-box testing are:
1. Efficient for large segments of code.
2. Code access is not required.
3. Separation between user’s and developer’s perspectives.
ome of the disadvantages of black-box testing are:
S
1. Limited coverage since only a fraction of test scenarios is performed
2. Inefficient testing due to tester’s luck of knowledge about software
internals.
3. Blind coverage since tester has limited knowledge about the
application.
White-box testing [By Developers]
hite-box testing (also known as clear box testing,glass box testing,
W
transparent box testing, and structural testing) looksinside the
software that is being tested and uses that knowledge as part of the testing
process White-box testing requires internal knowledge of the system and
programming skills. It provides internal perspective of the software under
test.
Some of theadvantagesofwhite-box testingare:
1. Efficient in finding errors and problems.
2. Required knowledge of internals of the software under test is beneficial
for thorough testing
3. Allows finding hidden errors.
4. Programmers introspection.
. Helps optimizing the code.
5
6. Due to required internal knowledge of the software, maximum
coverage is obtained.
ome of thedisadvantagesofwhite-box testingare:1. Might not find
S
unimplemented or missing features. 2. Requires high level knowledge of
internals of the software under test. 3. Requires code access.
Define Stress Testing with an example. Sp’22
tress testing (sometimes called torture testing) is a form of deliberately
S
intense or thorough testing used to determine the stability of a given
system or entity. The term "stress" may have a more specific meaning in
certain industries, such as material sciences, and therefore stress testing
may sometimes have a technical meaning – one example is in fatigue
testing for materials.
xample of Stress testingis casually shut down andrestart ports of a
E
large network. A web server may be stress tested using scripts, bots, and
various denial of service tools to observe the performance of a web site
during peak loads. These attacks generally are under an hour long, or until
a limit in the amount of data that the web server can tolerate is found.
ecovery Testing- Recovery testing is a system testthat forces the
R
software to fail in a variety of ways and verifies that recovery is properly
performed. It the recovery is automated (performed by system itself),
re-initialization mechanisms, data recovery, and restart are each evaluated
for correctness.
ecurity Testing- Security testing attempts to verifythat protection
S
mechanism built into a system will protect it from unauthorized
penetration. During security testing, the tester plays the role of the
individual who desires to penetrate the system. The tester may attack the
system with custom software designed to break down any defences that
ave been constructed; may overwhelm the system, thereby denying
h
service to others; may purposely cause system errors, hoping to find the
key to system entry; and so on.
egression Testing: Regression testing should alwaysbe carried out after
R
flaws and bugs have been corrected. This type of testing ensures that
previous fixes were adequate and that they did not cause any further
problem. Regression testing is performed to find out whether the updates
or changes had caused new defects in the existing functions.
Validation testing:
alidation testing is the process of assessing a new software product to
V
ensure that its performance matches consumer needs. Product development
teams might perform validation testing to learn about the integrity of the
product itself and its performance in different environments.
Shaharear Emon C213079
Why is validation testing important?
oftware validation can help product development teams ensure their
S
product can satisfy customer needs and expectations. Validation testing
can also help software developers identify and fix coding bugs or address
other areas of improvement before launching the product.
Alpha Test
lpha testing isthe first end-to-end testing of aproduct to ensure it meets
A
the business requirements and functions correctly.
**Customer is taken developer’s site and asked to use the software with
*
developer watching and recording problems any errors
Beta testing
eta testing isan opportunity for real users to usea product in a
B
production environment to uncover any bugs or issues before a general
release.Beta testing is the final round of testingbefore releasing a product
to a wide audience.
• Number of customers use the software on their sites
• Developer is not present
• Customer records problems
Shaharear Emon C213079
Top down and bottom up approach of software testing
op down Testing: In this approach testing is conductedfrom main
T
module to sub module. ifthe sub module is not developed a temporary
program called STUB is used for simulate the sub module.
Advantages:
-Advantageous if major flaws occur toward the top of the program.
-Once the I/O functions are added, representation of test cases is easier.
-Early skeletal Program allows demonstrations and boosts morale.
isadvantages:
D
- Stub modules must be produced.
- Stub Modules are often more complicated than they first appear to be.
- Before the I/O functions are added, representation of test cases in stubs
can be difficult.
- Test conditions may be impossible, or very difficult, to create.
- Observation of test output is more difficult.
ottom up testing:In this approach testing is conductedfrom sub module
B
to main module, ifthe main module is not developed a temporary program
called DRIVERS is used to simulate the main module.
Advantages:- Advantageous if major flaws occur towardthe bottom of
the program. - Test conditions are easier to create. - Observation of test
results is easier.
isadvantages:
D
- Driver Modules must be produced. The program as an entity does not
exist until the last module is added.
Example: Consider the following flow graph
Shaharear Emon C213079