A framework for automated testing of javascript web applications (original) (raw)
Related papers
Plug-ins an Added component for automatic testing of Modern Web Applications
Current practice in testing JavaScript web applications requires manual structure of test cases, which is hard and tedious. It existing a framework for feedback-directed automated test generation for JavaScript in which execution is monitored to collect information that directs the test generator towards inputs that yield improvedreportage. Present-day web applications are very self-motivated in nature with rich user experience. Such applicationstypically use Web 2.0 and Asynchronous JavaScript and XML (AJAX) technologies. These applications arevery different from conventional web applications as they use stateful C/S communication in an asynchronousfashion. The use agent is able to communicate with web server without explicit form submission. This capabilitymakes the technology to support Rich Internet Applications (RIA). However testing such applications is atedious assignment. This paper suggests a tool that robotically tests AJAX applications. The mechanismmakes use of a crawler to capture the client side fields and generate a state-flow which is basis for thecompletion of automatic analysis. ADOM tree is constructedbuilt on the client side state which is useful to navigate tovarious parts of the tree in order to test the files. Different invariants of DOM tree are constructed for covering all statesof the presentation. This tool also types use plug-in concept for implementation of a tool thatcaters the present and future needs of the application. The real-world results exposed the proposed prototypeis able to capture AJAX faults and report them to development team.
A Complete Automation of Unit Testing for JavaScript Programs
Problem statement: Program testing is expensive and labor intensive, often consuming more than half of the total development costs, and yet it is frequently not done well and the results are not always satisfactory. The objective of this paper is to present an automatic test data generation tool that aims to completely automate unit testing of JavaScript functions. The methodology: In order to use the proposed tool, the tester annotates the files that contain the class to be tested. Moreover, the tester must specify the test data coverage criterion to be used, either branch coverage or mutation analysis. However, the tool is then integrated into the JavaScript compiler and test generation is invoked by a command line option. Also, the code to be tested is parsed into an abstract syntax tree from which the test tool generates a program dependency graph for the function under test. However, if mutation analysis coverage is required, the abstract syntax tree for a meta-mutant program is also generated. To provide guidance for the test data search, the function under test instrumented in accordance with the coverage criterion. Branch predicate expressions are always instrumented, in the case of mutation coverage, mutated statements are also instrumented. Compilation then continues from the modified abstract syntax tree to generate instrumented executables that were loaded into the test data search module. Results: The experiment done in our study by using the proposed tool for branch coverage shows that the most effective result for string equality was obtained using the edit distance fitness function, while no significant difference was found in the fitness function for string ordering. Through exhaustive mulation coverage 8% are found to be equivalent. Conclusion: By having a complete automation it reduces the cost of software testing dramatically and also facilitates continuous testing. It is reported that at least 50% of the total software development costs is due to testing, and 10-15% of development time is wasted due to frequent stops for regression testing. Automation will also help get rid of cognitive biases that have been found in human testers. Acknowledgment: The researcher would like to express their gratitude to the anonymous referees for their valuable and helpful comments and suggestions in improving the study.
Contract-Driven Testing of JavaScript Code
Lecture Notes in Computer Science, 2010
JSContest is a tool that enhances JavaScript with simple, type-like contracts and provides a framework for monitoring and guided random testing of programs against these contracts at the same time. Function contracts in JSContest serve a dual role as specifications of the input/output behavior and as test case generators. Generation of test data for a contract is principally random, but can be guided by annotations on the contract to achieve higher coverage. Annotations may indicate dependencies among parameters or between parameters and the result or they may select lightweight program analyses, the results of which influence the choice of test data. A case study substantiates that JSContest finds type-related errors with high probability.
Rigorous and automatic testing of Web applications
… Conference on Software Engineering and Applications, 2002
As web applications become more and more prevalent, the quality assurance of web applications has become more and more important. Due to the complexity of the underlying technologies of web ap-plications, it is more challenging to test web applica-tions than ...
Guided Test Generation for Web Applications
We focus on functional testing of enterprise applications with the goal of exercising an application's interesting behaviors by driving it from its user interface. The difficulty in doing this is focusing on the interesting behaviors among an unbounded number of behaviors.
Virtual DOM Coverage : Drive an Effective Testing for Dynamic Web Applications
2014
Test adequacy criteria are fundamental in software testing. Among them, code coverage criterion is widely used due to its simplicity and effectiveness. However, in dynamic web application testing, merely covering server-side script code is inadequate because it neglects client-side execution, which plays an important role in triggering client-server interactions to reach important execution states. Similarly, a criterion aiming at covering the UI elements on client-side pages ignores the server-side execution, leading to insufficiency. In this paper, we propose Virtual DOM (V-DOM) Coverage, a novel criterion, to drive web application testing. With static analysis, we first aggregate all the DOM objects that may be produced by a piece of server script to construct a V-DOM tree. The tree models execution on both the clientand server-sides such that V-DOM coverage is more effective than existing coverage criteria in web application testing. We conduct an empirical study on five real wo...
IJERT-Automation in Testing of Modern Web Applications
International Journal of Engineering Research and Technology (IJERT), 2014
https://www.ijert.org/automation-in-testing-of-modern-web-applications https://www.ijert.org/research/automation-in-testing-of-modern-web-applications-IJERTV3IS051714.pdf The Modern computer's entire world has a lot's of Internet apps. In that blogging platform will be the most famous essential technologies. Web 2.0 contains AJAX dependent app that's stateful asynchronous client-server connection. It truly is harder to evaluate with regard to tester this sort of internet apps due to its invariant dynamics of these apps. Safety measures is additionally the main matter due to presence of broken enter through the tester. And so we recommend a method with regard to assessment of AJAX Internet app with supplying stability towards created analyze circumstances. Planned method is dependent on Internet crawler. Each of our suggested system's job will be to uncover wrong doing linked AJAX apps, including mistake mail messages, rear option compatibility, DOM tree agreement, in addition to broken enter with stability. Planned method implementation contains state age group; analyze suite age group with covering the overall journey produce with the crawler, age group of stability exams by making use of proper danger versions. Safety measures procedure utilizes quantity of stability mutants wherever vulnerabilities are usually being injected intentionally. These mutants were created keeping that in mind their vulnerabilities. This specific app utilizes wherever require of automation which in turn having fantastic wrong doing locating, less manual energy in addition to scalability.
A general framework for testing web-based applications
2010
Software testing is a difficult task for web based applications due to their special features like multi-tier structure and emergence of new technologies (e.g. Ajax). In recent years, automatic testing of web based applications has been emerged as a promising technique to tackle the difficulties of testing these types of applications and several frameworks have been proposed for this purpose. But the most important problem of these frameworks is the lack of generality for different types of tests and programming environments. In this paper, we proposed a general framework for automatic testing of web based applications that covers all aspects of different types of testing, in an arbitrary web based application.
Karma-The Test Runner, for Automated Testing of Web Based Applications
Software testing plays a vital role in verifying software functionality and avoid bugs in code. Automated tests using code instead of conducting manual tests can reduce the amount of tedious work during the development process by huge amount and will definitely improve the software quality. The most widely adopted language for developing the web applications is JavaScript, the obvious reason is its very dynamic nature. Ironically compiler's could not grab errors like a variable name which has been misspelled or an object invoking a non existing method. In order to catch the aforesaid errors the system developers have to actually sprint the code. In view of the above testing is absolutely necessary.The test runner Karma, helps the web application developers to be more prolific and efficient by making automated testing simpler and faster. Karma has been successfully tested on many avenues, including software giants such as Google and YouTube.The motto describes the intend and exec...
Concolic Testing of Full-Stack JavaScript Applications
2018
Recent years have seen the rise of so-called full-stack JavaScript web applications, where both the client and the server side of the web application are developed in JavaScript. Both sides communicate with each other via asynchronous messages, as enabled by e.g., WebSockets. Traditionally, automated whitebox testing of web applications involves testing both sides of the application in isolation from each other. However, this approach lacks a holistic overview of the entire web application under test. This leads to inaccuracies in the types of program bugs that are reported by the tester, and makes it more difficult for developers to understand how the behaviour of the client may affect the behaviour of the server, and vice versa. An interesting side-effect of the evolution towards full-stack applications is that a single automated tester can be developed that observes the execution of both parts of the system simultaneously, thereby remedying the aforementioned issues. In this pape...