Testing web-based application has much in common with the testing of operating systems for desktop computers. You need to test the standard functionality, configuration and compatibility, as well as meet all other standard types of tests. But testing web-based application – it’s more complicated process, because the difficulties multiplied by all the distributed system components that interact with the application. When we see an error in a networked environment, it is often difficult to pinpoint exactly where it occurred, and therefore mode of operation, or an error message that we receive may be a result of errors occurring in different parts of the network system. In this case, error correction would be problematic. So how do we analyze the errors within the system based on Internet technology, and what studies should be performed to correct such errors?
When we understand the basic device technology, we are much more able to increase the efficiency of testing by writing a simple playback, notification of failures and mistakes. In turn, this allows us to quickly detect faults. But it’s much easier to declare than to implement. Especially in the Internet environment. It is full of technological change, to a sufficient degree of error-prone. Here are 5 basic, fundamental judgments about testing Web applications:
Let’s look at these 5 statements in more detail:
1. What we see in reality, the error or symptom?
Without a diagnosis of the environment we can not say with certainty what causes the onset of symptoms. If some of the specific environment variables from the client or the server will be moved or changed, then there is the likelihood that we can not reproduce the problem.
Here’s an example. I’m testing web-based application for tracking defects and am in the process of creating a new error message. When you click NEW, an error message that looks as follows:
Microsoft OLE DB Provider for ODBC Drivers error ’8004014 ‘.
Spend some time exploring the device browser, a dialog box installations browser I find that JavaScript is not active. Activate JavaScript resolves the error. The basic idea is that I add more information about setting JavaScript on communication as a problem. In addition, the item "decontamination JavaScript» is included in my test suite in the future, it will be added to all parts of the application so that all potentially related errors could be detected.
2. Is the error depending on the environment?
To reproduce the error depending on the environment, we should ideally like to duplicate the exact sequence of actions and environmental conditions in which the application will work (operating system, browser version, the additional components of the database server, web-servers of third components, server / client resources, network bandwidth, traffic, etc.). For example, if you try to log into your web-application using dial-up connection at 28.8 Kbps, you’ll be faced with failure to register as long as the authorization process is not interrupted due to the expiration of the selected for this purpose, time . However, registration in the network, held in the same manner, but using T-1 connection at a speed of 1.54 Mbps, will be successful. In this case, you are depending on the medium error, where the dependence is related to network bandwidth.
On the other hand, independent of the medium error is relatively easy to reproduce. There is no need to duplicate the operating environment. All that is necessary for error, independent of the environment – is to duplicate the steps that will reproduce the error. For example, if the company name on all sites with its products misspelled and looks – WebTessting.Con, then you will always see this error, regardless of hardware and software, or resource variables in your operating environment. In other words, we perceive the environment independent of the error as a functionally specific.
3. What is it, the error coding or configuration problem?
Error (or symptoms alleged errors) can be corrected using the coordinates of their location in the program (assuming that the errors in fact exist) or by reconfiguring the system (client, server or network). You should not draw hasty conclusions, believing that it is a mistake.
Microsoft OLE DB Provider for ODBC Drivers error ’80004005 ‘
Here’s an example that illustrates the difficulties in identifying the possible configuration problems, as opposed to actual malfunction of the software. We see an error message, caused by the inability to register ("failed login"). This message is generated web-application. However, just looking at this error message is impossible to determine whether it is in fact a mistake or the result of software failure, problems in the configuration of the server side, the problems of incompatibility, problems with the configuration of your browser, or all together to a greater or lesser degree.
After further analysis of the failure, I have found several possible reasons that could create this error message:
Virtual directory web-server (IIS) was not installed properly.
When the virtual directory is not configured correctly, then the requested files, scripts or data can not be found. Usually, this problem is the server configuration. Although, if the installation program is unable to automatically configure the web-server in accordance with the specification, then it’s a software error. If the system administrator can not be properly configured web-server in accordance with the specification, the error is transformed into a user error.
Directory applications have been configured as follows for the correct execution of scripts.
The standard directory server applications with win scripts that are executed when they are called web-server on the client’s request. For security reasons, web-server can be configured to either allow or block execution of scripts within individual folders. Because if your application server is designed so that it contains the scripts to be executed, and web-server is configured so that block the execution in this directory, your application will not work. What is it then a software error or a configuration problem?
Installed by default, web-page has not been installed properly.
Problem is similar to the problem described above.
SQL Server is inactive.
Application Server requires a connection to the host database, located on the SQL server for queries, stored procedures and data access. If the SQL service is not running, then obviously, the application will not work.
Objects DLL / COM absent or were not successfully registered.
Perhaps, the installation program could not copy all DLL files used by the application server during installation. If any are required to run the server application DLL file is missing, the application will not work.
Perhaps, the installation program correctly copied all the required modules, but failed to register one or more of their number. For example, in such objects, based on OLE, COM, or as DCOM, their class ID (CLSID) must be registered in the database of the registry before they become available for use. If an application tries to access a COM object that has not been successfully registered, it will not work.
This problem often arises as a result of errors during installation. On the other hand, if the components have to be registered manually, then it becomes a problem configuration.
JavaScript installation of the browser have been decontaminated.
This is due to browser configuration problem that occurs when an application requests an unlock browser JavaScript. Is this a bug software configuration problems or technical support?
4. What is the level of actually creating the problem?
Often, errors in the web-systems difficult to reproduce consistently, as a large number of variables represented by the distributed nature of the structure of the client / server applications. There are at least three "usual suspects" in the web-environment. This is the client, server and network.
Both the client and server configurations are carriers of inconsistencies and interoperability, which are similar to PC environments, where all components are "in one box." However, these inconsistencies multiplied within systems client / server, because the network can be connected to multiple clients and servers. Typical configuration inconsistencies and interoperability leads to confusion between the technical and operating system (eg, blocks, based on UNIX, as opposed to those that are based on Windows), and mixing software on the server side (web-server packages, database server, firewall, COM objects, CORBA objects, etc.). Mismatches can also lead to confusion between the software on the client side (line TCP / IP, dial-up software, the components of care, brands and versions of browsers). In addition, such a setup the browser, as general settings, connection settings, security settings (including ActiveX controllers, plug-ins (plugins), Java, scripts, downloads, user authorization, etc.), customize the content, program settings, and other advanced settings (including the viewing options, multimedia options, options, Java VM, printing options, and HTTP options), provide a set of variables that must be tested and included in the study.
Networks also offer another set of variables. They affect the web-application in several areas, including time-related problems (channel status, work stoppages, etc.) which we owe thanks to a through the channels and waiting time, the possible configuration and compatibility issues with hardware such as gateways and routers and the adverse effects associated with the work of security services.
5. Static and dynamic operating environments differ from each other.
There are 2 classes of operating environments, each of which has its own unique test of inclusion:
Static Environments, in which the problems of incompatibility may exist independently of variables such conditions as processing speed and available memory.
Dynamic Environments. In them all the way around – compatible components can detect errors in accordance with related memory errors and latent conditions. (We will discuss dynamic environments in more detail later in this section.)
Configuration problems and compatibility can occur at any point within the web-based system: they can appear on the client, server or network.
Configuration problems affect different installation of software and hardware server, browser settings, network connections and configure TCP / IP queue. Example from your browser’s settings and JavaScript, considered earlier, illustrated one type of configuration problem.
Our sample application under test has some relevant charting, which allows the user to create metric reports, such as a bar and line charts. When a user requests a metric report pseudocode application server works in the following sequence:
In the process of testing an application I found that feature in the construction schedule has been working with only one of the above configurations. As a result of further review, it became clear that the issue only to the two-block configuration. After checking the code it turned out that the problem was in paragraphs 2 and 3. The second paragraph of the query result c: temp chart.val was recorded nalokalny drive database server. In the third paragraph Chart Java Applet was running on application server, which was located on different database server blocks. When you try to open the file c: temp chart.val on the local drive application server is that the file there simply is not.
In this case I am not suggesting that you read the code every time you encounter an error. Let the work to correct the problems involved developers. I just want to point out the need to determine which server is a configuration problem and include this information in the reports of irregularities. I would also ran a surface test kit at all distributed configurations that are supported by the tested application server.
Problems of compliance are also important in the static operating system environments.
This does not mean that Internet Explorer is better than Netscape Navigator. It just means that there are problems between browsers inconsistencies and that the code can not assume that work for relative paths (to file) for all browsers. More importantly, it means that if you encounter an error in one environment to another environment, it may not occur, provided that it is a mistake, depending on the environment.
Once during each regular test procedure attribute particular environment does not remain constant, this leads to the fact that the operating environment is dynamic. Attribute can be anything from a particular resource (available RAM, disk space, etc.) to select a specific time (waiting time network, the procedure improved user transactions, etc.)
When a test case depends on the accurate reproduction of a set of actions, and the operating environment, while the medium may not be reproduced (in accordance with its dynamic nature), then the error becomes nonreproducible or playing hard.
Incidentally, this is the reason for the errors related to memory, are often hard to reproduce. When, for example, there is a bug in the code memory overwrites, it will always create the corresponding problem. However, in terms of black box testing method, we do not have the opportunity to see the symptom of this error before until a specific overwritten byte (s) of code or data will not be executed or read. In this example, a set of actions represents the exact set of features a black box. Failed to overwrite memory predstavyaet a factual error in the code. Condition under which the overwritten byte is made or read, represents the dynamic operating environment or condition required to reproduce the problem.
Here is a sample-dependent dynamic environment error web-application, which we consider time-related error.
Requirements specification:
Look for time-related error. These screenshots page Setting Up Projects, taken before and after, let us see that the application failed to identify duplicate names "Doomed".
User B adds the project name Doomed. JavaScript of your browser does not define it as a pre-existing, and therefore adds the name in the database, and in the return list. An updated list of project titles is sent back to user B.
Later, the user A adds the same name Doomed in the project list. JavaScript to the browser does not specify it in the HTML list, and therefore re-adds the name of the Doomed to the database and in return the list. An updated list of project titles is sent back to user A incorporating the two points Doomed.
This result does not meet the specifications of the product. Even though this situation is well illustrated by test case, the random discovery of this error and attempt to reproduce it – the task is not simple. In this example, the error itself is that the application failed to check and correct the duplicate names from the server side (in addition to checking on the client side). Steps include the user’s actions A. The dynamic operating system created by user B, which are hidden from the user A or simply unknown to him.
To analyze and reproduce errors in the web-environment to be effective, you need to have leverage on operating environment. You also need to understand how specific environmental variables may affect the ability to play your mistakes. I hope that thanks to some skills that you can gather from this article, your experience web-testing will become less frustrating and enjoyable.
Remember that nothing can replace your skills test and your ability to offer good test cases. Do not be afraid to ask "What if …?», make detailed notes and methodically examine seriously reproducible error. These are the skills that will be your helpers, not only in the study of errors, but also in finding other problems associated with them.