0% found this document useful (0 votes)
21 views

Chapter 6 Types and Levels of Testing

Chapter 6 software testing
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)
21 views

Chapter 6 Types and Levels of Testing

Chapter 6 software testing
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/ 75

CHAPTER 6

Software Testing Levels &Types

1
1
Objective
◦ After successful completion of this chapter, students will be able to
explain

◦ Software testing levels

◦ Software testing types


◦ Functional software testing

◦ Non-functional software testing

2
2
SoftwareTesting Levels
 In order to develop products of superior quality and functionality, testers and developers use
unique and different levels of software testing.

 These levels of testing include several testing methods that are used while conducting
software testing to gain intended results and to fulfill the demands of the stakeholders.

 Each of these levels of testing has a particular purpose that provides extra value to the
software development life cycle.

 The software testing is generally divided into two major categories, which further consist
of numerous testing methods within them
1. Functional testing
2. Non-functional testing 3
3
Types of Software Testing
SoftwareTesting Levels….
Functional Non-Functional

Levels of Software Testing


Unit Testing Performance

Integration Testing Load

System Testing Volume

UAT Stress

Sanity Usability

Regression Scalability

Smoke Portability

Localization Security

Globalization Maintainability

Recoverability

Reliability 4
FunctionalTesting
• Functional testing is a software testing procedure used within software
development wherein the software is tested to check that a software has all
the desired functionality specific to its functional requirements.

• This type of testing is carried out based on the product’s functional


specification document.

• Functional testing is always done against the application’s business


requirement that means it is a black box testing type.

• Moreover, functional testing is conducted on a complete, integrated system to


5
evaluate the system's compliance with its specified requirements.
Functional…
◦ Functional testing includes any user commands, data manipulation, searches, business
processes, user screens, and integrations.

◦ This testing is done using the functional specifications provided by the client or by using the
design specifications like use cases provided by the design team. So, this type of testing is
strictly specific.

◦ For functional testing either manual testing or automation tools can be used but functionality
testing would be easier using manual testing only.
◦ Functional tests tend to answer the question of
◦ Can the user do this? or
◦ Does this particular feature work? 6
Functional testing includes:
◦ Unit testing
◦ Integrity testing
◦ System testing
◦ User Acceptance Testing (UAT)
◦ Sanity testing
◦ Regression testing
◦ Smoke testing
◦ Localization testing
◦ Globalization testing

7
Unit Testing
◦ The first level of functional testing, unit testing, is the most micro-level of
testing performed on a software.

◦ The purpose of this testing is to test individual units of source code together
with associated control data to determine if they are fit for use.

◦ Unit testing is performed by the team of developers before the setup is handed over
to the testing team to formally execute the test cases.

◦ It helps developers to verify internal design and logic of the written code.

◦ One of the biggest benefit of this testing is that it can be implemented every time,
8
a piece of code is modified, allowing issues to be resolved as quickly as possible.
UnitTesting Advantage
◦ Unit testing improves the quality of the code.

◦ With successful unit testing of the modules of a software, we can easily demonstrate the
progress of the developing application.

◦ Mostly, developers who have created the module, do the unit testing on it.

◦ Bugs detected at earlier stage are easier to be fixed.

◦ Unit testing actually saves tester’s time and effort.

◦ Unit testing gives confidence to the developing team.

◦ Modules whose unit testing has been done successfully can be reused by the developer.
9
Unit Testing Limitations
◦ Unit testing can't catch every error in a program.

◦ Unit testing by its nature focuses on a unit of code. Hence, it can't


catch integration errors or broad system level errors.

◦ It is not possible to evaluate all execution paths even in the most


trivial programs.

10
IntegrationTesting
◦ In integration testing, individual software modules are integrated
logically and tested as a group.
◦ A typical software project consists of multiple software modules, coded by
different programmers.
◦ Integration testing focuses on checking data communication among these
modules.
◦ It is also termed as 'I & T' (Integration and Testing), 'String Testing' and
sometimes 'Thread Testing'.

11
Why do Integration Testing?
 Although each software module is unit tested, defects still exist for various reasons like:
 A module in general is designed by an individual software developer whose understanding
and programming logic may differ from other programmers.

 Integration testing becomes necessary to verify the software modules work in unity.

 At the time of module development, there are wide chances of change in requirements by
