Presentation on theme: "An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. www.rspa.com1 An Introduction to Web Engineering by Roger S. Pressman."— Presentation transcript:
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Web-Based Systems In the early days of the Web, we built systems using informality, urgency, intuition, and art Informality leads to an easy work environment—one in which you can do your own thing. Urgency leads to action and rapid decision making. Intuition is an intangible quality that enables you to “feel” your way through complex situations. Art leads to aesthetic form and function—to something that pleases those who encounter it. Problem is—this approach can and often does lead to problems
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. But Why? As WebApps become larger and more complex, Informality remains, but some degree of requirements gathering, planning and design are necessary Urgency remains, but it must be tempered by a recognition that decisions may have broad consequences Intuition remains, but it must be augmented by proven management and technical patterns Art remains, but it must be complemented with solid design Bottom line—we must adapt the “old-school” approach to the realities of a Web 2.0 world
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. And What’s the Response? Web Engineering
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. In this tutorial … We’ll talk about the characteristics of Web- based systems and applications The WebE process and the activities that populate the process Communication, planning, analysis, design, and Emphasis -- Testing WebApps Also, (briefly) other WebE issues
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The Web An indispensable technology In virtually every aspect of modern living A transformative technology Changes the way we do things Changes the way we acquire and disseminate information An evolving technology Bottom line—high impact on everyone in the modern world
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. WebApps A Web application (WebApp) encompasses: complete websites specialized functionality within websites, and information-processing applications that reside on the Internet or on an Intranet or Extranet.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Web Engineering We define it this way: an agile, yet disciplined framework for building industry-quality WebApps. We must understand the meaning of: Agile Disciplined framework Industry quality
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. What is an Agile Process? Agile Web engineering combines a philosophy and a set of development guidelines. The philosophy encourages: customer satisfaction early incremental delivery of the WebApp small, highly motivated project teams informal methods minimal work products overall development simplicity. An agile process stresses delivery over analysis and design (although these activities are not discouraged), and active and continuous communication between developers and customers.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. What is a WebE Framework? A framework is a set of activities that will always be performed for every Web engineering project – though the nature of the activities might vary to suit the project. Each framework activity is composed of a set of actions Actions encompass work tasks work products quality assurance points, and project milestones A framework also has a set of “umbrella activities”
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. A Generic Framework
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The WebE Framework: Activities Communication. Involves heavy interaction and collaboration with the customer (and other stakeholders) and encompasses requirements gathering and other related activities. Planning. Establishes an incremental plan for the WebE work. Modeling. Encompasses the creation of models that assist the developer and the customer to better understand WebApp requirements and the design Construction. Combines both the code generation (e.g., HTML, XML, Java) with testing that is required to uncover errors in the code. Deployment. Delivers a WebApp increment to the customer who evaluates it and provides feedback based on the evaluation.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The Influence of Software Engineering Quality: fosters a continuous process improvement culture Process: the glue that holds the technology layers together Methods: provide the technical how-to’s Tools: support for the process and the methods
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. WebE Best Practices Take the time to understand business needs and product objectives, even if the details of the WebApp are vague. Describe how users will interact with the WebApp using a scenario-based approach. Always develop a project plan, even if it’s very brief. Spend some time modeling what it is that you’re going to build. Review the models for consistency and quality. Use tools and technology that enable you to construct the system with as many reusable components as possible. Don’t reinvent when you can reuse. Don’t rely on early users to debug the WebApp—design and use comprehensive tests before releasing the system.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The WebE Process The process must be agile and adaptable, but it must also be incremental Why incremental? Requirements evolve over time Changes will occur frequently (and always at inconvenient times) Time lines are short Incremental delivery allows you to manage this change!
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. WebE Process Activities & Actions
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Umbrella Activities Change management. Manages the effects of change as each increment is engineered, integrating tools that assist in the management of all WebApp content Quality assurance. Defines and conducts those tasks that help ensure that each work product and the deployed increment exhibits quality Risk management. Considers project and technical risks as an increment is engineered Project management. Tracks and monitors progress as an increment is engineered
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The Communication Activity Understand the problem before you begin to solve it, and be sure that the solution you conceive is one that people really want To do this, you’ll need to: Formulate Elicit Negotiate
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Formulation Focuses on defining the project needs and scope begins with the identification of a business need moves into a description of WebApp objectives defines major WebApp features, and establishes a basis for the elicitation action that follows. allows stakeholders and the WebE team to establish a common set of goals and objectives for the creation of each WebApp increment identifies the scope of the development effort and provides a means for determining a successful outcome
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Elicitation The intent is to gather detailed requirement collaboratively with all stakeholders To do this: A meeting (either physical or virtual) is conducted and attended by all stakeholders. Rules for preparation and participation are established. An agenda is suggested that is formal enough to cover all important points but informal enough to encourage the free flow of ideas. A facilitator (can be a customer, a Web engineer, or an outsider) controls the meeting. A definition mechanism (can be work sheets, flip charts, or wall stickers or an electronic bulletin board, chat room, or virtual forum) is used.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Capturing Interaction: Use Cases Use cases describe how a specific user category (called an actor) will interact with the WebApp to accomplish a specific action. Use cases are developed iteratively. Only those use cases necessary for the increment to be built are developed during the communication activity for the increment. Use cases enable you to: provide the detail necessary for effective planning and modeling activities. help you to understand how users perceive their interaction with the WebApp. help to compartmentalize Web engineering work because they can be organized into WebApp increments. provide important guidance for those who must test the WebApp.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Negotiation Ideally, requirements are defined in sufficient detail to proceed BUT, in reality, requirements are often contradictory or infeasible (within the context of real-world constraints, such as cost or time). Negotiation involves working with the stakeholders to balance functionality, performance, and other product or system characteristics against cost and delivery time. The best negotiators strive for a win-win result. it’s a good idea to determine each of the stakeholders’ “win conditions”.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The Planning Activity But the scope of planning activities varies among people involved in a WebE project A team leader plans, monitors, and coordinates the combined work of a WebE team. A Web engineer manages day- to-day work—planning, monitoring, and controlling technical tasks. Takes an agile approach to planning Adapt effort and time spent on planning to the complexity of the WebApp increment
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Planning guidelines Understand scope before you define work tasks or schedule for an increment Refine framework actions and tasks Be sure you have the right team Evaluate risks Define a schedule Identify quality filters Determine how you’ll manage change
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Managing Quality What Quality Assurance Mechanisms Can the Team Use? A thoughtful, thorough communication activity Careful requirements gathering Pair walkthroughs to assess the quality of all work products Create a generic checklist that you can use to assess models Use tests to uncover errors
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Pair Walkthrough Review the product, not the producer. Set an agenda and maintain it. One of the key maladies of meetings of all types is drift. A walkthrough should be kept on track and on schedule. Limit debate and rebuttal. When an issue is raised by a reviewer, there may not be agreement on its impact. Rather than spending time debating the question, the issue should be recorded for resolution later. Enunciate problem areas, but don't attempt to solve every problem noted. A walkthrough is not a problem- solving session. Take written notes. Notes may be entered directly into a notebook computer. Spend enough time to uncover quality problems, but not one minute more. In general, a team walkthrough should be completed within 60 to 90 minutes at the most.
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. Change Management
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. The Modeling Activity All models are wrong, but some models are useful. George Box We model our perception of reality so that we can understand and change it, but our models of reality are not perfect. Analysis modeling helps you to understand the nature of the problem Design modeling helps you understand the architecture and internal structure of the WebApp
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Design Actions
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. 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. 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. 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. 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. 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. 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. 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. Construction and Deployment
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. 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. 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. 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. 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. 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. 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. 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. 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. The Testing Process
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. 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. 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. 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. 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. 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. 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. 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. 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. Qualitative Assessment
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Content Management
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. CMS Repository
An Introduction to Web Engineering Copyright 2009 R.S. Pressman & Associates, Inc. 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. 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. 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: This presentation can be downloaded from: