Académique Documents
Professionnel Documents
Culture Documents
-Amarendra (13it01f)
Web applications are complex, software-intensive systems, providing hyper textual contents, computational facilities and services. Furthermore, they typically work in a distributed, asynchronous fashion. Correspondingly, the quality of Web applications is a complex, multidimensional attribute. The problem of improving the quality of Web applications involves several aspects, including the extraction of suitable models, testing, restructuring, and assessment of multilingual alignment and accessibility. The approach moves from the observation that several methods for the analysis and comprehension of traditional software exist that could be fruitfully adapted to the study of Web applications. The overarching idea is therefore that of identifying specific problems in the development of Web applications, and to resort, for their solution, to well established software engineering methods. Of course, one cannot expect these to work without some kind of porting or adaptation - one that oftentimes involves radical and creative rethinking of models, techniques and algorithms.
Improving Test Case Generation for Web Applications Using Automated Interface Discovery
-William G.J. Halfond and Alessandro Orso With the growing complexity of web applications, identifying web interfaces that can be used for testing such applications has become increasingly challenging. Many techniques that work effectively when applied to simple web applications are insufficient when used on modern, dynamic web applications, and may ultimately result in inadequate testing of the applications functionality. To address this issue, the paper presents a technique for automatically discovering web application interfaces based on a novel static analysis algorithm. It also reports the results of an empirical evaluation in which it compare the technique against a traditional approach. The results of the comparison show that the technique can discover a higher number of interfaces and help generate test inputs that achieve higher coverage. In this paper they presented a novel, fully automated static analysis technique for discovering web application interfaces and supporting web application testing. Most existing techniques either require developers to manually specify the interfaces to an application or, if automated, are often inadequate when applied to modern, complex web applications. They evaluated the approach by comparing it to a traditional approach based on web crawling. The technique was able to discover a higher number of interfaces for all seven web applications considered. The evaluation also showed that using the discovered interfaces and domain information to guide test input generation led to a significantly higher coverage than test input generation based on the results of conventional web-crawling techniques.
To obtain the state-flow graph shown in Figure 2, CRAWLJAX: 1) clicks Todo - Add - Save - Remove - Yes. Cycle detected: Stop in state1. (# of Items in the list: 0) 2) Backtracks to state4: Todo - Add - Save - Remove. (# of Items: 0) 3) Clicks No. Cycle detected: Stop in state2. (# of Items: 1) 4) Backtracks to state2: Todo - Add (# of Items: 1) 5) Clicks Cancel, ends up in state3 (# of Items: 1), and stops.
This paper presents an approach for controlling the highly dynamic nature of modern web user interfaces, in order to conduct robust web regression testing. The contributions of this paper include: A method, called Oracle Comparator Pipelining, for combining the power of multiple comparators, in which each comparator processes the DOM trees, strips the targeted differences, and passes the result to the next comparator in a specified order. The combination of oracle comparators with preconditions, to constrain the state space on which a comparator should be applied as well as a method for updating the test suite. Automatic generation of structural templates for common DOM structures such as tables and lists, and support for manual augmentation of application-specific templates, which can be used as invariants. Implementation of these methods in the open source tool CRAWLJAX, which, besides the crawling and test generation part, comes with a set of plugins for generic oracle comparators, support for visualization of test failure thorough a generated report to give insight in the DOM differences, and a GUI to view the added and removed states in each crawl session. An empirical evaluation, by means of two case studies, of the effectiveness and scalability of the approach, as well as the manual effort required.