Wishnu Prasetya

Wishnu Prasetya
Verified
Wishnu verified their affiliation via an institutional email.
Verified
Wishnu verified their affiliation via an institutional email.
  • Dr.
  • Researcher at Utrecht University

About

125
Publications
15,642
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
537
Citations
Introduction
Hi :) I am a lecturer and researcher at Utrecht University in the Netherlands. My area is program verification and software testing.
Current institution
Utrecht University
Current position
  • Researcher
Additional affiliations
September 2010 - present
Utrecht University
Position
  • Future Internet Testing (FITTEST)

Publications

Publications (125)
Conference Paper
Full-text available
Logging is a commonly employed technique to gather information about the dynamic behaviour of a program. The resulting logs can be analysed to derive statistics, infer models, to diagnose failures, and used for testing. Balancing the cost of logging (in terms of I/O time and disk usage) and the benefits of increasing logging details is a challengin...
Chapter
Full-text available
The cloud will be populated by Future Internet (FI) software, comprising advanced, dynamic and largely autonomic interactions among services, end-user applications, content and media. The complexity of the technologies involved in the cloud makes testing extremely challenging and demands novel approaches and major advancements in the field. This ch...
Article
Full-text available
The delta debugging minimization algorithm ddmin provides an efficient procedure for the simplification of failing test-cases. Despite its contribution towards the automation of debugging, ddmin still requires a significant number of iterations to complete. The delta debugging (DD) search space can be narrowed down by providing the test-case circum...
Conference Paper
Full-text available
Since our society is becoming increasingly dependent on applications emerging on the Future Internet, quality of these applications becomes a matter that cannot be neglected. However, the complexity of the technologies involved in Future Internet applications makes testing extremely challenging. The EU FP7 FITTEST project has addressed some of thes...
Article
This paper presents a theory of component based development for exception-handling in fault tolerant systems. The theory is based on a general theory of composition, which enables us to factorize the temporal specification of a system into the specifications of its components. This is a new development because in the past efforts to set up such a t...
Article
Modern computer games have become very complex, so they can benefit from automated testing. However, their huge and fine grained interaction space makes them very challenging for automated testing algorithms. Having a model of a system would greatly improve the effectiveness of a testing algorithm. However, manually constructing a model is expensiv...
Chapter
Full-text available
Player eXperience (PX) testing has attracted attention in the game industry as video games become more complex and widespread. Understanding players’ desires and their experience are key elements to guarantee the success of a game in the highly competitive market. Although a number of techniques have been introduced to measure the emotional aspect...
Preprint
Full-text available
The complexity of computer games is ever increasing. In this setup, guiding an automated test algorithm to find a solution to solve a testing task in a game's huge interaction space is very challenging. Having a model of a system to automatically generate test cases would have a strong impact on the effectiveness and efficiency of the algorithm. Ho...
Preprint
Full-text available
Computer games are very challenging to handle for traditional automated testing algorithms. In this paper we will look at intelligent agents as a solution. Agents are suitable for testing games, since they are reactive and able to reason about their environment to decide the action they want to take. This paper presents the experience of using an a...
Chapter
Player experience (PX) evaluation has become a field of interest in the game industry. Several manual PX techniques have been introduced to assist developers to understand and evaluate the experience of players in computer games. However, automated testing of player experience still needs to be addressed. An automated player experience testing fram...
Chapter
Full-text available
Computer game technology is increasingly more complex and applied in a wide variety of domains, beyond entertainment, such as training and educational scenarios. Testing games is a difficult task requiring a lot of manual effort since the interaction space in the game is very fine grained and requires a certain level of intelligence that cannot be...
Preprint
Full-text available
Player experience (PX) evaluation has become a field of interest in the game industry. Several manual PX techniques have been introduced to assist developers to understand and evaluate the experience of players in computer games. However, automated testing of player experience still needs to be addressed. An automated player experience testing fram...
Preprint
Full-text available
This short paper presents an architectural overview of an agent-based framework called iv4XR for automated testing that is currently under development by an H2020 project with the same name. The framework's intended main use case of is testing the family of Extended Reality (XR) based systems (e.g. 3D games, VR sytems, AR systems), though the appro...
Article
Full-text available
In model-based testing, we may have to deal with a non-deterministic model, e.g. because abstraction was applied, or because the software under test itself is non-deterministic. The same test case may then trigger multiple possible execution paths, depending on some internal decisions made by the software. Consequently, performing precise test anal...
Preprint
Full-text available
To enable automated software testing, the ability to automatically navigate to a state of interest and to explore all, or at least sufficient number of, instances of such a state is fundamental. When testing a computer game the problem has an extra dimension, namely the virtual world where the game is played on. This world often plays a dominant ro...
Article
Full-text available
Trends such as globalisation, standardisation and shorter life-cycles place great demands on the flexibility of the software industry. In order to compete and cooperate on an international scale, a constantly decreasing time to market and an increasing level of quality are essential. Testing is at the moment the most important and mostly used quali...
Chapter
Modern interactive software, such as computer games, employ complex user interfaces. Although these user interfaces make the games attractive and powerful, unfortunately they also make them extremely difficult to test. Not only do we have to deal with their functional complexity, but also the fine grained interactivity of their user interface blows...
Preprint
Full-text available
Software Engineering courses play an important role for preparing students with the right knowledge and attitude for software development in practice. The implication is far reaching, as the quality of the software that we use ultimately depends on the quality of the people that make them. Educating Software Engineering, however, is quite challengi...
Preprint
Full-text available
This paper presents aplib, a Java library for programming intelligent agents, featuring BDI and multi agency, but adding on top of it a novel layer of tactical programming inspired by the domain of theorem proving. Aplib is also implemented in such a way to provide the fluency of a Domain Specific Language (DSL). Compared to dedicated BDI agent pro...
Chapter
Full-text available
Software Engineering courses play an important role for preparing students with the right knowledge and attitude for software development in practice. The implication is far reaching, as the quality of the software that we use ultimately depends on the quality of the people that make them. Educating Software Engineering, however, is quite challengi...
Preprint
Full-text available
In model-based testing (MBT) we may have to deal with a non-deterministic model, e.g. because abstraction was applied, or because the software under test itself is non-deterministic. The same test case may then trigger multiple possible execution paths, depending on some internal decisions made by the software. Consequently, performing precise test...
Chapter
Full-text available
In model-based testing (MBT) we may have to deal with a non-deterministic model, e.g. because abstraction was applied, or because the software under test itself is non-deterministic. The same test case may then trigger multiple possible execution paths, depending on some internal decisions made by the software. Consequently, performing precise test...
Poster
Full-text available
We studied the use of model checking on production software. The software under scrutiny was ALICE Data Point Processing Framework (ADAPRO), an open source C++ software framework originally developed at the European Organisation for Nuclear Research (CERN). ADAPRO will be used as middleware for the upcoming RUN3 phase of the Large Hadron Collider (...
Conference Paper
Full-text available
This paper presents a case study on applying two model checkers, Spin and Divine, to verify key properties of a C++ software framework, known as ADAPRO, originally developed at CERN. Spin was used for verifying properties on the design level. Divine was used for verifying simple test applications that interacted with the implementation. Both model...
Preprint
This paper presents a case study on applying two model checkers, SPIN and DIVINE, to verify key properties of a C++ software framework, known as ADAPRO, originally developed at CERN. SPIN was used for verifying properties on the design level. DIVINE was used for verifying simple test applications that interacted with the implementation. Both model...
Preprint
Full-text available
There are many benefits in providing formal specifications for our software. However, teaching students to do this is not always easy as courses on formal methods are often experienced as dry by students. This paper presents a game called FormalZ that teachers can use to introduce some variation in their class. Students can have some fun in playing...
Chapter
Full-text available
In theory, a neural network can be trained to act as an artificial specification for a program by showing it samples of the programs executions. In practice, the training turns out to be very hard. Programs often operate on discrete domains for which patterns are difficult to discern. Earlier experiments reported too much false positives. This pape...
Conference Paper
Full-text available
Agent-based Modeling and Simulation (ABMS) has become a quite popular approach among researchers in the community, mainly due to its simplicity, expressiveness and wide applicability. However, in most cases, ABMS tools demonstrate reduced performance, especially when dealing with large experiments. This paper presents HLogo, a parallel variant of t...
Conference Paper
This paper discusses the performance of the automated testing tool for Java called T3 and compares it with few other tools and human written tests in a benchmark set by the Java Unit Testing Tool Contest 2018. Since all the compared tools rely on randomization when generating their test data, albeit to different degrees and with different heuristic...
Article
Full-text available
Many classification algorithms existing today suffer in handling many so-called "few data" or "limited data" instances. In this paper we show how to score query relevance with handle on few data by adopting a Minimum Description Length (MDL) principle. The main outcome is a strongly relevant routing recommendation system model (average(F)=0.72, M>=...
Article
Full-text available
This paper presents a new language called APSL for formally describing protocols to facilitate automated testing. Many real world communication protocols exchange messages whose structures are not trivial, e.g. they may consist of multiple and nested fields, some could be optional, and some may have values that depend on other fields. To properly t...
Article
Full-text available
Mobile gaming is already a popular and lucrative market. However, the low performance and reduced power capacity of mobile devices severely limit the complexity of mobile games and the duration of their game sessions. To mitigate these issues, in this article, we explore using computation‐offloading, that is, allowing the compute‐intensive parts of...
Article
This paper discusses the use of Wikipedia for building semantic ontologies to do Query Expansion (QE) in order to improve the search results of search engines. In this technique, selecting related Wikipedia concepts becomes important. We propose the use of network properties (degree, closeness, and pageRank) to build an ontology graph of user query...
Conference Paper
Many real world communication protocols exchange complex messages, consisting of multiple nested fields, some could have values that depend on other fields. To properly test an implementation, it is not sufficient to only explore different orders of message exchanges. We also need to test if the implementation produces correctly formatted messages,...
Article
Nowadays tools can generate test suites consisting of large number of test sequences. The used algorithms are typically random-based. Although more advanced variations may incorporate an advanced search algorithm to cover difficult scenarios, many decisions still have to be made randomly simply because no information is available to calculate the b...
Conference Paper
Random testing has the advantage that it is usually fast. An interesting use case is to use it for bulk smoke testing, e.g. to smoke test a whole project. However, on a large project, even with random testing it may still take hours to complete. To optimize this, we have adapted an automated random testing tool called T3 so that it becomes aware of...
Article
Full-text available
Rank fusion meta-search engine algorithms can be used to merge web search results of multiple search engines. In this paper we introduce two variants of the Weighted Borda-Fuse algorithm. The first variant retrieves documents based on popularities of component engines. The second one is based on k user-defined toplist of component engines. In this...
Conference Paper
Full-text available
T3i is an automated unit-testing tool to test Java classes. To expose interactions T3i generates test-cases in the form of sequences of calls to the methods of the target class. What separates it from other testing tools is that it treats test suites as first class objects and allows users to e.g. combine, query, and filter them. With these operati...
Conference Paper
This paper describes the third round of the Java Unit Testing Tool Competition. This edition of the contest evaluates no less than seven automated testing tools! And, like during the second round, test suites written by human testers are also used for comparison. This paper contains the full results of the evaluation.
Conference Paper
Full-text available
T3 is a light weight automated unit testing tool for Java. This paper presents the result of benchmarking of T3 at the 3rd Java Unit Testing Tool Contest organized at the 8th International Workshop on Search-Based Software Testing (SBST) in 2015.
Conference Paper
This paper introduces a new type of automated testing oracle, called the execution equivalence (EE) invariants. These invariants can be mined from application logs that capture both application events and application states. The EE-invariants express an equivalence relation on the sequences of application events in terms of equality of respective i...
Conference Paper
Full-text available
In this research we propose a technique of frequent itemset hierarchical clustering (FIHC) using an MDL-based algorithm, viz KRIMP. Different from the FIHC technique, in this proposed method we define clustering as a rank sequence problem of the top-3 ranked list of each itemsets-of-keywords clusters in web documents search results of a given query...
Conference Paper
Testing a web application is typically very complicated. Imposing simple coverage criteria such as function or line coverage is often not sufficient to uncover bugs due to incorrect components integration. Combinatorial testing can enforce a stronger criterion, while still giving us the ability to prioritize the test cases to keep the overall effor...
Conference Paper
Full-text available
Software systems often produce logs that capture information about their execution behaviour. When an error occurs, the log file with the error is reported for subsequent analysis. The longer the log file, the harder to identify the cause of the observed error. This problem can be considerably simplified if we reduce the log length, e.g., by removi...
Conference Paper
Full-text available
Testing a web application is typically very complicated. Imposing simple coverage criteria such as function or line coverage is often not sufficient to uncover bugs due to incorrect components integration. Combinatorial testing can enforce a stronger criterion, while still giving us the ability to prioritize the test cases to keep the overall effor...
Conference Paper
Full-text available
T3 is the next generation of the light weight automated testing tool T2 for Java. In the heart T3 is still a random testing tool; but it now comes with some new features: pair-wise testing, concurrent generators , and a combinator-based approach ala QuickCheck. This paper presents the result of benchmarking of T3 on its default configuration agains...
Conference Paper
Full-text available
T2 is a light-weight, on-the-fly random-based automated testing tool to test Java classes. This paper presents its recent benchmarking result against SBST 2013 Contest's test suite.
Conference Paper
Full-text available
Within the context of the FITTEST project, one of our tasks was to instrument ActionScript bytecode, so that aspects of the execution of the running application are logged. Although the decision what to log and when requires manual intervention, the code itself can be weaved into the system automatically by means of aspect-oriented programming (AOP...
Conference Paper
Full-text available
NOTE: the uploaded fulltext if of the original tech-report. To get the article itself, check the URL above. The Classification Tree Method (CTM) is a popular approach in functional testing as it allows the testers to systematically partition the input domain of an SUT, and specifies the combinations they want. We have implemented the approach as a...
Conference Paper
Full-text available
The complexity of the technologies involved in the Future Internet makes testing extremely challenging and demands for novel approaches and major advancement in the field. The overall aim of the FITTEST project is to address these testing challenges, by developing an integrated environment for automated testing, which can monitor the Future Interne...
Article
Full-text available
The Classification Tree Method (CTM) is a popular approach in functional testing. It allows testers to sys- tematically partition the input domains of a target program, and specifies the combinations they want. This paper presents an implementation of CTM as a domain specific language (DSL) embedded in a functional language Haskell. Such an impleme...
Conference Paper
Full-text available
This paper presents an automatic trace-based unit testing approach to test object-oriented programs. Most automated testing tools test a class C by testing each of its methods in isolation. Such an approach works poorly if specifications are only partial, which is usually the case in practice. In contrast, our approach generates sequences of calls...
Article
Full-text available
This paper presents an automatic trace-based unit testing approach to test Object Oriented programs. Most automated testing tools, test a class C by testing each of its methods in isolation. Such an approach works poorly if specifications are only partial, which is usually the case in practice. In contrast, our approach generates sequences of calls...
Conference Paper
Full-text available
This paper introduces a refinement of Misra’s Seuss logic, called Web Cube, that provides a model for programming and reasoning over web applications. It features black box composition of web services so that services offered by large systems, such as that of a back-end database, can be treated abstractly and consistently. It inherits the light wei...
Article
This paper describes a technique combining higher order functions, algebraic datat ypes, and monads to incrementally implement syntax driven logics. Extensions can be compositionally stacked while the base logic is left unchanged. The technique can furthermore be used to build a set of weaker logics for light weight verification or to generate vali...
Chapter
This paper presents a compositional extension of the programming calculus UNITY, which is used to design distributed programs. As the extension is compositional, we can use it to derive a program on the fly. That is, we can shape a program at the same time as we manipulate and decompose its given specification, and each time we apply a compositiona...
Article
Experience has shown that reasoning informally about distributed algorithms is extremely dangerous and error-prone, although the underlying method of reasoning is appealing. On the other hand, completely formal proofs of even simple algorithms are tedious to construct and difficult to follow. In this paper we propose a number of new operators for t...
Conference Paper
This paper describes a technique that combines algebraic datatypes and monads to build derivative verification condition generators (VCGs) by extending a base VCG. Extensions are compositional and can be stacked while the base VCG is left unchanged. The technique can be used to build a set of weaker VCGs to do light weight verification. Moreover, i...
Article
This report describes a simple imperative programming language L0 and its logic, which are integrated to the theorem prover HOL through syntactical embedding. The approach allows HOL's own type checker to be reused and its concrete syntax to be, to some degree, customized. The logic of L0 is Hoare-based and is completely syntax driven. Depending on...
Article
Full-text available
Web Cube is a server side programming model for building interactive web applications. Compared to typical server side approaches used nowadays, Web Cube offers better abstraction mechanism and built-in safety. It imposes a more logical organization of its components. As a direct result of this applications become inherently secure and development...
Article
Full-text available
The article reports on our preliminary research activities towards the verification of database transaction scripts. It gives a first order specification language for database transaction scripts and its accompanying logic. The logic is expressed in terms of weakest pre-condition rules and is quite simple and intuitive. The logic is sound, and, if...
Article
Full-text available
This paper describes a technique that combines algebraic specifications and monads to build derivative verification condition generators (VCGs) by extending a base VCG. Extensions are compositional and can be stacked while the base VCG is left unchanged. The technique can be used to build a set of weaker VCGs, which are useful to support light weight...
Article
Full-text available
Compositionality provides the foundation of software modularity, re-usability and separate veri cation of software components. One of the known diculties, when separately verifying components, is producing compositional proofs for progress properties of distributed systems. This paper presents a composition theory which is based on reasoning about...
Article
Full-text available
Compositionality provides the foundation of software modularity, reusability and separate verification of software components. One of the known difficulties, when separately verifying components, is producing compositional proofs for progress properties of distributed systems. This paper presents a new composition theory based on reasoning about te...
Article
Full-text available
Theorem provers were also called 'proof checkers' because that is what they were in the beginning. They have grown powerful, however, capable in many cases to automatically produce complicated proofs. In particular, higher order logic based theorem provers such as HOL and PVS became popular because the logic is well known and very expressive. They...
Article
Full-text available
This document reports the current development status of xMECH. It is an implementation of the so-called skin or hybrid embedding approach [1] for HOL. Its purpose is to enhance HOL's power and interaction to do software verification. xMECH features languages and logics to describe and verify sequential and distributed programs, a reasonably rich ex...
Article
Full-text available
UNITY is a simple programming logic to reason about distributed systems. It is especially attractive because of its elegant axiomatical style. Since its power is limited, people introduce variants to extends it with various new functionalities. However, in the axiomatical style it is easy to make a mistake: a seemingly very logical new inference ru...
Article
It is commonly realized that informal reasoning about distributed algorithms in general and self-stabilizing systems in particular is very error-prone. Formal method is considered as a promising solution, but is still in an immature state for the fact that formal proofs of even simple algorithms are tedious and difficult to follow. We believe that...
Article
Giving a compositional proof for progress properties of distributed systems has always been problematic. Without compositionality, the correctness of a component cannot be veried in isolation (without full knowledge of its would-be partners), which in many contexts is a severe restriction. This paper presents an approach in which properties, and in...
Conference Paper
Full-text available
This paper investigates self-stabilization on hierarchically divided networks. An underlying theory of self-stabilizing systems will be briefly exposed and a generic example will be given. The example and the theory have been mechanically verified using a general purpose theorem prover HOL. Three issues inherent to the problem, namely self-stabiliz...
Article
Gentle introductions to the programming logic UNITY, the theorem proving environment HOL, and the embedding of the first into the latter are presented. Equipped with this apparatus a methodology for designing distributed algorithms is described.
Article
Full-text available
T HIS paper has been written for the IPA workshop in Egmond aan Zee, 16-20 october 1995. Despite its size, it is intended as an introduction ---a quick tour--- to the technology of mechanical verification and the formal design of distributed algorithms, and is not intended to be complete. Nevertheless it will provide the necessary information for t...
Article
UNITY, introduced by Chandy and Misra [ChM88], is a programming logic intended to reason about temporal properties of distributed programs. Despite the fact that UNITY does not have the full power of, for example, linear temporal logic, it enjoys popularity due to its simplicity. There was however a serious problem with the Substitution Rule. The l...

Network

Cited By