the clients. These new requirements may not be unit tested and hence system integration
testing becomes necessary.
 Interfaces of the software modules with the database could be erroneous
 External hardware interfaces, if any, could be erroneous
 Inadequate exception handling could cause issues.
12
Approaches of IntegrationTesting
◦ The software industry uses variety of strategies to execute integration
testing, via:
1. Big Bang Approach

2. Incremental Approach- which is further divided into

 Top Down Approach,

 Bottom Up Approach and

 Sandwich Approach - Combination of top down and bottom up approaches

13
Big Bang Approach
◦ Here all components are integrated together at once, and then tested.
◦ In this testing, the individual modules are not integrated until all the modules
are ready.
◦ In this type of testing, some disadvantages might occur like, defects can be
found at the later stage.
◦ It would be difficult to find out whether the defect arouse in interface or in
module.

14
Big Bang…
Advantages:
 Convenient for small systems.

Disadvantages:
 Fault localization is difficult.

 Given the sheer number of interfaces that need to be tested in this approach, some interface
links to be tested could be missed easily.

 Since the integration testing can commence only after "all" the modules are designed, testing team
will have less time for execution in the testing phase.

 Since all modules are tested at once, high risk critical modules are not isolated and tested on
priority.
15
 Peripheral modules which deal with user interfaces are also not isolated and tested on priority.
Incremental Approach
 In this approach, testing is done by joining two or more modules that are logically
related. Then the other related modules are added and tested for the proper
functioning.

 The process continues until all of the modules are joined and tested successfully.

 This process is carried out by using dummy/replica programs called stubs and
drivers. Stubs and drivers do not implement the entire programming logic of the
software module but just simulate data communication with the calling module.
 Stub: Is called by the module under test.
 Driver: Calls the module to be tested.

 Incremental approach in turn is carried out by two different methods:


1. Bottom up
2. Top down
3. Sandwich

16
Bottom up Integration

 In the bottom up strategy, each module at lower levels is tested


with higher modules until all modules are tested.
 It takes help of drivers for testing

17
Bottom up…
Advantages:
 Fault localization is easier.

 No time is wasted waiting for all modules to be developed unlike


big-bang approach

Disadvantages:
 Critical modules (at the top level of software architecture) which
control the flow of application are tested last and may be prone to
defects.
 Early prototype is not possible 18
Top down Integration

 In top to down approach, testing takes place from top to down


following the control flow of the software system.
 Takes help of stubs for testing.

19
Top down…

Advantages:
◦ Fault localization is easier.
◦ Possibility to obtain an early prototype.

◦ Critical modules are tested on priority; major design flaws could be found
and fixed first.

Disadvantages:
◦ Needs many stubs.
◦ Modules at lower level are tested inadequately. 20
Sandwich/Hybrid Integration Approach

 This approach is a combination of both top-down and bottom-up


integration testing.
 In this approach, the integration starts from middle layer and testing
is carried out in both directions - towards higher level modules
(upwards) and towards lower level module (downwards).

 This way includes benefits of both top-down and bottom up


approach and helps in faster testing of the module's interfaces.
21
SystemTesting (End-to-EndTesting)
 This is the first level of functional testing where the application is tested as a whole.

 The goal at this level is to evaluate systems compatibility with the outlined
requirements and to see that it meets the anticipated quality standards.

 To verify the functional and technical specifications of the software, comprehensive


testing is performed.

 The application is tested in an environment that is similar to the environment


where the application will be deployed.

 Enables the testers to test, verify, and validate the business requirements as well as the
application architecture.
22
 Performed by a knowledgeable and specialized testing team.
Users AcceptanceTesting (UAT)
• The most important type of testing, acceptance testing or user acceptance testing, is
conducted by the Quality Assurance (QA) Team or customers to check whether the
application meets the intended specifications and satisfies clients requirements.

• Acceptance testing allows the tester to check for any undetected bugs, which can crash
the system in future.

• Once acceptance testing is accomplished successfully, the application becomes


suitable for release.

• The QA team must have a set of pre-written scenarios and test cases that will be used
to test the application.

23
…UAT
• More ideas will be shared about the application and more tests can be performed on it to
device its accuracy and the reasons why the project was initiated.

