Latest in cs.se

total 5398took 0.11s
Better Code, Better Sharing:On the Need of Analyzing Jupyter NotebooksJun 12 2019By bringing together code, text, and examples, Jupyter notebooks have become one of the most popular means to produce scientific results in a productive and reproducible way. As many of the notebook authors are experts in their scientific fields, but ... More
Choosing agile or plan-driven enterprise resource planning (ERP) implementations -- A study on 21 implementations from 20 companiesJun 12 2019Agile methods have gotten a good reputation for managing projects in many different sectors. A challenge among practitioners in the ERP (Enterprise Resource Planning) domain, is to decide if an agile method is suitable or not for new projects. This study ... More
Migrating large codebases to C++ ModulesJun 12 2019ROOT has several features which interact with libraries and require implicit header inclusion. This can be triggered by reading or writing data on disk, or user actions at the prompt. Often, the headers are immutable, and reparsing is redundant. C++ Modules ... More
Assuring the Evolvability of Microservices: Insights into Industry Practices and ChallengesJun 12 2019While Microservices promise several beneficial characteristics for sustainable long-term software evolution, little empirical research covers what concrete activities industry applies for the evolvability assurance of Microservices and how technical debt ... More
Lifestate: Event-Driven Protocols and Callback Control FlowJun 12 2019Developing interactive applications (apps) against event-driven software frameworks such as Android is notoriously difficult. To create apps that behave as expected, developers must follow complex and often implicit asynchronous programming protocols. ... More
Lifestate: Event-Driven Protocols and Callback Control Flow (Extended Version)Jun 12 2019Jun 13 2019Developing interactive applications (apps) against event-driven software frameworks such as Android is notoriously difficult. To create apps that behave as expected, developers must follow complex and often implicit asynchronous programming protocols. ... More
Sionnx: Automatic Unit Test Generator for ONNX ConformanceJun 12 2019Open Neural Network Exchange (ONNX) is an open format to represent AI models and is supported by many machine learning frameworks. While ONNX defines unified and portable computation operators across various frameworks, the conformance tests for those ... More
Does BLEU Score Work for Code Migration?Jun 12 2019Statistical machine translation (SMT) is a fast-growing sub-field of computational linguistics. Until now, the most popular automatic metric to measure the quality of SMT is BiLingual Evaluation Understudy (BLEU) score. Lately, SMT along with the BLEU ... More
The Prolog debugger and declarative programmingJun 11 2019Logic programming is a declarative programming paradigm. Programming language Prolog makes logic programming possible, at least to a substantial extent. However the Prolog debugger works solely in terms of the operational semantics. So it is incompatible ... More
Microservices Migration in Industry: Intentions, Strategies, and ChallengesJun 11 2019To remain competitive in a fast changing environment, many companies started to migrate their legacy applications towards a Microservices architecture. Such extensive migration processes require careful planning and consideration of implications and challenges ... More
Evolution of ROOT package managementJun 11 2019ROOT is a large code base with a complex set of build-time dependencies; there is a significant difference in compilation time between the "core" of ROOT and the full-fledged deployment. We present results on a "delayed build" for internal ROOT packages ... More
Sharing of vulnerability information among companies -- a survey of Swedish companiesJun 11 2019Software products are rarely developed from scratch and vulnerabilities in such products might reside in parts that are either open source software or provided by another organization. Hence, the total cybersecurity of a product often depends on cooperation, ... More
Contextual Documentation Referencing on Stack OverflowJun 11 2019Software engineering is knowledge-intensive and requires software developers to continually search for knowledge, often on community question answering platforms such as Stack Overflow. Such information sharing platforms do not exist in isolation, and ... More
Malware Detection with LSTM using Opcode LanguageJun 10 2019Nowadays, with the booming development of Internet and software industry, more and more malware variants are designed to perform various malicious activities. Traditional signature-based detection methods can not detect variants of malware. In addition, ... More
SAR: Learning Cross-Language API Mappings with Little KnowledgeJun 10 2019To save manual effort, developers often translate programs from one programming language to another, instead of implementing it from scratch. Translating application program interfaces (APIs) used in one language to functionally equivalent ones available ... More
Write, Execute, Assess: Program Synthesis with a REPLJun 09 2019We present a neural program synthesis approach integrating components which write, execute, and assess code to navigate the search space of possible programs. We equip the search process with an interpreter or a read-eval-print-loop (REPL), which immediately ... More
How Different Is It Between Machine-Generated and Developer-Provided Patches? An Empirical Study on The Correct Patches Generated by Automated Program Repair TechniquesJun 08 2019Background: Over the years, Automated Program Repair (APR) has attracted much attention from both academia and industry since it can reduce the costs in fixing bugs. However, how to assess the patch correctness remains to be an open challenge. Two widely ... More
Learning Software Configuration Spaces: A Systematic Literature ReviewJun 07 2019Most modern software systems (operating systems like Linux or Android, Web browsers like Firefox or Chrome, video encoders like ffmpeg, x264 or VLC, mobile and cloud applications, etc.) are highly-configurable. Hundreds of configuration options, features, ... More
Artificial Intelligence helps making Quality Assurance processes leanerJun 07 2019Lean processes focus on doing only necessery things in an efficient way. Artificial intelligence and Machine Learning offer new opportunities to optimizing processes. The presented approach demonstrates an improvement of the test process by using Machine ... More
Smart Contract Design Meets State Machine Synthesis: Case StudiesJun 07 2019Modern blockchain systems support creation of smart contracts -- stateful programs hosted and executed on a blockchain. Smart contracts hold and transfer significant amounts of digital currency which makes them an attractive target for security attacks. ... More
Boosting Operational DNN Testing Efficiency through ConditioningJun 06 2019With the increasing adoption of Deep Neural Network (DNN) models as integral parts of software systems, efficient operational testing of DNNs is much in demand to ensure these models' actual performance in field conditions. A challenge is that the testing ... More
Revisiting Hyper-Parameter Tuning for Search-based Test Data GenerationJun 05 2019Search-based software testing (SBST) has been studied a lot in the literature, lately. Since, in theory, the performance of meta-heuristic search methods are highly dependent on their parameters, there is a need to study SBST tuning. In this study, we ... More
Architectural Middleware that Supports Building High-performance, Scalable, Ubiquitous, Intelligent Personal AssistantsJun 05 2019Intelligent Personal Assistants (IPAs) are software agents that can perform tasks on behalf of individuals and assist them on many of their daily activities. IPAs capabilities are expanding rapidly due to the recent advances on areas such as natural language ... More
Adroitness: An Android-based Middleware for Fast Development of High-performance AppsJun 05 2019As smartphones become increasingly more powerful, a new generation of highly interactive user-centric mobile apps emerge to make user's life simpler and more productive. Mobile phones applications have to sustain limited resource availability on mobile ... More
Inspection Guidelines to Identify Security Design FlawsJun 05 2019Recent trends in the software development practices (Agile, DevOps, CI) have shortened the development life-cycle causing the need for efficient security-by-design approaches. In this context, software architectures are analyzed for potential vulnerabilities ... More
Restore: Retrospective Fault Localization Enhancing Automated Program RepairJun 05 2019Fault localization is a crucial step of automated program repair, because accurately identifying program locations that are most closely implicated with a fault greatly affects the effectiveness of the patching process. An ideal fault localization technique ... More
Gamification of Enterprise Systems: A Synthesis of Mechanics, Dynamics, and RisksJun 04 2019Organizations highly depend on enterprise systems (ES), which are unlikely to develop their full potential if end-users neglect system usage. Accordingly, organizations attempt to overcome barriers to end-user acceptance in the ES context, which can be ... More
Design principles, architectural smells and refactorings for microservices: A multivocal reviewJun 04 2019Potential benefits such as agile service delivery have led many companies to deliver their business capabilities through microservices. Bad smells are however always around the corner, as witnessed by the considerable body of literature discussing architectural ... More
Bridging the Gap between Unit Test Generation and System Test GenerationJun 04 2019Common test generators fall into two categories. Generating test inputs at the unit level is fast, but can lead to false alarms when a function is called with inputs that would not occur in a system context. If a generated input at the system level causes ... More
Towards A Broader Acceptance Of Formal Verification Tools: The Role Of EducationJun 04 2019Formal methods yet advantageous, face challenges towards wide acceptance and adoption in software development practices. The major reason being presumed complexity. The issue can be addressed by academia with a thoughtful plan of teaching and practise. ... More
Interpreted Execution of Business Process Models on BlockchainJun 04 2019Blockchain technology provides a tamper-proof mechanism to execute inter-organizational business processes involving mutually untrusted parties. Existing approaches to blockchain-based process execution are based on code generation. In these approaches, ... More
Identification and Assessment of Software Design Pattern ViolationsJun 04 2019The validation of design pattern implementations to identify pattern violations has gained more relevance as part of re-engineering processes in order to preserve, extend, reuse software projects in rapid development environments. If design pattern implementations ... More
A Language-Agnostic Model for Semantic Source Code LabelingJun 03 2019Code search and comprehension have become more difficult in recent years due to the rapid expansion of available source code. Current tools lack a way to label arbitrary code at scale while maintaining up-to-date representations of new programming languages, ... More
Service-Oriented Re-engineering of Legacy JEE Applications: Issues and Research DirectionsJun 03 2019Service-orientation views applications as orchestrations of independent software services that (1) implement functions that are reusable across many applications, (2) can be invoked remotely, and (3) are packaged to decouple potential callers from their ... More
Mind the Gap: Trade-Offs between Distributed Ledger Technology CharacteristicsJun 03 2019While design decisions determine the quality and viability of applications in general, in Distributed Ledger Technology (DLT), the decision for a suitable DLT design (e.g., Ethereum, IOTA) is of particular relevance because the retroactive change of the ... More
A Comprehensive Study on Deep Learning Bug CharacteristicsJun 03 2019Deep learning has gained substantial popularity in recent years. Developers mainly rely on libraries and tools to add deep learning capabilities to their software. What kinds of bugs are frequently found in such software? What are the root causes of such ... More
Static Code Analysis of Multilanguage Software SystemsJun 03 2019Identifying dependency call graphs of multilanguage software systems using static code analysis is challenging. The different languages used in developing today's systems often have different lexical, syntactical, and semantic rules that make thorough ... More
On Modelling the Avoidability of Patterns as CSPJun 03 2019Solving avoidability problems in the area of string combinatorics often requires, in an initial step, the construction, via a computer program, of a very long word that does not contain any word that matches a given pattern. It is well known that this ... More
NeuralVis: Visualizing and Interpreting Deep Learning ModelsJun 03 2019Deep Neural Network(DNN) techniques have been prevalent in software engineering. They are employed to faciliatate various software engineering tasks and embedded into many software applications. However, analyzing and understanding their behaviors is ... More
Empirical Analysis of Factors and their Effect on Test Flakiness - Practitioners' PerceptionsJun 03 2019Developers always wish to ensure that their latest changes to the code base do not break existing functionality. If test cases fail, they expect these failures to be connected to the submitted changes. Unfortunately, a flaky test can be the reason for ... More
Evolutionary Fuzzing of Android OS Vendor System ServicesJun 03 2019Android devices are shipped in several flavors by more than 100 manufacturer partners, which extend the Android "vanilla" OS with new system services, and modify the existing ones. These proprietary extensions expose Android devices to reliability and ... More
A Survey of Asynchronous Programming Using Coroutines in the Internet of Things and Embedded SystemsJun 02 2019Many Internet of Things and embedded projects are event-driven, and therefore require asynchronous and concurrent programming. Current proposals for C++20 suggest that coroutines will have native language support. It is timely to survey the current use ... More
Neural Bug Finding: A Study of Opportunities and ChallengesJun 01 2019Static analysis is one of the most widely adopted techniques to find software bugs before code is put in production. Designing and implementing effective and efficient static analyses is difficult and requires high expertise, which results in only a few ... More
Quantitative Overfitting Management for Human-in-the-loop ML Application Development with ease.ml/meterJun 01 2019Jun 06 2019Simplifying machine learning (ML) application development, including distributed computation, programming interface, resource management, model selection, etc, has attracted intensive interests recently. These research efforts have significantly improved ... More
Blockchain for Internet of Things: A SurveyJun 01 2019Jun 06 2019Internet of Things (IoT) is reshaping the incumbent industry to smart industry featured with data-driven decision-making. However, intrinsic features of IoT result in a number of challenges such as decentralization, poor interoperability, privacy and ... More
Patterns for Blockchain MigrationJun 01 2019With the rapid evolution of technological, economic, and regulatory landscapes, contemporary Blockchian platforms are all but certain to undergo major changes. Therefore, applications that rely on them will eventually need to migrate the Blockchain to ... More
On the Interaction of Object-Oriented Design Patterns and Programming LanguagesMay 31 2019Design patterns are distilled from many real systems to catalog common programming practice. However, some object-oriented design patterns are distorted or overly complicated because of the lack of supporting programming language constructs or mechanisms. ... More
Dynamic Service Composition Orchestrated by Cognitive Agents in Mobile & Pervasive ComputingMay 31 2019Automatic service composition in mobile and pervasive computing faces many challenges due to the complex nature of the environment. Common approaches address service composition from optimization perspectives which are not feasible in practice due to ... More
From Global Choreographies to Provably Correct and Efficient Distributed ImplementationsMay 31 2019We define a method to automatically synthesize provably-correct efficient distributed implementations from high-level global choreographies. A global choreography describes the execution and communication logic between a set of provided processes which ... More
Technical Debt in Data-Intensive Software SystemsMay 31 2019The ever-increasing amount, variety as well as generation and processing speed of today's data pose a variety of new challenges for developing Data-Intensive Software Systems (DISS). As with developing other kinds of software systems, developing DISS ... More
How Often Do Single-Statement Bugs Occur? The ManySStuBs4J DatasetMay 30 2019Program repair is an important but difficult software engineering problem. One way to achieve a "sweet spot" of low false positive rates, while maintaining high enough recall to be usable, is to focus on repairing classes of simple bugs, such as bugs ... More
A large-scale, in-depth analysis of developers' personalities in the Apache ecosystemMay 30 2019Context: Large-scale distributed projects are typically the results of collective efforts performed by multiple developers with heterogeneous personalities. Objective: We aim to find evidence that personalities can explain developers' behavior in large ... More
Orchestrating Service Migration for Low Power MEC-Enabled IoT DevicesMay 30 2019Multi-Access Edge Computing (MEC) is a key enabling technology for Fifth Generation (5G) mobile networks. MEC facilitates distributed cloud computing capabilities and information technology service environment for applications and services at the edges ... More
A Study on Software Metrics and its Impact on Software QualityMay 30 2019Software metrics offer a quantitative basis for predicting the software development process. In this way, software quality can be improved very easily. Software quality should be achieved to satisfy the customer with decreasing the software cost and improve ... More
Methodology Matters: How We Study Socio-Technical Aspects in Software EngineeringMay 30 2019Software engineering involves the consideration of both human and technical aspects, and although its origins come from the sub-disciplines of computer science and engineering, today the importance of the social and human aspects of software development ... More
Dynamic Adaptive Network Configuration for IoT Systems: A Search-based ApproachMay 29 2019The concept of Internet of Things (IoT) has led to the development of many complex and critical systems such as smart emergency management systems. IoT-enabled applications typically depend on a communication network for transmitting large volumes of ... More
Cognitively-inspired Agent-based Service Composition for Mobile & Pervasive ComputingMay 29 2019Automatic service composition in mobile and pervasive computing faces many challenges due to the complex and highly dynamic nature of the environment. Common approaches consider service composition as a decision problem whose solution is usually addressed ... More
Configuration Testing: Testing Configuration Values Together with Code LogicMay 29 2019This paper proposes configuration testing as a key reliability engineering discipline for configuration management in large-scale production systems. We advocate that configuration changes should be systematically tested at the same level as code changes. ... More
Analyzing and Supporting Adaptation of Online Code ExamplesMay 28 2019Developers often resort to online Q&A forums such as Stack Overflow (SO) for filling their programming needs. Although code examples on those forums are good starting points, they are often incomplete and inadequate for developers' local program contexts; ... More
Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair AttemptsMay 28 2019In the past decade, research on test-suite-based automatic program repair has grown significantly. Each year, new approaches and implementations are featured in major software engineering venues. However, most of those approaches are evaluated on a single ... More
Deep Learning for Bug-Localization in Student ProgramsMay 28 2019Providing feedback is an integral part of teaching. Most open online courses on programming make use of automated grading systems to support programming assignments and give real-time feedback. These systems usually rely on test results to quantify the ... More
MolSSI and BioExcel Workflow Workshop 2018 ReportMay 28 2019Workflows in biomolecular science are very important as they are intricately intertwined with the scientific outcomes, as well as algorithmic and methodological innovations. The use and effectiveness of workflow tools to meet the needs of the biomolecular ... More
Automating Test Case Classification and Prioritization for Use Case-Driven Testing in Product LinesMay 28 2019Product Line Engineering (PLE) is a crucial practice in many software development environments where software systems are complex and developed for multiple customers with varying needs. At the same time, many development processes are use case-driven ... More
Engineering Gender-Inclusivity into Software: Tales from the TrenchesMay 27 2019Although the need for gender-inclusivity in software itself is gaining attention among both SE researchers and SE practitioners, and methods have been published to help, little has been reported on how to make such methods work in real-world settings. ... More
Towards Automated Boundary Value Testing with Program Derivatives and SearchMay 27 2019A natural and often used strategy when testing software is to use input values at boundaries, i.e. where behavior is expected to change the most, an approach often called boundary value testing or analysis (BVA). Even though this has been a key testing ... More
DockerizeMe: Automatic Inference of Environment Dependencies for Python Code SnippetsMay 27 2019Platforms like Stack Overflow and GitHub's gist system promote the sharing of ideas and programming techniques via the distribution of code snippets designed to illustrate particular tasks. Python, a popular and fast-growing programming language, sees ... More
Attributing and Referencing (Research) Software: Best Practices and Outlook from InriaMay 27 2019Software is a fundamental pillar of modern scientiic research, not only in computer science, but actually across all elds and disciplines. However, there is a lack of adequate means to cite and reference software, for many reasons. An obvious rst reason ... More
Power laws in code repositories: A skeptical approachMay 27 2019Software development as done using modern methodologies and source control management systems, has been often established as an example of self-organization, with code growing and evolving organically, through activities that do not stem from entralized ... More
A Benchmark of Data Loss Bugs for Android AppsMay 27 2019Android apps must be able to deal with both stop events, which require immediately stopping the execution of the app without losing state information, and start events, which require resuming the execution of the app at the same point it was stopped. ... More
Using Social Choice Theory to Finalize Architectural DecisionsMay 27 2019Unbiased and objective architectural design decisions are crucial for the success of a software development project. Stakeholder inputs play an important role in arriving at such design decisions. However, the stakeholders may act in a biased manner in ... More
Improving Change Prediction Models with Code Smell-Related InformationMay 26 2019Code smells represent sub-optimal implementation choices applied by developers when evolving software systems. The negative impact of code smells has been widely investigated in the past: besides developers' productivity and ability to comprehend source ... More
Programming with Applicative-like expressionsMay 26 2019The fact that Applicative type class allows one to express simple parsers in a variable-less combinatorial style is well appreciated among Haskell programmers for its conceptual simplicity, ease of use, and usefulness for semi-automated code generation ... More
An Exploratory Study on Machine Learning Model StoresMay 25 2019May 28 2019Recent advances in Artificial Intelligence, especially in Machine Learning (ML), have brought applications previously considered as science fiction (e.g., virtual personal assistants and autonomous cars) into the reach of millions of everyday users. Since ... More
A Taxonomy to Assess and Tailor Risk-based Testing in Recent Testing StandardsMay 25 2019This article provides a taxonomy for risk-based testing that serves as a tool to define, tailor, or assess risk-based testing approaches in general and to instantiate risk-based testing approaches for the current testing standards ISO/IEC/IEEE 29119, ... More
MoMIT: Porting a JavaScript Interpreter on a Quarter CoinMay 25 2019The Internet of Things (IoT) is a network of physical, heterogeneous, connected devices providing services through private networks and the Internet. It connects a range of new devices to the Internet so they can communicate with Web servers and other ... More
SaaS CloudQual: A Quality Model for Evaluating Software as a Service on the Cloud Computing EnvironmentMay 25 2019Abstract The cloud computing is a key computing approach adopted by many organizations in order to share resources. It provides Everything As-A-Service (XaaS). Software-As-A-Service is an important resource on the cloud computing environment. Without ... More
SAASQUAL: A Quality Model For Evaluating SaaS on The Cloud Computing EnvironmentMay 25 2019Cloud computing is a Technology that has come out in the last decade and that is transforming the IT industry in huge. The Cloud computing is playing a vital role as a backbone component of the Internet of Things (IoT). In a Cloud Computing scenario, ... More
PTrix: Efficient Hardware-Assisted Fuzzing for COTS BinaryMay 25 2019Despite its effectiveness in uncovering software defects, American Fuzzy Lop (AFL), one of the best grey-box fuzzers, is inefficient when fuzz-testing source-unavailable programs. AFL's binary-only fuzzing mode, QEMU-AFL, is typically 2-5X slower than ... More
Type-Driven Automated Learning with LaleMay 24 2019Machine-learning automation tools, ranging from humble grid-search to hyperopt, auto-sklearn, and TPOT, help explore large search spaces of possible pipelines. Unfortunately, each of these tools has a different syntax for specifying its search space, ... More
What if Process Predictions are not followed by Good Recommendations?May 24 2019May 29 2019Process-aware Recommender systems (PAR systems) are information systems that aim to monitor process executions, predict their outcome, and recommend effective interventions to reduce the risk of failure. This paper discusses monitoring, predicting, and ... More
What if Process Predictions are not followed by Good Recommendations?May 24 2019Process-aware Recommender systems (PAR systems) are information systems that aim to monitor process executions, predict their outcome, and recommend effective interventions to reduce the risk of failure. This paper discusses monitoring, predicting, and ... More
A Customised App to Attract Female Teenagers to CodingMay 24 2019The number of women in IT-related disciplines is far below the number of men, especially in developed countries. Middle-school girls appear to be engaged in coding courses, but when they choose academic majors relevant to their future careers, only few ... More
Design Dimensions for Software Certification: A Grounded AnalysisMay 23 2019In many domains, software systems cannot be deployed until authorities judge them fit for use in an intended operating environment. Certification standards and processes have been devised and deployed to regulate operations of software systems and prevent ... More
Perceptions of Gender Diversity's impact on mood in software development teamsMay 23 2019Recent studies show that gender diversity in IT teams has a positive impact on the software development process. However, there is still a great gender inequality. The aim of our study was to examine how the working atmosphere depends on the gender differentiation ... More
Formalizing Time4sys using parametric timed automataMay 23 2019Critical real-time systems must be verified to avoid the risk of dramatic consequences in case of failure. Thales developed an open formalism Time4sys to model real-time systems, with expressive features such as periodic or sporadic tasks, task dependencies, ... More
Critical Review of BugSwarm for Fault Localization and Program RepairMay 22 2019Benchmarks play an important role in evaluating the efficiency and effectiveness of solutions to automate several phases of the software development lifecycle. Moreover, if well designed, they also serve us well as an important artifact to compare different ... More
FQL: An Extensible Feature Query Language and Toolkit on Searching Software Characteristics for HPC ApplicationsMay 22 2019The amount of large-scale scientific computing software is dramatically increasing. In this work, we designed a new language, named feature query language (FQL), to collect and extract software features from a quick static code analysis. We designed and ... More
A Quick Introduction to Functional Verification of Array-Intensive ProgramsMay 22 2019Array-intensive programs are often amenable to parallelization across many cores on a single machine as well as scaling across multiple machines and hence are well explored, especially in the domain of high-performance computing. These programs typically ... More
The Machine Learning Bazaar: Harnessing the ML Ecosystem for Effective System DevelopmentMay 22 2019As machine learning is applied more and more widely, data scientists often struggle to find or create end-to-end machine learning systems for specific tasks. The proliferation of libraries and frameworks and the complexity of the tasks have led to the ... More
Automatically Checking Conformance on Asynchronous Reactive SystemsMay 22 2019Software testing is an important issue in software development process to ensure higher quality on the products. Formal methods has been promising on testing reactive systems, specially critical systems, where accuracy is mandatory since any fault can ... More
Verification Artifacts in Cooperative Verification: Survey and Unifying Component FrameworkMay 21 2019The goal of cooperative verification is to combine verification approaches in such a way that they work together to verify a system model. In particular, cooperative verifiers provide exchangeable information (verification artifacts) to other verifiers ... More
Better Technical Debt Detection via SURVEYingMay 20 2019Software analytics can be improved by surveying; i.e. rechecking and (possibly) revising the labels offered by prior analysis. Surveying is a time-consuming task and effective surveyors must carefully manage their time. Specifically, they must balance ... More
A Comparative Review of Microservices and Monolithic ArchitecturesMay 20 2019Microservices' architecture is getting attention in the academic community and the industry, and mostly is compared with monolithic architecture. Plenty of the results of these research papers contradict each other regarding the performance of these architectures. ... More
Testing Deep Neural Network based Image ClassifiersMay 20 2019Image classification is an important task in today's world with many applications from socio-technical to safety-critical domains. The recent advent of Deep Neural Network (DNN) is the key behind such a wide-spread success. However, such wide adoption ... More
Model-based Automated Testing of JavaScript Web Applications via Longer Test SequencesMay 19 2019JavaScript has become one of the most widely used languages for Web development. However, it is challenging to ensure the correctness and reliability of Web applications written in JavaScript, due to their dynamic and event-driven features. A variety ... More
Safe and Chaotic Compilation for Hidden Deterministic Hardware AliasingMay 19 2019Hardware aliasing occurs when the same logical address can access different physical memory locations. This is a problem for software on some embedded systems and more generally when hardware becomes faulty in irretrievable locations, such as on a Mars ... More
Context-Aware Middleware: A ReviewMay 17 2019During previous years several studies have introduced the concept of "context-aware middleware" and also proposed solutions under this title; however, these systems are different in functionality. In this chapter, context-aware middleware is investigated ... More
The Essential Deployment Metamodel: A Systematic Review of Deployment Automation TechnologiesMay 17 2019In recent years, a plethora of deployment technologies evolved, many following a declarative approach to automate the delivery of software components. Even if such technologies share the same purpose, they differ in features and supported mechanisms. ... More
Targeted Greybox Fuzzing with Static Lookahead AnalysisMay 17 2019Automatic test generation typically aims to generate inputs that explore new paths in the program under test in order to find bugs. Existing work has, therefore, focused on guiding the exploration toward program parts that are more likely to contain bugs ... More
TERMINATOR: Better Automated UI Test Case PrioritizationMay 16 2019Automated UI testing is an important component of the continuous integration process of software development. A modern web-based UI is an amalgam of reports from dozens of microservices written by multiple teams. Queries on a page that opens up another ... More