[go: up one dir, main page]

0% found this document useful (0 votes)
47 views23 pages

Chapter 2

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 23

Information System Design

Lecture 10

1
Testing
Testing is the process of evaluating a system or its component(s) with
the intent to find whether it satisfies the specified requirements or not.
In simple words, testing is executing a system in order to identify any
gaps, errors, or missing requirements in contrary to the actual
requirements.

According to ANSI/IEEE 1059 standard, Testing can be defined as - A


process of analyzing a software item to detect the differences between
existing and required conditions (that is defects/errors/bugs) and to
evaluate the features of the software item.

2
Why system testing??
• Testing is a vital to the success of the system. System testing makes
a logical assumption that if all the parts of the system are correct, the
goal will be successfully achieved.
• System testing is its utility as a user-oriented vehicle before
implementation. The best program is worthless if it does not meet user
needs.

3
Types of testing

Reviews
Inspections

4
Black-Box Testing
The technique of testing without having any knowledge of
the interior workings of the application is called black-box
testing. The tester is oblivious to the system architecture
and does not have access to the source code.

Typically, while performing a black-box test, a tester will


interact with the system's user interface by providing inputs
and examining outputs without knowing how and where the
inputs are worked upon.

5
Advantages and disadvantages of black-box testing

Advantages Disadvantages
•Well suited and efficient for large •Limited coverage, since only a
code segments. selected number of test scenarios is
actually performed.
•Code access is not required.
•Inefficient testing, due to the fact that
•Clearly separates user's perspective
the tester only has limited knowledge
from the developer's perspective
about an application.
through visibly defined roles.
•Blind coverage, since the tester
•Large numbers of moderately skilled
cannot target specific code segments
testers can test the application with no
or error-prone areas.
knowledge of implementation,
programming language, or operating •The test cases are difficult to design.
systems.

6
White-Box Testing
White-box testing is the detailed investigation of internal logic and
structure of the code. White-box testing is also called glass testing or
open-box testing. In order to perform white-box testing on an
application, a tester needs to know the internal workings of the code.

The tester needs to have a look inside the source code and find out
which unit/chunk of the code is behaving inappropriately.

7
Advantages and disadvantages of white-box testing

Advantages Disadvantages
•As the tester has knowledge of the •Due to the fact that a skilled tester
source code, it becomes very easy to is needed to perform white-box
find out which type of data can help testing, the costs are increased.
in testing the application effectively. •Sometimes it is impossible to look
•It helps in optimizing the code. into every nook and corner to find
•Extra lines of code can be removed out hidden errors that may create
which can bring in hidden defects. problems, as many paths will go
•Due to the tester's knowledge about untested.
the code, maximum coverage is •It is difficult to maintain white-box
attained during test scenario writing. testing, as it requires specialized
tools like code analyzers and
debugging tools.

8
Grey-Box Testing
Grey-box testing is a technique to test the application with having a
limited knowledge of the internal workings of an application. Unlike
black-box testing, where the tester only tests the application's user
interface; in grey-box testing, the tester has access to design
documents and the database. Having this knowledge, a tester can
prepare better test data and test scenarios while making a test plan.

9
A Comparison of Testing Methods
Black-Box Testing Grey-Box Testing White-Box Testing
The internal workings of an The tester has limited knowledge Tester has full knowledge of the
application need not be known. of the internal workings of the internal workings of the
application. application.
Also known as closed-box Also known as translucent Also known as clear-box testing,
testing, data-driven testing, or testing, as the tester has limited structural testing, or code-based
functional testing. knowledge of the insides of the testing.
application.
Performed by end-users and also Performed by end-users and also Normally done by testers and
by testers and developers. by testers and developers. developers.
Testing is based on external Testing is done on the basis of Internal workings are fully
expectations - Internal behavior high-level database diagrams and known and the tester can design
of the application is unknown. data flow diagrams. test data accordingly.
It is exhaustive and the least Partly time-consuming and The most exhaustive and time-
time-consuming. exhaustive. consuming type of testing.
Not suited for algorithm testing. Not suited for algorithm testing. Suited for algorithm testing.
This can only be done by trial- Data domains and internal Data domains and internal
and-error method. boundaries can be tested, if boundaries can be better tested.
known.
10
Static vs. Dynamic Testing
Static Testing Dynamic Testing
• Reviews, walkthroughs, or •Actually executing programmed
inspections code with a given set of test cases is
•Static testing is often implicit, as referred to as dynamic testing
proofreading, •Dynamic testing takes place when
•When programming tools/text the program itself is run.
editors check source code structure •Dynamic testing may begin before
or compilers (pre-compilers) check the program is 100% complete in
syntax and data flow as static order to test particular sections of
program analysis code and are applied to discrete
•Static testing involves verification, functions or modules
•Dynamic testing involves
validation

11
Unit Testing
unit testing is a software testing method by which individual units of
source code, sets of one or more computer program modules together
with associated control data, usage procedures, and operating
procedures, are tested to determine whether they are fit for use.