• Acceptance tests are not only intended to point out simple spelling mistakes, cosmetic
errors, or interface gaps, but also to point out any bugs in the application that will result
in system crashes or major errors in the application.

• By performing acceptance tests on an application, the testing team will reduce how the
application will perform in production.
• There are also legal and contractual requirements for acceptance of the system.
• UAT includes:
a) Alpha Testing
b) Beta Testing
c) Gamma Testing 24
A. AlphaTesting
 Alpha testing is a type of acceptance testing performed to identify all possible issues/bugs before releasing the
product to everyday users or public.

 It is performed within the software company or lab environment by highly qualified specialists usually not
by developers of the product.

 It can be referred to as a form of internal acceptance testing. Also in this stage, new functionality can be
implemented in the software.

 The focus of this testing is to simulate real users by using black-box and white-box techniques.
 The aim is to carry out the tasks that a typical user might perform.

 Alpha testing is carried out in a lab environment and usually the testers are internal employees of the
organization.

 This kind of testing is called alpha only because it is done early on, near the end of the development of the
25
software, and before Beta Testing.
AlphaTesting
◦During this phase, the following aspects will be tested in
the application:
 Spelling mistakes

 Broken links

 Cloudy directions
 The application will be tested on machines with the lowest specification
to test loading times and any latency problems.

26
Alpha …
Advantages:

 Provides better view about the reliability of the software at an early stage

 Helps simulate real time user behavior and environment.

 Detect many showstopper or serious errors

 Ability to provide early detection of errors with respect to design and functionality

Disadvantages:

 In-depth functionality cannot be tested as software is still under development stage

 Sometimes developers and testers are dissatisfied with the results of alpha testing
27
BetaTesting
 Beta testing is done outside the software organization developing it, not by its
personnel.

 Prerelease builds of the program are distributed to the end users who validate their
functionality, reliability, usability and compatibility.

 It is known as a form of external acceptance testing.

 Beta testing lowers the risk of the product’s failure and provides improved quality
of the application by means of customer feedback.

 Direct feedback is a significant benefit of beta testing. This phase follows alpha
testing.
 Beta testers often find a lot of defects in the programs. 28
Beta…
 In this phase of software production, the development team bears no
responsibility for the damage caused to the products when they are tried
out by the clients or outsiders.
 No testing or lab environment is needed for beta tests.

 Beta testing companies engage a limited quantity of end users in the


testing process to check the product in real world environment and decide
if it is ready to be shipped to the customers.

 It aids partly to give the program a "real-world" test and partly to provide a
preview of the next release. 29
Beta…
◦ In this phase, the audience will be testing the following:
◦ Users install, run the application and send their feedback to the project team.

◦ Typographical errors, confusing application flow and even crashes.

◦ Getting the feedback, the project team can fix the problems before releasing the software to
the actual users.

◦ The more issues you fix that solve real user problems, the higher the quality of your
application will be.

◦ Having a higher-quality application when you release it to the general public will
increase customer satisfaction.
30
Beta…
Advantages
 Reduces product failure risk via customer validation.
 It allows a company to test post-launch infrastructure.
 Improves product quality via customer feedback
 Cost effective compared to similar data gathering methods
 Creates goodwill with customers and increases customer satisfaction

Disadvantages
 Test management is an issue. As compared to other testing types which are usually executed
inside a company in a controlled environment, beta testing is executed out in the real world
where you seldom have control.

 Finding the right beta users and maintaining their participation could be a challenge
31
Types of BetaTesting
There are different types of beta tests:
1. Traditional beta testing - Product is distributed to the target market, and related data is gathered in all aspects.
This data can be used for product improvement.
2. Public beta testing - Product is publicly released to the outside world via online channels and data can be gathered
from anyone. Based on feedback, product improvements can be done.
For example, Microsoft conducted the largest of all Beta Tests for its OS -- Windows 8 before officially releasing it.
3. Technical beta testing - Product is released to the internal group of an organization and gather feedback/data from
the employees of the organization.
4. Focused beta testing- Product is released to the market for gathering feedback on specific features of the program.
For example, important functionality of the software.
5. Post release beta testing - Product is released to the market and data is gathered to make improvements for the
future release of the product.

