A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
With the rapid development of network technology, especially the popularization of web and its application, all kinds of web-based applications are becoming the focus of software development with its convenience, rapidity and easy operation. At the same time, with the increasing demand and application fields, the correctness and validity of the Web application software and the Web server are put forward more and more high performance requirements, and the effective system testing of Web application is becoming an important research topic.
A variety of Web server platforms are now available, however, according to Mereury's research, 98% of Web servers have failed to achieve the desired performance, averaging only about 1/6 of what people expect. Web performance testing can identify key factors that affect Web server performance, allowing for targeted analysis and improvement, avoiding blind behavior in Web server research and optimization, and an important reference for selecting different Web servers.
Web application testing differs from traditional software testing, and it has its own characteristics. Below we have a more in-depth discussion.
Second, web testing technology
(i) Web application architecture
The Web application adopts B/s structure, which is a new kind of architecture which is improved and developed by the C/s structure with the continuous progress of Internet technology. In this structure, the user interface is implemented entirely through the WWW browser, some of the transaction logic is implemented at the front end, but the main transaction logic is implemented on the server side to form the so-called 3tier structure. b/S structure using the browser technology of continuous maturity and popularity to achieve the original need for complex special software to achieve the powerful features, and save the development cost, is a new software system construction technology. This structure has become the preferred architecture for today's application software development, and the most popular Mi bld crosoft.net is the architecture that is presented in such a context.
Traditional software usually adopts C/s structure, which puts the database content on the remote server, and installs the corresponding software on the client. c/S software generally adopts two-layer structure, the C/s structure is technically mature, its main features are strong interactivity, safe access mode, low network traffic, fast response, and facilitate the processing of large amounts of data. However, the structure of the program is targeted development, the change is not flexible, maintenance and management is more difficult.
(ii) Content and purpose of web testing
In many cases, we have to locate the purpose of the test to find the software bug, and to find the bug as far as possible, and what the testers do is to find the problem of software, as long as the problem can be found, so it is easy to bring a series of problems. For example, testers to a site to test, and submitted a simple test report: "When 100 users jointly press a Submit button, a large number of submissions failed." For testers, he has completed his own tasks and identified bugs, but such test reports are useless for developers and project managers. The report does not mention the reasons for the failure of the submission, such as insufficient hardware resources, network problems, support software parameter setup errors or application development issues, and so on.
The purpose of testing is falsification, but can not be one-sided understanding as simple to find the bug on it. Software testing should go through the following four steps:
1. Testers describe the problems found (find bugs);
2. The tester details the circumstances under which the test was found, including the environment of the test, the data entered, the type of problem found, the severity of the problem, etc.
3. Testers together with developers to analyze the cause of the bug, to find out the shortcomings of the software;
4. Testers are categorized according to the situation, so as to provide references for future software design, and to avoid similar software defects in the future.
(iii) Development of a Web test plan
Once we have identified the purpose of the test and really started testing it for a Web application, we need to develop a detailed test plan that will successfully complete all of the test content, and the content of the plan is summarized in the following steps:
1. First, the tested Web application needs analysis, that is, the test you do a brief introduction, including describing the goals and scope of the test, the goal to achieve a test of what kind of function, summary of basic documents, the main activities.
2. Write Test strategies and methods, including test start conditions, types of tests, criteria for starting tests, test features, test pass or fail criteria, end-of-test conditions, what conditions are encountered during testing, and how to recover after processing.
3. Determine the requirements for the test environment (including software and hardware aspects) and select the appropriate test tools.
4. It focuses on the behavior of your tests, describing the details of your tests, including test case lists, schedules, error level analysis, summary of test plans, and risk analysis during the testing process.
(iv) Types of tests
Types of Web tests include content testing, interface testing, functional testing, performance testing, compatibility testing, security testing, and more. Content testing, interface testing, and compatibility testing are relatively simple and are not in the details. Functional testing of the web is not the same as the traditional software testing, mainly in connection testing is a little different, the data transfer is slightly more complex. Because the Web software is the B/s structure, the client needs services are provided by the server, so the main test server on the performance of the software running. Testing of Web applications includes the steps for testing and stress testing of Client Connection server speed, performance testing:
First, analyze the product structure, identify the performance testing requirements, including concurrency, limits, configurations and indicators and other aspects of performance requirements, if necessary, the same measurement based on the load test need to consider the requirements of stability testing.
First, analyze the application scenarios and user data, subdivide user behavior and related data flow, determine the test point or test interface, list the possible bottlenecks of the system interface, usually first the backbone interface feeder interface, and complete the preliminary test case design.
Thirdly, the test network design based on the requirement of performance test and the test point is determined, and the importance degree or priority of different network schemes is the basis of the choice evaluation, and the testability design scheme and the requirement of testing tools in the pre-product design are put forward when necessary.
Finally, complete the performance test case design, classification selection and design test procedures based on user behavior analysis and prepare test data for test cases.
Five, determine the testing tools used.
The first Test, based on the availability of the backbone interface, analyzes the performance bottleneck according to the test results, and ensures the test environment by iterating the basic indicators.
In VII, the iteration performs a comprehensive performance test to complete the execution of the performance test case in the plan.
Complete the Performance Test evaluation report.
In performing performance tests, we need to know some of the effective performance indicators, let us list some of the main performance indicators:
First, the general indicator (refers to the Web application server, the database server must test the item):
*processortime: Refers to the server CPU utilization rate, the average reaches 70% when the service is nearly saturated;
*memory Available MByte: The number of available memory, if the test found that memory changes should also be noted, if the memory leak is more serious;
*physicsdisk Time: Physical Disk read and write times.
Second, the Web server metrics:
*avg Rps: Average number of responses per second = Total Request time/seconds;
*avg time to last byte per Terstion (mstes): The average number of iterations per second of the business corner; *successful Rounds: a successful request;
*failed Rounds: Failed request;
*successful Hits: The number of successful clicks;
*failed Hits: The number of failed clicks;
*hits per Second: number of clicks per second;
*successful Hits per Second: Number of successful clicks per second;
*failed Hits per Second: Number of failed clicks per second;
*attempted Connections: Number of attempts to link.
Third, the database server metrics:
*user 0 Connections: Number of user connections, that is, the number of connections to the database;
*number of deadlocks: Database deadlock;
*butter Cache Hit: The hits of the database cache.
(v) Introduction of testing tools
1. ACT (or Msact). Act is Microsoft's visual Studio and visual Studio.NET with a set of program testing tools, act can not only record the program running detailed data parameters, the chart shows the program health, and the installation and use are relatively simple, the results are easy to read, is a set of more ideal test tools.
Microsoft Web Application Stress tool (WAS): This is a Microsoft product like Act, but this tool is not integrated with Visual Studio and can be used alone. It feels like the program is still being tested, but some basic functions are complete, almost all functions of act can be done, and was is used more simply, and the settings are more complete and clear. Another feature of this tool is that its reports are plain text files, not popular HTML file formats, but the content is not inferior.
2. Open System Testing Architecture (Opensta). Opensta is characterized by the ability to simulate a lot of users to access the Web site that needs to be tested, which is a powerful, custom set of fully functional software, but most of these settings need to be done through script, so before you can really use this software, you must learn its script writing. If you need to complete a very complex function, script requirements are relatively high, of course, this is also its advantages, some programmers do not care about these script. This software is completely free and the source code can be downloaded and can be modified to meet specific requirements.
3. Pureload. Pureload is a Java-based test tool whose script code uses XML completely, so the code is simple to write, its test report contains text and graphics and can be exported as HTML files. Because it is Java-based software, it is possible to enhance the functionality of the software through the Java Beans API.
4. Qaload. Qaload not only test the Web application, but also test some background things, such as SQL Server, as long as it is supported by the protocol can be tested, the other point, qaload can not only test windows, but also can test AIX, HP-UX and Solaris systems. However, the software is very expensive.
5. LoadRunner. Mercury LoadRunner is a load test tool that predicts system behavior and performance. LoadRunner is able to test the entire enterprise architecture by identifying and locating problems in a way that simulates the concurrent load and real-time performance monitoring of tens of thousands of users. By using LoadRunner, businesses can minimize test time, optimize performance, and accelerate the release cycle of application systems.
For large companies with deep pockets, this software may be more suitable, its function and qaload comparable, the market famous companies such as IBM, SUN, Oracle and so on the use of this software. But its price is also unattainable, and the function is proportional.
Iii. further work and discussion
With the application of total Quality management in the field of software development and the continuous advance, software testing has been extended to the whole process of software semi-finished product and even process products, which is an inevitable extension of software testing. Web testing will continue to evolve over the life cycle of web software with this idea, which will allow for higher quality of web applications, something that we need to look at later. In particular, the Web stress test Adaptive model of the exploration has just begun, there are many shortcomings, such as: the current test of human-computer interaction is more, and the automatic completion of fewer steps, these are to be improved later.
In addition to the web stress tests described earlier, the main research hotspots of Web testing are: Framework research of Web application testing, research on object model of Web application testing and its application, high automation of web testing, etc., will be the focus of research in the future period.
Web Performance Testing
Start building with 50+ products and up to 12 months usage for Elastic Compute Service