About
41
Publications
24,601
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
844
Citations
Introduction
Publications
Publications (41)
Blockchain technology has gained significant attention across various fields in recent years, including its applications in the health domain. Examples of such applications are medicine supply chain management, health record management, clinical trial management, and remote patient monitoring. Although the health domain is highly regulated, there i...
Playtesting is an essential step in the game design process. Game designers use the feedback from playtests to refine their designs. Game designers may employ
procedural personas
to automate the playtesting process. In this article, we present two approaches to improve automated playtesting. First, we propose
developing persona
, which allows a...
Blockchain technology has been changing the nature of several businesses, from supply chain management to electronic record management systems and copyright management to healthcare applications. It provides a resilient and secure platform for modifications due to its distributed and shared nature and cryptographic functions. Each new technology, h...
This study presents a framework that procedurally generates maze-like levels and leverages an automated verification technique called model checking to verify and produce a winning action sequence for that level. By leveraging the counterexample generation feature of the SPIN model checker, one or more solutions to the level-in-test are found, and...
Playtesting is an essential step in the game design process. Game designers use the feedback from playtests to refine their design. Game designers may employ procedural personas to automate the playtesting process. In this paper, we present two approaches to improve automated playtesting. First, we propose a goal-based persona model, which we call...
We present a new methodology that employs tester agents to automate video game testing. We introduce two types of agents —synthetic and human-like. Our agents are derived from Sarsa and MCTS but focus on finding defects while traditional game-playing agents focus on maximizing game scores. The synthetic agent uses test goals generated from game sce...
In this paper, we study the effects of several Monte Carlo Tree Search (MCTS) modifications for video game testing. Although MCTS modifications are highly studied in game playing, their impacts on finding bugs are blank. We focused on bug finding in our previous study where we introduced synthetic and human-like test goals and we used these test go...
In this paper, we study the effects of several Monte Carlo Tree Search (MCTS) modifications for video game testing. Although MCTS modifications are highly studied in game playing, their impacts on finding bugs are blank. We focused on bug finding in our previous study where we introduced synthetic and human-like test goals and we used these test go...
In software testing process, it is preferred that test data has high coverage and cost-efficient quantity. Dynamic Symbolic Execution (DSE) increases the efficiency of the test process without compromising its effectiveness. In order to understand the tools and methods that can be used to generate test data with DSE method, this article is aimed fo...
In this paper, we present a new methodology that employs tester agents to automate video game testing. We introduce two types of agents -synthetic and human-like- and two distinct approaches to create them. Our agents are derived from Reinforcement Learning (RL) and Monte Carlo Tree Search (MCTS) agents, but focus on finding defects. The synthetic...
Context
Executing an entire regression test-suite after every code change is often costly in large software projects. To cope with this challenge, researchers have proposed various regression test-selection techniques.
Objective
This paper was motivated by a real industrial need to improve regression-testing practices in the context of a safety-cri...
Nowadays mobile devices have become increasingly widespread. It causes mobile applications number to grow dramatically. As the popularity of these systems is predicted to continue its increase in the near future, the importance of the quality of mobile applications increases. The aim of this study is to present a quality model for
Android applicat...
Nowadays mobile devices have become increasingly widespread. It causes mobile applications number to grow dramatically. As the popularity of these systems is predicted to continue its increase in the near future, the importance of the quality of mobile applications increases. The aim of this study is to present a quality model for Android applicati...
A major problem in biomedical informatics is the contextual retrieval and ranking of medical and healthcare information. In this article, we present a model for extracting semantic relations among medical and clinical documents. The purpose is to maximise contextual retrieval and ranking performance with minimum input from users.
We developed and e...
Due to the rapid growth of free text documents available in digital form, efficient techniques of automatic categorization are of great importance. In this paper, we present an efficient rule-based method for categorizing free text documents. The contributions of this research are the formation of lexical syntactic patterns as basic classification...
Dynamic web applications are becoming widespread nearly in every area. ASP.NET is one of the popular development technologies in this domain. The errors in these web applications can reduce the credibility of the site and cause possible loss of a number of clients. Therefore, testing these applications becomes significant. We present an automated t...
A crucial problem in service oriented computing is the specification and analysis of interactions among multiple peers that communicate via messages. We propose a design pattern that enables the specification of behavioral interfaces acting as communication contracts between peers. This "peer controller pattern" provides a modular, assume-guarantee...
We present a modular approach for verification of synchronization behavior in concurrent programs that use reentrant locks. Our approach decouples the verification of the lock implementation from the verification of the threads that use the lock. This decoupling is achieved using lock interfaces that characterize the allowable execution order for t...
In this paper, we present a domain specific search engine that relies on extracting the semantic relation among medical documents. Our goal is to maximize the contextual retrieval and ranking performance with minimum input from users. We have performed experiments to measure the effectiveness of the proposed technique by evaluating the performance...
This paper presents a simple and efficient automated tool called DoSSO that detects shared objects in multithreaded Java programs. Our main goal is to help programmers see all potentially shared objects that may cause some complications at runtime. This way programmers can implement a concurrent software without considering synchronization issues a...
We propose a modular verification methodology for aspect oriented programs. Aspects are the new modularization units to encapsulate crosscutting concerns and have powerful features whose effects can drastically change software behavior. Having such an impact on behavior requires an automated verification support. In this work we introduce a techniq...
The increasing level of automation in critical infrastructures requires development of effective ways for finding faults in
safety critical software components. Synchronization in concurrent components is especially prone to errors and, due to difficulty
of exploring all thread interleavings, it is difficult to find synchronization faults. In this...
There has been signicant progress in automated verication techniques based on model checking. How- ever, scalable software model checking remains a challenging problem. We believe that this problem can be addressed using a design for verication approach based on design patterns that facilitate scalable automated verication. In this paper, we presen...
We present a new next generation domain search engine called MedicoPort. MedicoPort is a medical search engine designed for the users with no medical expertise. It is enhanced with the domain knowledge obtained from Unified Medical Language System (UMLS) to increase the effectiveness of the searches. The power of the system is based on the ability...
The evolution of a new technology depends upon a good theoretical basis for developing the technology, as well as upon its
experimental validation. In order to provide for this experimentation, we have investigated the creation of a software testbed
and the feasibility of using the same testbed for experimenting with a broad set of technologies. Th...
We present an experimental study which demonstrates that model checking techniques can be effective in finding synchronization errors in safety critical software when they are combined with a design for verification approach. We apply the concurrency con- troller design pattern to the implementation of the synchronization operations in Java program...
We propose an hierarchical state machine (HSM) model for specifying behavioral interfaces of peers participating in a composite Web service. We integrate the HSM model to a design pattern which is supported by a modular verification technique that can 1) statically analyze the properties about global interactions of a composite Web service and 2) c...
We present a design for verification approach to developing reliable web services. We focus on composite web services which consist of asynchronously communicating peers. Our goal is to automatically verify properties of interactions among such peers. We propose a design pattern that eases the development of such web services and enables a modular,...
We present a framework for verifiable concurrent programming in Java based on a design pattern for concurrency controllers. Using this pattern, a programmer can write concurrency controller classes defining a synchronization policy by specifying a set of guarded commands and without using any of the error-prone synchronization primitives of Java. W...
We present a framework for verifiable concurrent programming in Java based on a design pattern for concurrency controllers. Using this pattern, a programmer can write concurrency controller classes defining a synchronization policy by specifying a set of guarded commands and without using any of the error-prone synchronization primitives of Java. W...
We present a modular approach to specification and verification of concurrency controllers by decoupling their behavior and interface specifications. The behavior specification of a concurrency controller defines how its shared variables change their values whereas the interface specification defines the order in which a client thread should call i...
There has been significant progress in automated verification techniques based on model checking. However, scalable software
model checking remains a challenging problem. We believe that this problem can be addressed using a design for verification
approach based on design patterns that facilitate scalable automated verification. We have been inves...