CSI 5111 Web Testing vs. Traditional Testing
Dr. Robert L. Probert S.I.T.E., University of Ottawa October 2005
Contents - Web Testing vs. Traditional Testing • The Application Model • Hardware and Software Differences • Web vs. Traditional Client-Server • Web Systems • Bug Inheritance • Other Issues
The Application Model (1)
• A computer system receives input from the User, stores that input, uses the stored input in a computation and then returns the results to the User through the User Interface as output.
The Application Model (2)
• A mainframe system where all applications processes (except for User Interface controls) reside on the mainframe computer. A dumb terminal acts as the User Interface and simply echoes input to the mainframe.
The Application Model (3)
• A Desktop PC system consolidates all processes - from UI through rules to file systems- on a single physical box. No network is required.
The Application Model (4)
• A Client-Server system contains at least two machines, a client computer and a server computer, which provides requested data to the client computer.
The Application Model (4, continued) • The client-server model: • The server receives input from the client and manipulates the data by applying the application’s business logic rules. • Business logic rules are the computations that an application is designed to carry out based on user input. • The client-server model is not as clearly segmented as the server or desktop models. Computation time and storage can be split between both the client and server. • Server-side processes can be split up between multiple machines.
Hardware and Software Differences • A traditional mainframe system is a controlled environment, meaning that hardware and software are primarily supported, end to end by the same manufacturer. • A single desktop system consists of mixed hardware and software- multiple components built by a variety of manufacturers, which allows for virtually limitless combinations of hardware and software. • A Web system consists of many individual clients and servers all of which may have different (multiple-vendor) hardware and software configurations.
Web vs. Traditional ClientServer • Client-Side Applications: • Most client-server systems are data-access-driven applications. A client typically enables users, through the UI, to send and receive data, and interact with the back end. • Most Web-based systems are also data-access-driven applications. The main difference is that the Web-based client is operating within the Web browser’s environment.
Web vs. Traditional ClientServer (2) • Event Handling: • In the GUI and event-driven (FSM) models, inputs are events. Events are actions taken by users, the primary examples being a mouse click or keyboard entry. • Testing event-driven applications is more complicated because it’s very labor-intensive to cover the testing of the many possible combinations and sequences of events. • A good understand of the event-driven model is needed to be able to develop usefful test cases and reproduce errors effectively.
Web vs. Traditional ClientServer (3) • Application Instance and Windows Handling: • Standard event-based applications may support multiple instances, meaning that the same application can be loaded into memory many times as separate processes. • Many event-based applications also support having multiple documents available simultaneously. Such programs are said to be multiple document interface (MDI) applications . • The Web browser interface is considered flat because it can only display one page at a time.
Web Systems
Web Systems (2) • Hardware Mix: • Web systems (both client and server) often contain a mix of many brands of hardware to support, which can lead to an environment that is hard to control. • These hardware mixtures present testing challenges because different computers in the same system may employ different OSs, CPU speeds, buses, I/O interfaces, and more. • Software Mix: • Web systems may consist of various OSs, Web servers, firewalls, database servers, e-commerce servers, etc.
Web Systems (3) • Software Mix (continued): • Software is often designed to run on a wide range of platform and OS combinations, and risks of software incompatibility are always present. • Server-Based Applications: • Since a typical user doesn’t interact with the server directly, it is sometimes difficult to reproduce errors that deal with the server, or to correctly diagnose problems.
Bug Inheritance • Web applications often rely on preexisting components. Unfortunately this means that newly created systems often contain the bugs that exist in those components. • This problem has two major impacts on testing: • Objects and existing components need to be checked and tested thoroughly before including them in any code. • Regression testing must be executed comprehensively.
Other Issues • Back-End Data Accessing: • Data in a Web system is often distributed; that is, it resides on one or more (server) computers rather than on the client. • Thin-Client versus Thick-Client Processing: • Thin-client systems do very little processing, and in general simply display formatted server output. • Thick-client systems might have the entire UI portion of the application as well as execution of some or all of the business logic on the client side. There may be more incompatibility issues on a thick-client system.
Other Issues (2) • Interoperability: • Interoperability is the ability of a system or components within a system to interact and work seamlessly with other systems or other components. This is normally achieved by adhering to certain APIs, communication protocol standards, or to interface-converting technology such as Common Object Request Broker Architecture (CORBA). • It is essential that the test-planning process for any Web application include a study of the system architectural design.