Title: Mohammad AlFaraj
1Testing Web Applications
Mohammad Al-Faraj 20050171022
Mohammad Abu-Musa
Dr.Natheer Khasawneh Eng.Ahmad Shatnawi
2Out line
- Introduction - Fundamentals - Test Specifics in
Web Engineering. --- Test Approaches - Test
Scheme - Test Methods and Techniques - Test
Automation - Outlook - Questions
3Testing Web Applications
- What is testing?
- Testing is one of the most important quality
assurance measures.
47.1 Introduction
- -The quality of a Web application is essentially
determined by the quality of each software
component involved and the quality of their
interrelations. - - Testing is one of the most important
instruments in the development of Web
applications to achieve high quality products
that meet users expectations.
5Fundamentals
7.2.1 Terminology Testing is an activity
conducted to evaluate the quality of a product
and to improve it by identifying defects and
problems. If we run a program with the intent to
find errors, then we talk about testing . By
discovering existing errors, the quality state of
the program under test is determined, creating a
basis for quality improvement, most simply by
removing the errors found.
6Figure 7-1 shows that testing is part of
analytical quality assurance
7When talking about a test in the further course
of this chapter, we mean a set of test cases for
a specific object under test (i.e., a Web
application, components of a Web application, or
a system that runs a Web application). A single
test case describes a set of inputs, execution
conditions, and expected results, which are used
to test a specific aspect of the object under
test (IEEE standard 610.12-1990).
87.2.2 Quality Characteristics - quality
characteristics of software products is specified
in the ISO/IEC 9126-1 standard. - This standard
mentions six principal categories of
characteristics
reliability
usability
functionality
portability
maintainability
efficiency
These characteristics can break them down further
into sub-characteristics.
97.2.3 Test Objective
Main objective finding errors, rather than to
show their absence Other objectives detect as
many errors as possible at the lowest cost
possible, within as short a period of time as
possible.
107.2.4 Test Levels
Unit tests test the smallest testable units
(classes, Web pages, etc.), independently of one
another. Unit testing is done by the developer
during implementation. Integration tests
evaluate the interaction between distinct and
separately tested units once they have been
integrated. Integration tests are performed by a
tester, a developer, or both jointly. System
tests test the complete, integrated system.
System tests are typically performed by a
specialized test team.
117.2.4 Test Levels Cont
Acceptance tests evaluate the system in
cooperation with or under the auspice of the
client in an environment that comes closest to
the production environment. Acceptance tests use
real conditions and real data. Beta tests let
friendly users work with early versions of a
product with the goal to provide early feedback.
Beta tests are informal tests (without test plans
and test cases) which rely on the number and
creativity of potential users.
12An inherent risk when performing the test levels
sequentially according to the projects phases is
that errors due to misunderstood user
expectations may be found only at a late stage,
which makes their removal very costly. To
minimize this risk - testing has to be an
integrated part of the product construction which
should encompass the whole development
process. - A strongly iterative and evolutionary
development process reduces this risk since
smaller system parts are frequently tested on all
test levels.
137.2.5 Role of the Tester
- The intention to find as many errors as
possible requires testers to have a
destructive attitude towards testing. - In Web
projects, we have an increased focus on unit
tests which are naturally written by the
developers. - team issue, a strict separation of
testing and development is not advisable and has
an inherent risk to hinder the close cooperation
between developers and testers. The best tester
isnt the one who finds the most bugs or who
embarrasses the most programmers. The best tester
is the one who gets the most bugs fixed.
147.3 Test Specifics in Web Engineering
The following points outline the most important
specifics and challenges in web application
testing based on the applications
characteristics 1- Errors in the content can
often be found only by costly manual or
organizational measures, e.g., by proofreading.
Simple forms of automated checks (e.g., by a
spell checker) are a valuable aid but are
restricted to a limited range of potential
defects. 2- When testing the hypertext
structure, we have to ensure that the pages are
linked correctly, e.g., each page should be
accessible via a link and, in turn, it should
have a link back to the hypertext structure. 3-
The soft, subjective requirements on the
presentation level of Web applications. 4- The
large number of potential devices and their
different performance characteristics
(multi-platform delivery) represent another
challenge. Even if a tester had all potential
devices at disposal, he or she would have to run
test cases for each device.
155- Due to the global availability and usage of
Web applications, there are many challenges with
regard to multilinguality and usability. 6- Web
applications consist of a number of different
software components (e.g., Web servers, databases,
middleware) and integrated systems (e.g., ERP
systems, content management systems), which are
frequently supplied by different vendors, and
implemented with different technologies. 7- The
immaturity of many test methods and tools
represents additional challenges for the tester.
If a Web application is implemented with a new
technology, then there are often no suitable test
methods and tools yet. Or if initial test tools
become available, most of them are immature,
faulty, and difficult to use. 8 - The dominance
of change makes Web application testing more
complex than conventional software testing. User
requirements and expectations, platforms,
operating systems, Internet technologies and
configurations, business models and customer
expectations, development and testing budgets are
subject to frequent changes throughout the
lifecycle of a Web application.
167.4 Test Approaches
Conventional Approaches focus on planning and
project management Agile Approaches focus on
collaboration
177.4.1 Conventional Approaches
From the perspective of a conventional approach,
testing activities in a project include planning,
preparing, performing, and reporting
Planning The planning step defines the quality
goals, the general testing strategy, the test
plans for all test levels, the metrics and
measuring methods, and the test environment.
Preparing This step involves selecting the
testing techniques and tools and specifying the
test cases (including the test data).
Performing This step prepares the test
infrastructure, runs the test cases, and then
documents and evaluates the results.
Reporting This final step summarizes the test
results and produces the test reports.
18Activities on the critical path
Specification
Development
Test
Deployment
Operation Maintenance
Reporting
Performing
Preparing
Planning
Shortened critical path
197.4.2 Agile Approaches
- Agile approaches assume that a team will find
solutions to problems jointly and autonomously
(reliance on self-organization). - Agile
approaches omit activities that dont seem to
promise an immediate benefit. - In an agile
approach, the developers perform unit tests, i.e.
they test their own work. By automating these
unit tests, they can be used as small change
detectors.
20Questions
1- what are Quality Characteristics? Slide 10-11
2-what are testing levels? 3- How can
minimize the inherent risk? 4- What makes Web
application testing different from conventional
software testing? Slide 14-15