32
GammaTesting
 Gamma testing is a final stage of software testing before an appropriate public release, it
is conducted primarily for safety purposes.

 It is intended to identify and fix minor defects that were found during beta testing.

 As a rule, this process is carried out with the involvement of as many end users as
possible.

 In this final phase of software development, there is no need for going through all the in-
house testing activities.

 Gamma tests can be run only when the application is ready for deployment to the
specified requirements.
33
RegressionTesting

• Whenever a change in a software application is made, it is quite


possible that other areas within the application will be affected by this
change.

• Regression testing is performed to verify that a fixed bug hasn't


resulted in another functionality or business rule violation.

• The intent of regression testing is to ensure that a change, such as a bug


fix should not result in another fault being uncovered in the application.

34
…Regression
◦Regression testing is done because of the following
reasons:
 Minimizing the gaps in testing when an application with
changes made has to be tested
 Testing the new changes to verify that the changes made did
not affect any other area of the application
 Mitigates risks
 Increasing test coverage without compromising timelines
 Increasing speed to market the product

35
Mutation testing
Mutation testing is a type of software testing where we mutate
(alter/change) certain statements in the source code intentionally and check
if the test cases are able to find the errors.

It is a type of White Box Testing which is mainly used for unit testing.
To determine if a set of test data or test cases are useful by deliberately
introducing various bugs.

Re-testing with the original test data/cases to determine if the bugs are
detected.
36
What is a Software Build?

 If you are developing a simple computer program which consists of only one source code
file, you merely need to compile and link this file, to produce an executable file.
 This process is very simple. Usually this is not the case.

 A typical software project consists of hundreds or even thousands of source code files.

 Creating an executable program from these source files is a complicated and time-
consuming task.

 You need to use "build" software to create an executable program and the process is
called " Software Build"

37
Smoke and Sanity testing

38
SmokeTesting
• Smoke testing is a kind of software testing performed after software build to ascertain that
the critical functionalities of the program are working fine.

• It is executed "before" any detailed functional or regression tests are executed on the
software build.

• The purpose is to reject a badly broken application, so that the QA team does not waste
time installing and testing the software application.

• In smoke testing, the test cases chosen cover the most important functionality or
component of the system.

• For example, a typical smoke test would be - check that the application launches
successfully, Check that the GUI is responsive ... etc. 39
Smoke…
• Smoke testing makes sure that build received from the development
team is testable or not.

• It is also named as the “Day 0” check and performed on the


building level.

• It saves time as you don’t have to test the whole application if the
core functionalities of the program are not working.

40
SanityTesting
 Sanity testing is a kind of software testing performed after receiving a software build,
with minor changes in code, or functionality, to ascertain that the bugs have been fixed
and no further issues are introduced due to these changes.

 The goal is to determine that the proposed functionality works roughly as expected.

 If sanity test fails, the build is rejected to save the time and costs involved in a more
rigorous testing.

 The objective is "not" to verify thoroughly the new functionality, but to determine
that the developer has applied some stability (sanity) while producing the software.
 For instance, if your scientific calculator gives the result of 2 + 2 =5, there is no point testing the advanced
functionalities like sin30 + cos50.
41
Smoke and Sanity Testing…

42
Localization (L10N)Testing
 Localization refers to the adaptation of a product, application or
document content to meet the language, cultural and other requirements
of a specific target market (a locale).

 Localization is sometimes written as L10N, where 10 is the number of


letters between L and N.

 Often thought of only as a synonym for translation of the user interface


and documentation, localization is often a substantially more complex
issue.
43
Localization…
It can entail customization related to:
◦ Numeric, date and time formats
◦ Use of currency
◦ Keyboard usage
◦ Collation and sorting
◦ Symbols, icons and colors
◦ Text and graphics containing references to objects, actions or ideas which, in
a given culture, may be subject to misinterpretation or viewed as insensitive.
◦ Varying legal requirements
44
Globalization (G11N)Testing
• Globalization is the design and development of a product, application or
document content that enables easy localization for target audiences that
vary in culture, region, or language.

• Globalization is often written G11N, where 11 is the number of


letters between G and n in the English word.

• Globalization testing is to ensure that application can function in any culture