These types of tests are usually written by developers as they work


on code (white-box style), to ensure that the specific function is
working as expected.

12
Integration Testing
Integration testing (sometimes called integration and testing,
abbreviated I&T) is the phase in software testing in which individual
software modules are combined and tested as a group. It occurs after
unit testing and before validation testing.

Integration testing takes as its input modules that have been unit
tested, groups them in larger aggregates, applies tests defined in an
integration test plan to those aggregates, and delivers as its output the
integrated system ready for system testing.

Software components may be integrated in an iterative way or all


together ("big bang"). Normally the former is considered a better
practice since it allows interface issues to be located more quickly
and fixed.
13
Component interface testing
 The practice of component interface testing can be used to
check the handling of data passed between various units,
or subsystem components, beyond full integration testing
between those units.

 The data being passed can be considered as "message


packets" and the range or data types can be checked, for
data generated from one unit, and tested for validity
before being passed into another unit.

14
System Testing
System testing of software or hardware is testing conducted on a
complete, integrated system to evaluate the system's compliance with
its specified requirements. System testing falls within the scope of
black-box testing, and as such, should require no knowledge of the
inner design of the code or logic.

For example, a system test might involve testing a logon interface,


then creating and editing an entry, plus sending or printing results,
followed by summary processing or deletion (or archiving) of
entries, then logoff.

15
Acceptance Testing
Acceptance testing is a test conducted to determine if the
requirements of a specification or contract are met. It may involve
chemical tests, physical tests, or performance tests.

Acceptance testing can be two types:


1) Alpha testing
2) Beta testing

16
Acceptance Testing
Alpha testing: is simulated or actual operational testing by potential
users/customers or an independent test team at the developers' site.
Alpha testing is often employed for off-the-shelf software as a form
of internal acceptance testing, before the software goes to beta
testing.

Beta testing: can be considered a form of external user acceptance


testing. Versions of the software, known as beta versions, are
released to a limited audience outside of the programming team
known as beta testers. Beta versions can be made available to the
open public to increase the feedback field to a maximal number of
future users and to deliver value earlier, for an extended or even
indefinite period of time

17
Quality Assurance
Quality assurance defines the objectives of the project and reviews
the overall activities so that errors are corrected early in the
development process.
QA frameworks include:
(1) determination of adequate technical requirement of inputs and outputs,
(2) certification and rating of suppliers,
(3) testing of procured material for its conformance to established quality,
performance, safety, and reliability standards,
(4) proper receipt, storage, and issue of material,
(5) audit of the process quality,
(6) evaluation of the process to establish required corrective response, and
(7) audit of the final output for conformance to
(a) technical
(b) reliability,
(c) maintainability, and
(d) performance requirements.
18
Quality factors
1. Correctness: The extent to which a program meets system
specifications and user objectives.
2. Reliability: The degree to which the system performs its intended
functions over a time.
3. Efficiency: The amount of computer resources required by a
program to perform a function.
4. Usability: The effort required to learn and operate a system.
5. Maintainability: The ease with which program errors are located
and corrected.
6. Testability: The effort required to test a program to ensure its
correct performance.
7. Portability: The ease of transporting a program from one hardware
configuration to another.
19
Quality factors (cont..)
8. Accuracy: The required precision in input editing, computations
and output.
9. Error tolerance: error detection and correction versus error
avoidance.
10.Expandability: Ease of adding and expanding the existing data
base.
11.Access control and audit: control of access to the system and the
extent to which that access can be audited.
12.Communicativeness: How descriptive or useful the inputs and
outputs of the system are.

20
Levels of quality assurance
Quality assurance specialists use three levels of quality assurance:
1. Testing a system to eliminate errors.
2. Validation to check the quality of software in both simulated and
live environments.
3. Certification that the program or software package is correct and
confirms to standard.

21
Differentiate QA, QC, and Testing
Quality Assurance Quality Control Testing
QA includes activities that It includes activities that ensure It includes activities that ensure
ensure the implementation of the verification of a developed the identification of
processes, procedures and software with respect to bugs/error/defects in a software.
standards in context to documented (or not in some
verification of developed cases) requirements.
software and intended
requirements.

Focuses on processes and Focuses on actual testing by Focuses on actual testing.


procedures rather than executing the software with an
conducting actual testing on the aim to identify bug/defect
system. through implementation of
procedures and process.

Process-oriented activities. Product-oriented activities. Product-oriented activities.


Preventive activities. It is a corrective process. It is a preventive process.
It is a subset of Software Test QC can be considered as the Testing is the subset of Quality
Life Cycle (STLC). subset of Quality Assurance. Control.

22
References
• http://www.tutorialspoint.com/software_testing/software_testing_methods.htm
• http://www.slideshare.net/SonamAgarwal5/types-of-testing-23363313?related=1
• Book

23

You might also like