Medical applications intimately rely on floating point numbers to store, retrieve and process important physical as well as diagnostic data associated with medical clients. The occurrence of unexpected loss of precisi...
详细信息
ISBN:
(纸本)9781467388450
Medical applications intimately rely on floating point numbers to store, retrieve and process important physical as well as diagnostic data associated with medical clients. The occurrence of unexpected loss of precision over floating point numbers under medical contexts can cause great damage, or even cost lives. Due to its excellent interoperability with web-based content, javascript has been an important source language to craft mission-critical medical applications utilizing the web-based capabilities. For those applications, applying javascript static program analysis is an important counter measure against runtime errors including floating point number errors. In this paper, we propose an abstract interpretation based interval analysis for javascript programs using floating point bounds. We base our method and results on top JSAI, a javascript static analysis framework.
Over the last decades, various tools (e.g., AUSTIN and EvoSuite) have been developed to automate the process of unit-level test case generation. Most of these tools are designed for statically-typed languages, such as...
详细信息
ISBN:
(纸本)9798400705625
Over the last decades, various tools (e.g., AUSTIN and EvoSuite) have been developed to automate the process of unit-level test case generation. Most of these tools are designed for statically-typed languages, such as C and Java. However, as is shown in recent Stack Overflow developer surveys, the popularity of dynamically-typed languages, such as javascript and Python, has been increasing and is dominating the charts. Only recently, tools for automated test case generation of dynamically-typed languages have started to emerge ( e.g., Pynguin for Python). However, to the best of our knowledge, there is no tool that focuses on automated test case generation for server-side javascript. To this aim, we introduce SynTest-javascript, a user-friendly tool for automated unit-level test case generation for (server-side) javascript. To showcase the effectiveness of SynTest-javascript, we empirically evaluate it on five large open-source javascript projects and one artificial one.
For javascript developers working on increasingly large and complex projects, effective automated testing is crucial to success. Test-Driven javascript Development is a complete, best-practice guide to agile JavaScrip...
详细信息
ISBN:
(纸本)0321683919
For javascript developers working on increasingly large and complex projects, effective automated testing is crucial to success. Test-Driven javascript Development is a complete, best-practice guide to agile javascript testing and quality assurance with the test-driven development (TDD) methodology. Leading agile javascript developer Christian Johansen covers all aspects of applying state-of-the-art automated testing in javascript environments, walking readers through the entire development lifecycle, from project launch to application deployment, and beyond. Using real-life examples driven by unit tests, Johansen shows how to use TDD to gain greater confidence in your code base, so you can fearlessly refactor and build more robust, maintainable, and reliable javascript code at lower cost. Throughout, he addresses crucial issues ranging from code design to performance optimization, offering realistic solutions for developers, QA specialists, and testers. Coverage includes Understanding automated testing and TDD Building effective automated testing workflows Testing code for both browsers and servers (using ***) Using TDD to build cleaner APIs, better modularized code, and more robust software Writing testable code Using test stubs and mocks to test units in isolation Continuously improving code through refactoring Walking through the construction and automated testing of fully functional softwareThe accompanying Web site, ***, contains all of the books code listings and additional resources.
Dynamic analyses are commonly implemented by instrumenting the program under analysis. Examples of such analyses for javascript range from checkers of user-defined invariants to concolic testers. For a full-stack Java...
详细信息
ISBN:
(纸本)9781450360456
Dynamic analyses are commonly implemented by instrumenting the program under analysis. Examples of such analyses for javascript range from checkers of user-defined invariants to concolic testers. For a full-stack javascript program, these analyses need to reason about the state of the client-side and server-side processes it is comprised of. Lifting a dynamic analysis so that it supports full-stack programs can be challenging. It involves distributed communication to maintain the analysis state across all processes, which has to be deadlock-free. In this paper, we advocate maintaining distributed analysis state in a centralized analysis process instead -which is communicated with from the processes under analysis. The approach is supported by a dynamic analysis platform that provides abstractions for this communication. We evaluate the approach through a case study. We use the platform to build a distributed origin analysis, capable of tracking the expressions from which values originate from across process boundaries, and deploy it on collaborative drawing application. The results show that our approach greatly simplifies the lifting process at the cost of a computational overhead. We deem this overhead acceptable for analyses intended for use at development time.
The Ecma TC39-TG1 working group is using ML as the specification language for the next generation of javascript, the popular programming language for browser-based web applications. This "definitional interpreter...
详细信息
ISBN:
(纸本)9781595936769
The Ecma TC39-TG1 working group is using ML as the specification language for the next generation of javascript, the popular programming language for browser-based web applications. This "definitional interpreter" serves many purposes: a high-level and readable specification language, an executable and testable specification, a reference implementation, and an aid in driving the design process. We describe the design and specification of javascript and our experience so far using Standard ML for this purpose.
Constraint Handling Rules (CHR) is usually compiled to logic programming languages. While there are implementations for imperative programming languages such as C and Java, its most popular host language remains Prolo...
详细信息
ISBN:
(纸本)9783319999067;9783319999050
Constraint Handling Rules (CHR) is usually compiled to logic programming languages. While there are implementations for imperative programming languages such as C and Java, its most popular host language remains Prolog. In this paper, we present ***, a CHR system implemented in javascript, that is suitable for both the server-side and interactive client-side web applications. *** provides (i) an interpreter, which is based on the asynchronous execution model of javascript, and (ii) an ahead-of-time compiler, resulting in synchronous constraint solvers with better performances. Because of the great popularity of javascript, *** is the first CHR system that runs on almost all and even mobile devices, without the need for an additional run-time environment. As an example application we present the *** Playground, an offline-capable web-interface which allows the interactive exploration of CHRs in every modern browser.
If you're familiar with HTML, using the information in Learning PHP, MySQL, javascript and CSS, you will quickly learn how to build interactive, data-driven websites with the powerful combination of PHP, MySQL, Ja...
详细信息
ISBN:
(纸本)1449319262
If you're familiar with HTML, using the information in Learning PHP, MySQL, javascript and CSS, you will quickly learn how to build interactive, data-driven websites with the powerful combination of PHP, MySQL, javascript and CSS - the top technologies for creating modern sites. This hands-on guide explains each technology separately, shows you how to combine them, and introduces valuable web programming concepts such as objects, XHTML, cookies, and session *** paced for non-programmers, this second edition of the top-selling guide to web development now also provides an extensive introduction to CSS, and benefits from reader questions and suggestions about the first edition, making the new edition even easier to follow and more information-packed than ***, to ensure your have understood all the main points, you'll practice what you've learned with review questions at the end of each chapter, and there's even a sample social networking platform built with the elements introduced in this *** PHP, MySQL, javascript and CSS will enable you to:Understand PHP up to an intermediate level, including the basics of object-oriented programming Master MySQL, from database structure to complex queries Create web pages with PHP and MySQL by integrating forms and other HTML features Learn about javascript, from functions and event handling to accessing the Document Object Model Pick up the basics of CSS (and CSS3) and learn how to use it to create compelling and dynamic web *** out how to manipulate CSS properties directly from javascriptMake Ajax calls and turn your website into a highly interactive environment Upload and manipulate files and images, validate user input, and secure your applicationsBring all these technologies together to create a social networking site
Software security is undoubtedly a major concern in today's software engineering. Although the level of awareness of security issues is often high, practical experiences show that neither preventive actions nor re...
详细信息
ISBN:
(纸本)9781450375177
Software security is undoubtedly a major concern in today's software engineering. Although the level of awareness of security issues is often high, practical experiences show that neither preventive actions nor reactions to possible issues are always addressed properly in reality. By analyzing large quantities of commits in the open-source communities, we can categorize the vulnerabilities mitigated by the developers and study their distribution, resolution time, etc. to learn and improve security management processes and practices. With the help of the Software Heritage Graph Dataset, we investigated the commits of two of the most popular script languages Python and javascript - projects collected from public repositories and identified those that mitigate a certain vulnerability in the code (i.e. vulnerability resolution commits). On the one hand, we identified the types of vulnerabilities (in terms of CWE groups) referred to in commit messages and compared their numbers within the two communities. On the other hand, we examined the average time elapsing between the publish date of a vulnerability and the first reference to it in a commit. We found that there is a large intersection in the vulnerability types mitigated by the two communities, but most prevalent vulnerabilities are specific to language. Moreover, neither the javascript nor the Python community reacts very fast to appearing security vulnerabilities in general with only a couple of exceptions for certain CWE groups.
Concurrency control is difficult in javascript programs, where event race due to asynchronous computation is a major source of errors. While methods such as promises, cancellation tokens, and reactive programming offe...
详细信息
ISBN:
(纸本)9781450369862
Concurrency control is difficult in javascript programs, where event race due to asynchronous computation is a major source of errors. While methods such as promises, cancellation tokens, and reactive programming offer their own advantages in addressing this problem, none offer a complete solution. In this work, we present an integrated solution for concurrency control of javascript using a library, arrowjs, which is based on the abstraction of arrows. Arrowjs uses continuation passing style to chain callbacks and it implicitly generates progress objects to manage concurrency. Arrowjs can implement a form of push-based reactive programming, where event streams are arrowloops communicating through shared memory. Arrowjs thus provides interoperability between thread-like callback chains and event streams with a uniform concurrency control mechanism.
Successful software project survival and progress over time is highly dependent on effectively managing the maintenance process. Estimating accurately maintenance process factors like the maintenance effort and the le...
详细信息
ISBN:
(纸本)9781728134215
Successful software project survival and progress over time is highly dependent on effectively managing the maintenance process. Estimating accurately maintenance process factors like the maintenance effort and the level of changes required for a new release is considered a crucial task for allocating resources. In this work we examine the maintenance process factors of javascript applications, which at the moment are understudied despite the need of language specific maintenance models. Furthermore we propose two maintenance indices for estimating the changes and the effort required for maintaining javascript applications by considering a variety of maintenance drivers. We evaluated the proposed indices through a case study on 5,788 releases coming from 60 popular javascript applications. The results show that project activity factors (i.e., number of open bugs and number of corrective maintenance activities) are important maintenance drivers. The proposed indices are evaluated in terms of predictive and discriminative power and both achieve high accuracy.
暂无评论