or locale (language, territory and code page) It is also called
internationalization testing.
45
Globalization…
◦ Globalization testing typically entails:
• Designing and developing in a way that removes barriers to localization or international
deployment.

• Providing support for features that may not be used until localization occurs.

• Enabling code to support local, regional, language, or culturally related preferences.

• Separating localizable elements from source code or content, such that localized alternatives
can be loaded or selected based on the user's international preferences as needed

46
Non-FunctionalTesting
◦The non-functional type of testing is performed based on the product’s
non-functional requirements.

◦This testing tests the characteristics of the software for example, the
speed of the response, or the time taken for the software to perform any
operation.

◦Non-functional testing can as well be described as testing software


attributes not related to specific actions.
◦It has a great influence on customer and user satisfaction on the product.47
Non-Functional…
◦ This testing is designed specifically to evaluate the readiness of a system
according to the various criteria which are not covered by functional testing.

◦ Essentially non-functional testing lets us measure and compare the results


of testing, the non-functional attributes of software systems.

◦ Non-functional testing indicates the behavior of the product and not the
description of what the product does.

◦ Unlike functional testing, to make the non-functional testing effective, it is


important to use automated testing tools rather than testing it manually.
48
Non-functional testing includes:
◦ Performance
◦ Load
◦ Volume
◦ Stress
◦ Usability
◦ Scalability
◦ Portability
◦ Security
◦ Maintainability
◦ Recoverability
◦ Reliability

49
Non-Functional Testing…
• This section is based upon testing an application from its non-
functional attributes.
• Non-functional testing involves testing a software from the
requirements which are non-functional in nature but important such as
performance, security, user interface, etc.
• Some of the important and commonly used non-functional testing
types are discussed below.

50
PerformanceTesting
◦ It is mostly used to identify any bottlenecks or performance issues rather than finding bugs in a software.

◦ There are different causes that contribute in lowering the performance of a software:
◦ Network delay, Client-side processing, Database transaction processing, Load balancing between servers, Data
rendering, etc.

◦ Performance testing is considered as one of the mandatory testing types in terms of the following aspects:
◦ Speed (i.e. response time, data rendering and accessing)
◦ Capacity – number of users or operations that your application can handle
◦ Stability - ability to remain stable after modification process

◦ Scalability - the capacity to be changed in size or scale

◦ Performance testing can be either qualitative or quantitative and can be divided into different sub-types such as
Load testing, Stress testing & Volume testing.
51
LoadTesting
 It is a process of testing the behavior of a software by applying maximum load in terms of software
accessing and manipulating large input data.
 It can be done at both normal and peak load conditions.

 This type of testing identifies the maximum capacity of software and its behavior at peak
time.

 Virtual users (VUsers) are defined in the automated testing tool and the script is executed to verify
the load testing for the software.
 The number of users can be increased or decreased concurrently based upon the requirements.

 Most of the time, load testing is performed with the help of automated tools such as Load Runner,
AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load
52
Test, etc.
VolumeTesting
 Volume testing is a non-functional performance testing where the
software is subjected to a huge volume of data. It is also referred as flood
testing.

 Volume testing is done to analyze the system performance by increasing


the volume of data in the database.
 With the help of volume testing, the impact on response time and system
behavior can be studied when exposed to a high volume of data.
 For example, testing a music site behavior when there are millions of user to download
53
the song.
What to test in volume testing?
◦ In volume testing, the following things need to be tested:
◦ Check if there is any data loss

◦ Check the system's response time

◦ Check if the data is stored correctly or not

◦ Verify if the data is overwritten without any notification

◦ Check for warning and error messages, whether it comes at all for volume problems

◦ Check whether high volume data affects the speed of processing

54
StressTesting
 Stress testing (sometimes called torture testing) is a form of deliberately intense or
thorough testing used to determine the stability of a given system or entity.

 This testing is done beyond normal operational capacity; often to the breaking
point, in order to observe the results.

 Stress testing includes testing the behavior of a software under abnormal


conditions. For example:
 Shutdown or restart of network ports randomly
 Turning the database on or off
 Taking away some resources
 Applying a load beyond the actual load limit
 Running different processes that consume resources such as CPU, memory, server, etc. 55
RecoverabilityTesting
 Recovery testing is the activity of testing how well an application is able to
