Monday, December 12, 2011

Chapter 20

Chapter 20
Testing for Web Applications

CHAPTER OVERVIEW AND COMMENTS

Of all Web engineering tasks, testing is arguably the most important. At the same time, many practitioners have a relatively weak understanding of WebApp testing. As a result, WebApp testing is conducted poorly. That is a cause for concern.
The intent of this chapter is to introduce the important elements of testing for WebApps. Both testing strategy and tactics are considered in this chapter.

20.1     Testing Concepts for WebApps
There has been much discussion of quality attributes and concepts throughout SEPA. I think it’s a very important topic. However, students my begin to roll their eyes when the subject is introduced yet again in this section. If time permits, it would be worthwhile to tie the “dimensions of quality” presented in Section 20.1.1 with other quality discussions presented in Chapters 9, 15, 19, and 26. Where are the differences? Where are there similarities?
Section 20.1.2 discusses the characteristics of WebApp errors. Emphasize to your students that they must understand the nature of WebApp errors before they can hope to design tests to uncover those errors. 
Be certain to emphasize the testing strategy discussed in Section 20.1.3 and the need to develop a test plan for any major WebApp.

20.2     The Testing Process—An Overview

Use Figure 20.1 as a point of departure for your discussion of the WebApp testing process. This section serves as a TOC for sections that follow.



20.3     Content Testing

Spend some time discussing the questions posed in Section 20.3.1. Ask you student what types of “tests” they would design to answer each of these questions.
Database testing (Section 20.3.2) is an advanced topic and may be too specialized for inclusion in an introductory course. However, if time permits, an overview of the key issues is recommended. Use Figure 20.2 as a point of departure for your discussion.

20.4     User Interface Testing
The interface testing strategy presented in Section 20.4.1 should be emphasized during lecture. It is important to note that it is sometimes difficult to make a clear distinction between interface testing, usability testing, and even navigation testing. Interface testing attempts to find errors in the syntax or semantics of user interaction.
Interface mechanics (syntax) are tested by examining the interface mechanisms discussed in Section 20.4.2. Interface semantics (Section 20.4.3) examine how the interface achieved required user functionality and features.  Usability tests address issues presented in Section 20.4.4. Use Figure 20.3 as a trigger for this discussion.
20.5     Component-Level Testing
Component level testing uses techniques presented in Chapters 13 and 14. You may want to revisit black-box and white-box techniques as part of this discussion.
20.6     Navigation Testing
Like interface testing, navigation testing attempts to find errors in the syntax or semantics of navigation. Discuss each of the navigation mechanisms noted in Section 20.6.1 and ask your student how they might test each in a generic sense.
The NSU (Chapter 19) is the driver for testing navigation syntax, a topic discussed in Section 20.6.2. Review the questions posed in this section.
20.7     Configuration Testing
It might be best to begin this discussion by considering the vagaries of an Internet-based client/server environment. The discussion presented in this section is fairly rudimentary, focusing on configuration compatibility issues on both the client and server sides.
If your students have a solid background in client/server architectures, you might expand this discussion (as time permits) to cover more advanced topics.
20.8     Security Testing
I only present an overview of this topic in SEPA. It’s likely that your students will find this fascinating and if time permits, you might want to extend coverage a bit.
If you intend to spend some time here, you’ll need to supplement SEPA content with outside sources. See the SEPA Web site for resource recommendations.
20.9     Performance Testing
Performance testing addresses the questions posed in the introduction to Section 20.9.1. Specific testing methods—load testing and stress testing—are conducted to answer these questions.
Be certain that your student understand the subtle difference between load and stress testing and the intent of each. 
If time permits, have your students investigate one or more testing tools suggested in the sidebar.

No comments:

Post a Comment