2.
Sistemas basados en Web
En los inicios de la Web, se construian sistemas
usando la informalidad, la urgencia, la intuició n y el
arte.
La informalidad lleva a un ambiente de trabajo fácil en el
que uno puede hacer las cosas a su manera.
La urgencia lleva a la acción y a la toma de decisiones
rápida.
La intuición es una cualidad intangible que le permite a
la persona "sentir" su camino a través de situaciones
complejas
El arte conduce a la forma estética y función a algo que
agrada a los que lo encuentran.
El problema es que este enfoque puede y suele
conducir a problemas.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 2
3. Pero Qué ?
A medida que las WebApps son má grandes y
s
complejas,
La informalidad se mantiene, pero cierto grado de
requerimientos, planificació n y diseñ o son necesarios.
La urgencia permanece, pero debe ser calmada por el
reconocimiento de que decisiones pueden tener grandes
consecuencias.
La intuició n permanece, pero debe aumentarse con una
gestió n probada y patrones té cnicos.
El arte permanece, pero debe complementarse con un
solido diseñ o.
En pocas palabras, debemos adaptar el enfoque de la
"vieja escuela" a las realidades del Web 2.0
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 3
4. Y Cuá es la Respuesta?
l
La Ingeniería Web
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 4
5. La Web
Una tecnología indispensable
Prá
cticamente en todos los aspectos de la vida
moderna
Una tecnología transformadora
Cambia la forma en que hacemos las cosas
Cambia la forma de adquirir y difundir informació n
Una tecnología que evoluciona
En pocas palabras, gran impacto en todos en el
mundo moderno
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 5
6. WebApps
Una Aplicación Web (WebApp) se compone
de:
sitios web completos
funcionalidades especializadas dentro de
sitios web, y
Aplicaciones de procesamiento de la
información que residen en Internet o en
una Intranet o Extranet.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 6
7. Ingeniería Web
Se define así:
Un ágil y framework disciplinado, para la
construcción de aplicaciones web en la industria de
calidad.
Se debe entender el significado de:
Agile
Disciplinado framework
Industria de calidad
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 7
8. Qué es un Proceso Á
gil?
La ingeniería web á combina una filosofía y un
gil
conjunto de guías de desarrollo. La flosofía fomenta:
La satisfacció n del cliente
Entrega Incremental temprana de la WebApp
Pequeñ os equipos de proyectos altamente motivados
Mé todos informales
Productos de trabajo mínimo
Simplicidad general de desarrollo
Un proceso á destaca su entrega a travé s de aná
gil lisis
y diseñ o (aunque estas actividades no son
fomentadas), y la comunicació n activa y continua entre
los desarrolladores y los clientes.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 8
9. ¿Qué es un Framework WebE?
Un framework es conjunto de actividades que siempre
se llevará a cabo para todos los proyectos de
n
ingeniería Web - aunque la naturaleza de las
actividades pueden variar para adaptarse al proyecto
Cada actividad del framework se compone de un
conjunto de acciones
Las acciones abarcan
tareas de trabajo
productos de trabajo
puntos de control de calidad, y
Los hitos del proyecto
Un framework tambié n tiene una serie de “actividades
paraguas"
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 9
10. Un Framework Gené rico
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 10
11. El Framework WebE : Actividades
Comunicació n. Implica la interacció n fuerte y la
colaboració n con el cliente (y otros interesados) y abarca la
captura de requisitos y otras actividades relacionadas.
Planificació n. Establece un plan gradual para el trabajo
WebE.
Modelado. Comprende la creació n de modelos que ayudan
al desarrollador y al cliente para entender mejor los
requerimientos y Diseñ o de la aplicació n web
Construcció n. Combina tanto la generació n del
có digo (por ejemplo, HTML, XML, Java) con la prueba
que se requiere para descubrir errores en el có digo
Implementació n.
Ofrece una aplicació n web para el cliente que lo evalú a
y proporciona retroalimentació n basada en la evaluació n.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 11
12. La influencia de la Ingeniería del Software
Calidad: fomenta una cultura de procesos de mejora
continua
Proceso: el pegamento que mantiene juntas las capas
de la tecnología
Mé todos: proporciona el có mo hacer té cnico
Herramientas: soporte para el proceso y los mé todos
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 12
13. La Mejores Prácticas WebE
Tómese el tiempo para entender las necesidades y objetivos de
negocio de productos, aunque los detalles de la aplicación web
son vagos.
Describe cómo los usuarios interactúan con la aplicación web
utilizando un enfoque basado en escenarios.
Siempre desarrollar un plan de proyecto, aunque sea muy
breve.
Pasa algún tiempo modelado qué es lo que vas a construir.
Revisar los modelos de consistencia y calidad.
Utilice las herramientas y la tecnología que le permiten
construir el sistema con tantos componentes reutilizables como
sea posible.
No reinventar cuando se puede reutilizar.
No se fíe de los primeros usuarios para depurar la aplicación
web-diseño y el uso de pruebas exhaustivas antes de liberar el
sistema.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 13
14. El Proceso de WebE
El proceso debe ser á y adaptable, pero
gil
tambié n debe ser incremental
¿Por qué incremental?
Requisitos evolucionan con el tiempo
Los cambios se producen con frecuencia (y
siempre en momentos inoportunos)
Líneas de tiempo son cortos
Entrega incremental le permite gestionar este
cambio!
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 14
15. WebE Process Activities & Actions
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 15
16. Activities Paraguas
Gestió n del cambio. Gestiona los efectos del cambio, ya
que cada incremento se integran ingeniería, herramientas
que ayudan en la gestió n de todo el contenido de
aplicació n web
Aseguramiento de la calidad. Define y lleva a cabo las
tareas que ayudan a asegurar que cada producto de
trabajo y el incremento de la calidad implementado exhibe
Gestió n de riesgos. Considera los riesgos del proyecto y
té cnicos como un incremento estádiseñ ado
Gestió n de proyectos. Pistas y monitorea el progreso
como un incremento estádiseñ ado
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 16
17. La actividad de comunicación
Entender el problema
antes de empezar a
resolverlo, y asegúrese
de que la solución que
concebir es que la
gente realmente quiere
Para hacer esto, usted
debe:
formular
provocar
negociar
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 17
18. Formulation
Se centra en la definició n de las necesidades del proyecto y
el alcance
comienza con la identificació n de una necesidad de negocio
se mueve a una descripció n de los objetivos de aplicació n
web
define las principales características de aplicació n web, y
establece una base para la acció n de elicitació n que sigue.
permite a los actores y al equipo WEBE establecer un
conjunto comú de metas y objetivos para la creació n de
n
cada incremento aplicació n web
identifica el alcance del esfuerzo de desarrollo y
proporciona un medio para determinar un resultado exitoso
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 18
19. Elicitation
La intenció n es reunir requisito detallado en colaboració n
con todas las partes interesadas
Para hacer esto:
Una reunió n (ya sea físico o virtual) se lleva a cabo con la
participació n de todos los interesados.
Reglas para la preparació n y participació n establecidos.
Un programa que se sugiere es formal suficiente para cubrir
todos los puntos importantes, pero lo suficientemente
informales para fomentar el libre flujo de ideas.
Un facilitador (puede ser un cliente, un ingeniero de Web, o
un extrañ o) controla la reunió n.
Un mecanismo de definició n (pueden ser hojas de trabajo,
rotafolios, o pegatinas de pared o un tabló n de anuncios
electró nico, chat, foro o virtual) se utiliza.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 19
20. La captura de Interacció n: Use
Cases
Los casos de uso describen có mo una categoría de usuario
específico (llamado un actor) va a interactuar con la
aplicació n web para llevar a cabo una acció n específica.
Los casos de uso se desarrollan iterativa. Só lo los casos de
uso necesarios para el incremento a construir se desarrolló
durante la actividad de comunicació n para el incremento.
Los casos de uso permiten:
proporcionar la informació n necesaria para la planificació n y las actividades
de modelizació n.
ayudaráa entender có mo los usuarios perciben su interacció n con la
aplicació n web.
ayudar a compartimentar el trabajo de ingeniería Web, ya que pueden ser
organizados en incrementos de aplicació n web.
proporcionar una orientació n importante para aquellos que tienen que
probar la aplicació n web.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 20
21. Negociacion
Idealmente, los requisitos se definen en detalle suficiente
para proceder
Pero, en realidad, los requisitos son a menudo
contradictorios o no factible (en el contexto de
limitaciones del mundo real, tales como el costo o
tiempo).
La negociació n implica trabajar con los interesados para
equilibrar la funcionalidad, el rendimiento y otras
características del producto o del sistema contra el costo
y tiempo de entrega.
Los mejores negociadores luchar por un resultado de
ganar-ganar.
que es una buena idea para determinar cada una de las
"condiciones" victoria de los interesados.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 21
22. La actividad de planificación
Pero el alcance de la planificació n
de actividades varía entre las
personas involucradas en un
proyecto WEBE
Un equipo líder planes, monitores,
y coordina el trabajo conjunto de
un equipo WEBE.
Un ingeniero Web gestiona el día a
día del trabajo de planificació n,
seguimiento y control de las tareas
té cnicas.
Toma un enfoque á para la
gil
planificació n
Adaptar el esfuerzo y el tiempo
dedicado a la planificació n de la
complejidad de la aplicació n web
incremento
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 22
23. directrices de planificació n
Comprender el alcance antes de definir las
tareas de trabajo o programar para un
incremento
Filtrar acciones marco y tareas
Asegú rese de tener el equipo adecuado
Evaluar los riesgos
Definir un horario
Identificar los filtros de calidad
Determine có mo va a gestionar el cambio
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 23
24. Gestió n de la Calidad
¿Qué mecanismos de aseguramiento de la
calidad puede el equipo utilizar?
Una actividad reflexiva, la comunicació n
profunda
Requisitos cuidadosos reunir
Par de tutoriales para evaluar la calidad de
todos los productos de trabajo
Crear una lista gené rica que puede utilizar
para evaluar los modelos
Usa pruebas para destapar errores
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 24
25. Pair Walkthrough
par Tutorial
Revisar el producto, no el productor.
Establecer una agenda y mantenerla. Una de las principales
enfermedades de las reuniones de todos los tipos es la deriva.
Un tutorial debe mantenerse en la pista y en la fecha prevista.
Limitar el debate y la refutación. Cuando un asunto haya sido
el revisor, puede que no haya acuerdo sobre su impacto. En
lugar de gastar tiempo en debatir la cuestión, la cuestión
debería ser grabadas para posterior resolución.
Enunciar las áreas problemáticas, pero no trate de resolver
todos los problemas señalados. Un tutorial no es una sesión
de resolución de problemas.
Tome notas escritas. Las notas pueden ser introducidos
directamente en un ordenador portátil.
Dedique el tiempo suficiente para descubrir problemas de
calidad, pero no más de un minuto. En general, un tutorial
equipo debe ser completado dentro de 60 a 90 minutos como
máximo.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 25
26. Change Management
Gestió n del Cambio
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 26
27. La actividad de modelización
Todos los modelos están
equivocados, pero algunos
modelos son útiles.? Caja
George
Nos modelar nuestra
percepción de la realidad, para
que podamos entender y
cambiarlo, pero nuestros
modelos de la realidad no son
perfectos.
El análisis del modelo ayuda a
comprender la naturaleza del
problema
Modelado de diseño ayuda a
entender la estructura y
arquitectura interna de la
aplicación web
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 27
28. Analysis Modeling
Analysis modeling helps you to understand the detailed
requirements that will allow you to satisfy user needs
Analysis models look at content, interaction, function,
and behavior, as well as the WebApp configuration
To determine the how much analysis modeling to do,
examine the:
• Size and complexity of the WebApp increment
• Number of stakeholders (analysis can help to identify
conflicting requirements coming from different sources)
• Size of the WebE team
• Degree to which members of the WebE team have worked
together before (analysis can help develop a common
understanding of the project)
• Degree to which the organization’s success is directly
dependent on the success of the WebApp
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 28
29. Analysis Outputs
Information model. Identifies the full spectrum of
content to be provided by the WebApp. Content
includes text, graphics and images, and video and
audio data.
Interaction model. Describes the manner in which
users interact with the WebApp.
Functional model. Defines the operations that will
be applied to WebApp content and describes other
processing functions that are independent of content
but necessary to the end user.
Configuration model. Describes the environment
and infrastructure in which the WebApp resides.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 29
30. The Information Model
Identify content objects, their relationships, and their
architecture:
External entities (e.g., other systems, databases, people) that
produce or consume information to be used by the WebApp
Things (e.g., reports, displays, video images) that are part of the
information domain for the problem
Occurrences or events (e.g., a quote or an order) that occur within
the context of a user’s interaction with a WebApp
Roles (e.g., retail purchasers, customer support, salesperson)
played by people who interact with the WebApp
Organizational units (e.g., division, group, team) that are relevant to
an application
Places (e.g., manufacturing floor or loading dock) that establish the
context of the problem and the overall function of the WebApp
Structures (e.g., sensors, monitoring devices) that define a class of
objects or related classes of objects
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 30
31. The Interaction Model
Can be represented using:
Use cases
Sequence diagrams
State diagrams
User interface prototypes
In many instances, a set of use cases is sufficient to
describe the interaction at an analysis level (further
refinement and detail will be introduced during
design)
However, when the sequence of interaction is
complex and involves multiple analysis classes or
many tasks, it is sometimes worthwhile to depict it
using a more rigorous diagrammatic form.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 31
32. The Functional Model
Addresses two processing elements of the
WebApp, each representing a different
level of procedural abstraction:
user-observable functionality that is delivered by
the WebApp to end users, and
the operations contained within analysis classes
that implement behaviors associated with the
class.
The UML activity diagram can be used to
represent processing details
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 32
33. The Configuration Model
Among the many configuration issues that
should be addressed are:
Server hardware and operating system
environments
Interoperability considerations on the server
side (e.g., large database access, other IT
applications, specialized communication
protocols)
On the client side:
• Local OS
• Browser software
• Client hardware variations
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 33
34. WebApp Design
Jakob Nielsen states: “There are essentially two basic
approaches to design: the artistic ideal of expressing yourself
and the engineering ideal of solving a problem for a
customer.”
Even today, some proponents of agile software
development use WebApps as poster children for the
development of applications based on “limited design.”
However --
• when content and function are complex
• when the size of the WebApp encompasses hundreds of
content objects, functions, and analysis classes
• when multiple people become involved in the design; and
• when the success of the WebApp will have a direct impact
on the success of the business,
• design cannot and should not be taken lightly.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 34
35. WebApp Design
The design model encompasses content,
aesthetics, architecture, interface, navigation,
and component-level design issues.
The design model provides sufficient information
for the WebE team to construct the final WebApp
Alternative solutions are considered, and the
degree to which the current design model will
lead to an effective implementation is also
assessed
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 35
36. Design Goals - I
Simplicity. Although it may seem old-fashioned, the
aphorism “all things in moderation” applies to WebApps.
Rather than feature-bloat, it is better to strive for
moderation and simplicity.
Consistency.
Content should be constructed consistently
Graphic design (aesthetics) should present a consistent look
Architectural design should establish templates that lead to a
consistent hypermedia navigation
Navigation mechanisms should be used consistently
Identity. The aesthetic, interface, and navigational design
of a WebApp must be consistent with the application
domain for which it is to be built.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 36
37. Design Goals - II
Robustness. The user expects robust content and
functions that are relevant to the user’s needs.
Navigability. Users should be able to understand how to
move about the WebApp without having to search for
navigation links or instructions.
Visual appeal. Design characteristics (e.g., the look and
feel of content, interface layout, color coordination, the
balance of text, graphics and other media, and navigation
mechanisms) contribute to visual appeal.
Compatibility. Most WebApps will be used in a variety
of environments (e.g., different hardware, Internet
connection types, operating systems, and browsers) and
must be designed to be compatible with each
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 37
38. Design Actions
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 38
39. Interaction Design
Design an interface to answer three generic
questions:
• Where am I? The interface should (1) provide an
indication of the WebApp that has been accessed and (2)
inform users of their location in the content hierarchy.
• What can I do now? The interface should always help users
understand their current options—what functions are
available, what links are live, what content is relevant?
• Where have I been, where am I going? The interface must
facilitate navigation. Hence, it must provide a “map”
(implemented in a way that is easy to understand) of
where users have been and what paths they may take to
move elsewhere within the WebApp.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 39
40. Design Principles (Tognozzi)
Anticipation. Designed so that it anticipates the user’s next move.
Communication. The interface should communicate the status of any
activity initiated by the user.
Consistency. The use of navigation controls, menus, icons, and aesthetics
(e.g., color, shape, layout) should be consistent throughout the WebApp.
Controlled autonomy. The interface should facilitate user movement
throughout the WebApp, but it should do so in a manner that enforces
navigation conventions that have been established for the application.
Efficiency. The design of the WebApp and its interface should optimize
the user’s work efficiency, not the efficiency of the Web engineer who
designs and builds it or the client-server environment that executes it.
Flexibility. The interface should be flexible enough to enable some users
to accomplish tasks directly and others to explore the WebApp in a
somewhat random fashion.
Focus. The WebApp interface (and the content it presents) should stay
focused on the user task(s) at hand.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 40
41. Other Design Issues
Response time—action to response interval
“Help” facilities—value of content and
guidance
Error handling—explication and guidance
Accessibility—availablity to those with
disabilities
Internationalization—ability to convert to other
languages
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 41
42. Information Design
Three key issues:
Content. What content is available?
Composition. What views on that content do we wish
to provide users?
Navigation. How do the users gain access to those
views?
There are different levels of abstraction at which
we might consider these information design
issues
Information design addresses how content can
be organized, accessed, and managed
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 42
43. Navigation Design
ER modeling defines the information domain of the
application by identifying content (data) objects,
attributes, relationships, and various type indicators
that comprise the WebApp information space.
Slice design determines detailed information
structure and access mechanisms by grouping
content from the domain (captured in the ER model)
into collections that can or should be presented
together in order to be useful and meaningful
Navigation design establishes the links between
the various slices and creates the information units
that have interest for various user categories.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 43
44. Functional Design
Functional design is not a discrete task that is
performed at just one point in the design process.
Rather, it is interwoven with other design activities.
User-level functionality is the expression of the WebApp
capabilities that support users in achieving their goals.
Application-level functionality represents a lower-level
design of internal functionality that may not be directly
visible to users
Application-level functionality is more deeply embedded
within the structure of the WebApp and will often
emerge out of the progressive design of the user-level
functionality
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 44
45. Design Patterns
“A pattern is a named nugget of insight which conveys the
essence of a proven solution to a recurring problem within a
certain context amidst competing concerns.” Brad Appleton
A way of capturing a description of a particular problem
and a good solution to that problem
The intent of each design pattern is to provide a
description that enables a designer to determine
(1) whether the pattern is applicable to the current work
(2) whether the pattern can be reused (hence, saving design
time), and:
(3) whether the pattern can serve as a guide for developing
a similar, but functionally or structurally different pattern.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 45
46. Construction and Deployment
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 46
47. Some Basic Principles
Keep the development environment and the
production environment separate. Do not
develop directly on the servers that are
accessible to your users!
Provide the developers with an environment
that facilitates their productivity.
Where possible, undertake testing in the an
environment that is identical to the one your
users will see.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 47
48. Deployment
Encompasses three actions: packaging, release, and
evaluation
Deployment happens not once, but a number of times as
the WebApp moves toward completion
Can be accomplished in a very fine-grained manner (not
always advisable) by releasing new components from the
staging server to the production server after the individual
components have been tested
Each package-release cycle provides end users with an
operational WebApp increment that provides usable
functions and features.
Each evaluation cycle provides the WebApp team with
important guidance that results in modifications to the
content, functions, features, and approach taken for the
next increment.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 48
49. Deployment Principles
Principle 1: Customer expectations for the
WebApp increment must be managed.
Principle 2: A complete delivery package should
be assembled and tested.
Principle 3: A support regime must be
established before the WebApp is delivered.
Principle 4: Buggy WebApps should be fixed
first, delivered later
(except where being first really is more important than the
possibility of adverse customer reactions)!
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 49
50. Testing WebApps
Testing is the process of exercising a
WebApp with the intent of finding (and
ultimately correcting) errors.
Tests must be designed to uncover errors in
WebApps that are implemented in:
different operating systems
browsers [or other interface devices such as set-
top boxes, personal digital assistants (PDAs), and
mobile phones]
hardware platforms
communications protocols
“backroom” applications
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 50
51. The “Dimensions” of Quality - I
Reviews and testing examine one or more of the
following quality dimensions:
Content is evaluated at both a syntactic and semantic
level.
Function is tested to uncover errors that indicate lack of
conformance to stakeholder requirements. Each
WebApp function is assessed for correctness, instability,
and general conformance to appropriate implementation
standards (e.g., Java or XML language standards).
Structure is assessed to ensure that it properly delivers
WebApp content and function, is extensible, and can be
supported as new content or functionality is added.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 51
52. The “Dimensions” of Quality - II
Usability is tested to ensure that each category of user is supported by
the interface and can learn and apply all required navigation syntax and
semantics.
Navigability is tested to ensure that all navigation syntax and semantics
are exercised to uncover any navigation errors (e.g., dead links, improper
links, erroneous links).
Performance is tested under a variety of operating conditions,
configurations, and loading to ensure that the system is responsive to
user interaction and handles extreme loading without unacceptable
operational degradation.
Compatibility is tested by executing the WebApp in a variety of different
host configurations on both the client and server sides. The intent is to
find errors that are specific to a unique host configuration.
Interoperability is tested to ensure that the WebApp properly interfaces
with other applications and/or databases.
Security is tested by assessing potential vulnerabilities and attempting to
exploit each. Any successful penetration attempt is deemed a security
failure.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 52
53. Testing Strategy-I
1. The content model for the WebApp is reviewed to
uncover errors.
2. The interface model is reviewed to ensure that all
use cases have been accommodated.
3. The design model for the WebApp is reviewed to
uncover navigation errors.
4. The user interface is tested to uncover errors in
presentation and/or navigation mechanics.
5. Selected functional components are unit tested.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 53
54. Testing Strategy - II
6. Navigation throughout the architecture is tested.
7. The WebApp is implemented in a variety of
different environmental configurations and is
tested for compatibility with each configuration.
8. Security tests are conducted in an attempt to
exploit vulnerabilities in the WebApp or within its
environment.
9. Performance tests are conducted.
10. The WebApp is tested by a controlled and
monitored population of end users. The results of
their interaction with the system are evaluated for
content and navigation errors, usability concerns,
compatibility concerns, and WebApp reliability and
performance.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 54
55. The Testing Process
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 55
56. Content Testing
Content testing combines both reviews and the generation
of executable test cases.
Reviews are applied to uncover semantic errors in content.
Executable testing is used to uncover content errors that can
be traced to dynamically derived content that is driven by
data acquired from one or more databases.
Content testing has three important objectives:
to uncover syntactic errors (e.g., typos, grammar mistakes) in
text-based documents, graphical representations, and other
media,
to uncover semantic errors (i.e., errors in the accuracy or
completeness of information) in any content object presented
as navigation occurs, and
to find errors in the organization or structure of content that is
presented to the end user.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 56
57. Content Testing - Checklist
Is the information up to date and factually accurate?
Is the information concise and to the point?
Is the layout of the content object easy for the user to understand?
Can information embedded within a content object be found
easily?
Have proper references been provided for all information derived
from other sources?
Is the information presented consistent internally and consistent
with information presented in other content objects?
Can the content be interpreted as being offensive or misleading, or
does it open the door to litigation?
Does the content infringe on existing copyrights or trademarks?
Does the content contain internal links that supplement existing
content? Are the links correct?
Does the aesthetic style of the content conflict with the aesthetic
style of the interface?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 57
58. User Interface Testing
Verification and validation of a WebApp user interface
occurs at three distinct points in the WebE process.
During communication and modeling the interface model
is reviewed to ensure that it conforms to customer
requirements and to other elements of the analysis
model.
During design, the interface design model is reviewed to
ensure that generic quality criteria established for all user
interfaces have been achieved and that application-
specific interface design issues have been properly
addressed.
During testing, the focus shifts to the execution of
application-specific aspects of user interaction as they are
manifested by interface syntax and semantics. In addition,
testing provides a final assessment of usability.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 58
59. UI Testing Strategy
Interface features are tested to ensure that design
rules, aesthetics, and related visual content are
available to the user without error.
Individual interface mechanisms are tested in a manner
that is analogous to unit testing.
Each interface mechanism is tested within the context
of a use case or navigation pathway for a specific user
category.
The complete interface is tested against selected use
cases and navigation pathways to uncover errors in the
semantics of the interface.
The interface is tested within a variety of environments
(e.g., operating systems, browsers) to ensure that it will
be compatible.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 59
60. UI: Testing specific elements - I
When a user interacts with a WebApp, the interaction occurs
through one or more interface mechanisms. Each
mechanism must be tested:
• Links. Navigation mechanisms that link the user to some other
content object or function.
• Forms. A structured document containing blank fields that are filled
in by the user.
• Client-side scripting. A list of programmed commands in a
scripting language (e.g., JavaScript) that handle information input
via forms or other user interactions.
• Dynamic HTML. Provides access to content objects that are
manipulated on the client side using scripting or cascading style
sheets (CSSs).
• Client-side pop-up windows. Small windows that pop up without
user interaction.
• Server-side scripts. Black-box tests are conducted with an
emphasis on data integrity and script processing once validated
data has been received. In addition, performance testing can be
conducted.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 60
61. UI: Testing specific elements - II
When a user interacts with a WebApp, the interaction
occurs through one or more interface mechanisms. Each
mechanism must be tested:
• Streaming and push content. Streaming content is
encountered when material (usually audio or video) is
downloaded in a manner that allows it to be displayed while it is
still being downloaded (rather than having to wait for the entire
content to be downloaded). Push content is encountered when
content objects are downloaded automatically from the server
side rather than waiting for a request from the client side. Both
streaming and push content present testing challenges.
• Cookies. A block of data sent by the server and stored by a
browser as a consequence of a specific user interaction. The
content of the data is WebApp-specific (e.g., user identification
data or a list of items that have been selected for purchase by
the user).
• Application-specific interface mechanisms. Include one or
more “macro” interface mechanisms such as a shopping cart,
credit card processing, or a shipping cost calculator.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 61
62. Usability Testing
Similar to interface semantics testing in the
sense that it evaluates:
the degree to which users can interact effectively
with the WebApp
the degree to which the WebApp guides users’
actions, provides meaningful feedback and
enforces a consistent interaction approach.
Determines the degree to which the
WebApp interface makes the user’s life
easy
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 62
63. Usability Test Categories
Interactivity. Are interaction mechanisms (e.g., pull-down
menus, buttons, pointers) easy to understand and use?
Layout. Are navigation mechanisms, content, and functions
placed in a manner that allows the user to find them quickly?
Readability. Is text well written and understandable? Are
graphic representations intuitive and easy to understand?
Aesthetics. Do the layout, color, typeface, and related
characteristics lead to ease of use? Do users “feel
comfortable” with the look and feel of the WebApp?
Display characteristics. Does the WebApp make optimal
use of screen size and resolution?
Time sensitivity. Can important features, functions, and
content be used or acquired in a timely manner?
Personalization. Does the WebApp appropriately tailor itself
to the specific needs of different user categories or individual
users?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 63
64. Usability Evaluation: Checklist
Is the system usable without continual help or instruction?
Do the rules of interaction help a knowledgeable user to
work efficiently?
Do interaction mechanisms become more flexible as users
become more knowledgeable?
Has the system been tuned to the physical and social
environment in which it will be used?
Are users aware of the state of the system? Do users know
where they are at all times?
Is the interface structured in a logical and consistent
manner?
Are interaction mechanisms, icons, and procedures
consistent across the interface?
Does the interaction anticipate errors and help the user
correct them?
Is the interface tolerant of errors that are made?
Is the interaction simple?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 64
65. Qualitative Assessment
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 65
66. Compatability Testing
WebApps operate in complex (and often unpredictable)
environments
• Different browsers, screen resolutions, operating systems,
plug-ins, access bandwidths, etc.
Serious errors can be caused by obscure combinations
Most common problem is deterioration in usability:
• Download speeds may become unacceptable
• Missing plug-ins may make content unavailable
• Browser differences can change page layout or legibility
• Forms may be improperly organized.
Compatibility testing strives to uncover these problems
before the WebApp goes online.
• First step is to define a set of “commonly encountered” client-
side configurations and their variants.
• Next, derive a series of compatibility validation tests (from
existing interface tests, navigation tests, performance tests,
and security tests).
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 66
67. Component-Level Testing
Component-level testing, also called function
testing, focuses on a set of tests that attempt
to uncover errors in WebApp functions
Applies the following test-case design
methods:
Equivalence partitioning
Boundary value analysis
Path testing
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 67
68. Selecting Components to Test
Which functionality in the Web site is most critical to
its purpose?
Which areas of the site require the heaviest
database interaction?
Which aspects of the site’s CGI, applets, ActiveX
components, and so on are most complex?
What types of problems would cause the most
complaints or the worst publicity?
What areas of the site will be the most popular?
What aspects of the site have the highest security
risks?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 68
69. Navigation Testing
Each of the following navigation mechanisms should be
tested:
Navigation links. These mechanisms include internal links within the
WebApp, external links to other WebApps, and anchors within a
specific Web page.
Redirects. These links come into play when a user requests a
nonexistent URL or selects a link whose destination has been
removed or whose name has changed.
Bookmarks. Although bookmarks are a browser function, the
WebApp should be tested to ensure that a meaningful page title can
be extracted as the bookmark is created and that dynamic pages are
bookmarked appropriately.
Frames and framesets. Each frame contains the content of a
specific Web page; a frameset contains multiple frames and enables
the display of multiple Web pages at the same time.
Site maps. A site map provides a complete table of contents for all
Web pages.
Internal search engines. An internal (local) search engine allows the
user to perform a key word search within the WebApp to find needed
content.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 69
70. Navigation Semantics
As navigation design creates navigation structures that
collaborate to fulfill some subset of user requirements
These are sometimes referred to as navigation
semantic units (NSUs)
defined by a set of navigation paths (called “ways of
navigating”) that
connect navigation nodes (e.g., Web pages, content
objects, or functionality).
Taken as a whole, each NSU allows a user to achieve
specific requirements defined by one or more use
cases for a user category.
Navigation testing exercises each NSU to ensure that
these requirements can be achieved.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 70
71. Navigation Semantic Testing - I
Is the NSU achieved in its entirety without error?
Is every navigation node (a destination defined for an NSU)
reachable within the context of the navigation paths defined for the
NSU?
If the NSU can be achieved using more than one navigation path, has
every relevant path been tested?
If guidance is provided by the user interface to assist in navigation,
are directions correct and understandable as navigation proceeds?
Is there a mechanism (other than the browser back arrow) for
returning to the preceding navigation node and to the beginning of
the navigation path?
Do mechanisms for navigation within a large navigation node (e.g.,
anchor point links for a long Web page) work properly?
If a function is to be executed at a node and the user chooses not to
provide input, can the remainder of the NSU be completed?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 71
72. Navigation Semantic Testing - II
If a function is executed at a node and an error in function
processing occurs, can the NSU be completed?
Is there a way to discontinue the navigation before all
nodes have been reached, but then return to where the
navigation was discontinued and proceed from there?
Is every node reachable from the site map? Are node
names meaningful to end users?
If a node within an NSU is reached from some external
source, is it possible to process to the next node on the
navigation path? Is it possible to return to the previous
node on the navigation path?
Do users understand their location within the content
architecture as the NSU is executed?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 72
73. Configuration Testing
Configuration variability and instability are
important factors that make Web engineering a
challenge.
• Hardware, operating system(s), browsers, storage
capacity, network communication speeds, and a variety of
other client-side factors are difficult to predict for each
user.
The job of configuration testing is to test a set of
probable client-side and server-side
configurations to ensure that the user experience
will be the same on all of them and to isolate
errors that may be specific to a particular
configuration.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 73
74. Configuration Testing Strategy
Server-side. configuration test cases are designed to verify that the
projected server configuration [i.e., WebApp server, database server,
operating system(s), firewall software, concurrent applications] can
support the WebApp without error.
Client-side. On the client side, configuration tests focus more heavily on
WebApp compatibility with configurations that contain one or more
permutations of the following components:
Hardware. CPU, memory, storage, and printing devices
Operating systems. Linux, Macintosh OS, Microsoft Windows, a mobile-based OS
Browser software. FireFox,Camino, Internet Explorer, Safari, Mozilla/Netscape, Opera,
and others
User interface components. Active X, Java applets, and others
Plug-ins. QuickTime, RealPlayer, and many others
Connectivity. Cable, DSL, regular modem, industry-grade connectivity (e.g., T1 lines)
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 74
75. Security and Performance Testing
Security and performance testing address the three distinct
elements of the WebApp infrastructure
the server-side environment that provides the gateway to Internet
users
the network communication pathway between the server and the
client machine
the client-side environment that provides the end user with a direct
interface to the WebApp.
Security testing focuses on unauthorized access to WebApp
content and functionality along with other systems that cooperate
with the WebApp on the server side.
Performance testing focuses on the operating characteristics of
the WebApp and on whether those operating characteristics meet
the needs of end users.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 75
76. Security Testing
One or more of the following security elements is
implemented:
Firewalls. A filtering mechanism that is a combination of
hardware and software that examines each incoming packet of
information to ensure that it is coming from a legitimate source,
blocking any data that are suspect.
Authentication. A verification mechanism that validates the
identity of all clients and servers, allowing communication to
occur only when both sides are verified.
Encryption. An encoding mechanism that protects sensitive
data by modifying it in a way that makes it impossible to read
by those with malicious intent. Encryption is strengthened by
using digital certificates that allow the client to verify the
destination to which the data are transmitted.
Authorization. A filtering mechanism that allows access to the
client or server environment only by those individuals with
appropriate authorization codes (e.g., user ID and password).
Security tests should be designed to probe each of these
security technologies in an effort to uncover security holes
that can be exploited by those with malicious intent.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 76
77. Performance Testing
Objectives:
• Does the server response time degrade to a point where it is noticeable and
unacceptable?
• At what point (in terms of users, transactions, or data loading) does
performance become unacceptable?
• What system components are responsible for performance degradation?
• What is the average response time for users under a variety of loading
conditions?
• Does performance degradation have an impact on system security?
• Is WebApp reliability or accuracy affected as the load on the system grows?
• What happens when loads that are greater than maximum server capacity are
applied?
• What is the impact of poor performance on company revenues?
Load testing determines how the WebApp and its server-side
environment will respond to various loading conditions.
Stress testing is a continuation of load testing, but in this instance
the variables, N, T, and D are forced to meet and then exceed
operational limits.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 77
78. Change/Content Management
Change management procedures and a content
management system work in conjunction with one another
to help ensure that
all requested changes to WebApp content and functionality
are managed in a way that does not disrupt the Web
engineering process or corrupt the quality of the WebApp
itself, and
all WebApp content is properly collected, structured, and
presented to the end user who requests it.
Change management: ensures that changes are made
correctly, recorded for future reference, and do not conflict
with other changes that have already been made.
Content management: collects, manages, and publishes
all content that is seen by each end-user category,
including content (and functions) that have undergone
change.
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 78
79. Changes
A description that explains the nature of the change
from the point of view of the stakeholder(s) affected by
the change
An impact that describes how the change will manifest
itself externally (what end users will see) and how it will
affect the internal content and functionality of the
WebApp
A target that defines the specific WebApp objects
(both content and functionality) that will be changed
An implementation pathway that describes the
technical aspects of how the change will be made
A history that records when the change was
requested, assessed, and implemented and what
WebApp content and functionality was affected
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 79
80. Content Management
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 80
81. CMS Repository
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 81
82. Future Directions
Where is the Web going?
How will users interact with a “new” Web,
and how will this interaction change our
lives, our work, and our world view?
How will Web engineers respond to future
Web directions, and what tools and
technology will be available to help them?
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 82
83. The Future
Change has begun to occur at an exponential rate and we’re at
the knee of the exponential curve.
Get ready for an exciting ride!
Things to watch:
Web 2.0
Blogs and wikis
Mash-ups
Ajax
Syndication (RSS)
Web services
Semantic Web Applications
The “real-time” Web
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 83
84. Additional Information
One of the first books on Web Engineering:
Pressman R.S. and D. Lowe, Web
Engineering, McGraw-Hill, 2009 (available now)
Links to many Web Engineering resources can be
found at: www.rspa.com/spi
This presentation can be downloaded from:
• www.rspa.com/download/JaSSTutorial.ppt
An Introduction to Web Engineering
Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com 84