recover from crashes, hardware failures and other similar problems.

 Recovery testing is basically done in order to check how fast and better the
application can recover from any type of crash or hardware failure or other
catastrophic problems
 Examples:
 This can be understood with a simple example of a browser. Say we have opened a
browser with 6 sessions on it.

 Close it abruptly and relaunch it and check whether it is able to recover or not. 56
UsabilityTesting
 It is a black box testing technique, which is used to identify errors and defects as
well as the improvements in the software by observing the users through their usage
and operation.

 This type of testing assists the tester in finding any undetected defect before the
release of an application.

 Usability can be defined in terms of five factors, i.e.

Efficiency of use, learnability, memorability, safety and satisfaction.

 The usability of a product will be good and the system is usable if it possesses the
above factors. 57
Usability…
 Usability is the quality requirement that can be measured as the outcome of
interactions with a computer system.
 This requirement can be fulfilled and the end-user will be satisfied if the intended
goals are achieved effectively with the use of proper resources.

 In addition to the different definitions of usability, there are some standards and
quality models and methods that define usability in the form of attributes and
sub-attributes such as ISO-9126, ISO-9241-11, ISO-13407, and IEEE std.610.12,
etc.

58
SecurityTesting
◦ The aim of security testing is to check for errors in the software as well as
the system in which it will be implemented, from security and vulnerability
point of view. [Ethical Hacking]

◦ Through this type of testing the tester verifies system security, whether it can protect data and
maintain functionality as intended.
◦ Some of the most important concepts covered by security testing are:
◦ Confidentiality: protecting against the disclosure of information to parties other than the intended recipient
◦ Integrity: protecting information from being modified by unauthorized parties
◦ Authentication: confirming the identity of a person, artifact or product
◦ Authorization: determining that a requester is allowed to receive a service or perform an operation.
◦ Availability: assuring information and communications services will be ready for use when expected
◦ Non-repudiation: ensuring that a transferred message has been sent and received by the parties claiming to have sent
and received the message. Guarantee no denial from both parties.

59
Maintainability Testing
 It basically defines that how easy it is to maintain the system. This means that how easy it is to analyze,
change and test the application

 Maintainability testing shall use a model of the maintainability requirements of the software/system.

 It is the degree of measuring the software or system potential to undergo changes, to meet the
requirements.
 These requirements may include:
 Correction of errors or faults
 Additional functionality
 Adapting the changing environment,
 Prevention of unexpected failures,
 Future maintenance, etc.

60
Maintainability…
The maintainability testing shall be specified in terms of the effort required to effect a change
under each of the following four categories:
1. Corrective maintenance – Correcting problems. The maintainability of a system can be measured in terms
of the time taken to diagnose and fix problems identified within that system.

2. Perfective maintenance – Enhancements. The maintainability of a system can also be measured in


terms of the effort taken to make required enhancements to that system. This can be tested by recording the
time taken to achieve a new piece of identifiable functionality such as a change to the database, etc. A
number of similar tests should be run and an average time calculated.

3. Adaptive maintenance – Adapting to changes in environment. The maintainability of a system can also
be measured in terms of the effort required to make required adaptations to that system. This can be
measured in the way described above for perfective maintainability testing.
4. Preventive maintenance – Actions to reduce future maintenance costs. This refers to actions to reduce
61
future maintenance costs.
Maintainability…
 This type of testing ensures the hassle free implementation of modifications in the system.
 As per ISO/IEC 9126, maintainability refers to “a set of attributes that bear on the effort
needed to make specified modifications."
1. Analyzability: To estimate the efforts required in tracing defects along with the identification of parts of the
system that needs to undergo change.
2. Changeability: Software's ability to undergo changes.
3. Stability: Ability to remain stable after modification process.

4. Testability: Inherent characteristic of software, that determines the efforts needed in testing the updated
system.
5. Maintainability Compliance: The capability of the software product to adhere to standards or conventions
relating to maintainability.
62
62
ScalabilityTesting
 Scalability testing, is the testing of a software application to
measure its capability to scale up or scale down.

 Scalability testing is the ability of a network, a system, a database


or a process to continue to function well when changes are done in
size or volume of the system to meet growing need.

 Scalability testing ensures that an application can handle the


projected increase in user traffic, data volume, transaction counts
frequency, etc.
63
ReliabilityTesting
• Reliability testing is a type of testing to verify that software is capable of
performing a failure-free operation for a specified period of time in a specified
environment.

• Reliability means "yielding the same," in other terms, the word "reliable"
mean something is dependable and that it will give the same outcome every
time.

• The same is true for reliability testing. Reliability testing in software assures that
the product is fault free and is reliable for its intended purpose.
• Example:- The probability that a PC in a store is up and running for eight hours without
crashing is 99%; this is referred as reliability. 64
PortabilityTesting
 Portability testing is the process of determining the degree of ease or difficulty to which a
software component or application can be effectively and efficiently transferred from one
hardware, software or other operational or usage environment to another.

 The following are the strategies that can be used for portability testing:
 Building executable (.exe) file to run the software on different platforms.
 Transferring a developed software from one computer to another.

 This testing type includes overall testing of a software with respect to its usage over
different environments.

 Computer hardware, operating systems, and browsers are the major focus of portability
testing. 65
Portability testing…
Examples
◦ Software designed to run on Macintosh OS and Microsoft Windows operating
systems.

◦ Applications developed to be compatible with Google Android and Apple iOS phones.
◦ Video Games or other graphic intensive software intended to work with OpenGL and
DirectX API's.

◦ Software that should be compatible with Google Chrome and Mozilla Firefox
browsers.

66
…PortabilityTesting
◦ There are four testing attributes included in portability testing. The ISO 9126
(1991) standard breaks down portability testing attributes as
1. Install-ability
2. Compatibility
3. Adaptability and
4. Replace-ability
◦ The ISO 29119 (2013) standard describes Portability with the attributes of
1. Compatibility
2. Install-ability
3. Interoperability and
4. Localization testing

67
1. Install-ability testing
 Install-ability of a software is tested on its ability to effectively install
the target software in the intended environment.
 Install-ability may include tests for:
 Space demand,
 Checking prerequisites,
 Installation procedures,
 Completeness,
 Installation interruption,
 Customization,
 Initialization, and/or
 Deinstallation/Uninstallation

68
2. Compatibility/ Co-existence-Testing
 It tests the compatibility of multiple, unrelated software systems to co-exist
in the same environment, without effecting each other’s behavior.

 This is a growing issue with advanced systems, increased functionality and


interconnections between systems and subsystems that share components.

 Components that fail this requirement could have profound effects on a


system.
 For example, if 2 sub-systems share memory or a stack, an error in one could propagate
to the other and in some cases cause complete failure of the entire system.
69
3.Adaptability testing
 Adaptability testing is done to verify that the software can perform all of its
intended behaviors in each of the target environments.

 Using communication standards, such as HTML can help with adaptability.


 Adaptability may include testing in the following areas:
 Hardware dependency
 Software dependency
 Representation dependency
 Standard language conformance
 Dependency encapsulation and/or
 Text convertibility.
70
4. Interoperability testing
◦ This is testing the capability to communicate, execute programs, or transfer
data among various functional units in a manner that requires the user to
have little or no knowledge of the unique characteristics of those units.

5. Localization testing
◦ Its purpose is to test if the software can be understood in using the local
language/culture where the software is being used.

71
6. Replaceability testing

• This is testing the capability of one software component to be


replaced by another software component within a single system.

• The system, with regard to the replaced component, should produce the
same results that it produced before the replacement.

• The issues for adaptability also apply for replaceability, but for
replaceability you may also need to test for data load-ability and/or
convertibility.

72
More …PositiveVs Negative testing
• Positive testing is the type of testing that can be performed on the
system by providing valid data as input.
• It checks whether an application behaves as expected with positive
inputs.
• This test is done to check the application that does what it is
supposed to do. For example -

◦ To do positive testing, set the valid input values from 0 to 99999


and check whether the system is accepting the values.

73
NegativeTesting
 It is a variant of testing that can be performed on the system by providing invalid
data as input.
 It checks whether an application behaves as expected with the negative inputs.
 This is to test the application does not do anything that it is not supposed to do so.
 For example –

 Negative testing can be performed by entering characters A to Z or from a to z.


 Either software system should not accept the values or else it should throw an error
message for these invalid data inputs. 74
Thanks!
??

75

You might also like