Andre Takeshi Endo

Andre Takeshi Endo
Federal University of São Carlos | UFSCar · Departamento de Computação (DC)

PhD

About

73
Publications
17,173
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
701
Citations
Introduction
Associate Professor at the Federal University of São Carlos (UFSCar). His research lies in Software Engineering with emphasis on software testing, mobile computing, and service-oriented architectures.
Additional affiliations
September 2013 - January 2022
Federal University of Technology of Paraná
Position
  • Professor (Assistant)

Publications

Publications (73)
Article
ContextTesting from finite state machines has been investigated due to its well-founded and sound theory as well as its practical application. There has been a recurrent interest in developing methods capable of generating test suites that detect all faults in a given fault domain. However, the proposal of new methods motivates the comparison with...
Article
Full-text available
The popularity of portable devices has grown rapidly in recent years. Due to the high number and diversity of users, new testing approaches are necessary to reduce the occurrence of faults and ensure better quality in mobile applications. The major objective of this paper is to evaluate the use of Model-Based Testing (MBT) in the construction and i...
Article
Full-text available
Cross-platform apps stand out by their ability to run in various operating systems (OSs), like Android, iOS, and Windows. Such apps are developed using popular frameworks for cross-platform app development like Apache Cordova, Xamarin, and React Native. However, the mechanisms to automate their tests are not cross-platform and do not support multip...
Conference Paper
The Node.js platform empowers a huge number of software systems programmed with JavaScript. Node.js employs an asynchronous execution model where event handlers are scheduled nondeterministically, and unexpected races between event handlers often cause malfunctions. Existing techniques for detecting such event races require complex modifications of...
Article
Full-text available
Agile methods and their practices have fostered the widespread presence of automated test cases. Such test cases have been successfully and extensively adopted to test different software levels, from unit tests (e.g., JUnit) to end-to-end Web Graphical User Interface (GUI) tests (e.g., Selenium Webdriver). While test execution is mostly automated b...
Article
Full-text available
Background: Software quality assurance (QA) is carried out in tandem with software development. Essentially, QA activities are conducted in hopes of assessing the extent to which a software product aligns with predefined requirements. Although QA includes highly technical tasks, much like software development, it remains largely a human-centered en...
Conference Paper
There has been a growing interest in machine learning due to its potential to address a myriad of problems that would otherwise be difficult to solve. Consequently, the adoption of machine learning based programs has become mainstream. Owing to this widespread adoption, it is imperative to develop automated approaches to assess the quality of machi...
Article
Full-text available
With the growth of the digital games market, the occurrence of bugs in games has a significant impact and generates dissatisfaction among users. Therefore, conducting tests is necessary to avoid these events and ensure the quality of the distributed product. Among the tests that are performed in games, one that is particularly effective in identify...
Conference Paper
With the growth of the digital games market, the occurrence of bugs in games has a great impact and generates dissatisfaction among users. Therefore, conducting tests is necessary to avoid these events and ensure the quality of the distributed product. Among the tests that are performed in games, one that is particularly effective in identifying bu...
Chapter
Test Case Prioritization reduces the cost of software testing by executing earlier the subset of test cases showing higher priorities. The methodology consists of ranking test cases so that, in case of a limited budget, only the top-ranked tests are exercised. One possible direction for prioritizing test cases relies on considering the usage freque...
Preprint
Full-text available
Tests executed by human testers are still widespread in practice and fill the gap left by limitations of automated approaches. Among the human-centered approaches, exploratory testing is the de facto approach in agile teams. Although it is focused on the expertise and creativity of the tester, the activity of exploratory testing may benefit from su...
Article
The use of mutation testing for mobile applications (apps for short) is still a challenge. Mobile apps are usually event-driven and encompass graphical user interfaces (GUIs) and a complex execution environment. Then, they require mutant operators to describe specific apps faults, and the automation of the mutation process phases like execution and...
Article
Full-text available
Smart devices and their apps are present in many everyday activities and play an important role for people with some disabilities. However, making apps more accessible is still a challenge for developers. Automatically accessibility testing tools can help in this task but present some limitations. They produce reports on accessibility faults, which...
Preprint
Regression testing is an important phase to deliver software with quality. However, flaky tests hamper the evaluation of test results and can increase costs. This is because a flaky test may pass or fail non-deterministically and to identify properly the flakiness of a test requires rerunning the test suite multiple times. To cope with this challen...
Conference Paper
Exploratory Testing (ET) is a well-known technique to perform manual tests. Its main goal is to foster creativity and freedom, while the tester learns, designs and executes tests continuously in a time-boxed session. Popular among agile teams, ET is particularly interesting for software systems with highly-mutable features like mobile apps. Previou...
Preprint
Software systems have been continuously evolved and delivered with high quality due to the widespread adoption of automated tests. A recurring issue hurting this scenario is the presence of flaky tests, a test case that may pass or fail non-deterministically. A promising, but yet lacking more empirical evidence, approach is to collect static data o...
Conference Paper
Mobile apps have been developed with the aim of attracting a large and diverse number of users. An impediment factor, especially for the Android platform, is a large number of hardware and software configurations available in the market, so app developers face the challenge of producing a highly compatible app. For compatibility testing, an app can...
Conference Paper
Full-text available
Mobile apps have gone mainstream and become part of our daily lives. Currently, many efforts have been made to make apps more accessible to people with disabilities. However, little is still known on how to implement more accessible apps. In the Android API, there are (code) elements that may be employed to (in)directly improve the app's accessibil...
Article
Full-text available
Model-Based Testing (MBT) is a well-known technique that employs formal models to represent reactive systems’ behavior and generates test cases. Such systems have been specified and verified using mostly Finite State Machines (FSMs). There is a plethora of test generation algorithms in the literature; most of them are based on graphs once an FSM ca...
Conference Paper
While the literature acknowledges that mobile apps present different testing challenges and automated solutions have been pursued, it lacks a better understanding of how pervasive practices of manual testing (namely Exploratory Testing - ET) can be more effectively applied. This paper aims to investigate the use of ET in mobile apps. With this stud...
Conference Paper
Full-text available
Cross-platform app development has achieved meaningful results in practice with frameworks like React Native, Xamarin, and Apache Cordova. Unlike native apps, such frameworks support the development of a mobile app that can run in different platforms. Nevertheless, the literature lacks techniques to test cross-platform apps since most of the existi...
Conference Paper
Context: Model-Based Testing (MBT) has attracted a lot of attention from software testing researchers, since it has been ecient in employing formal models to represent the reactive systems behavior in order to guide test case generation. Ob jective: This paper investigates approaches to automatically generate test cases in MBT, such as methods, cri...
Conference Paper
Context: Model-Based Testing (MBT) is a technique that employs formal models to represent reactive systems' behavior and generates test cases. Such systems are mostly specified and verified using Finite State Machines (FSMs). There is a plethora of test generation algorithms in the literature. Most of them are graph-based once an FSM can be formall...
Article
In SOA testing, the behaviour of a composite service and its partner services can be represented as an event graph (model). As test cases are derived from such a model, the Chinese postman problem (CPP) algorithm is applied to cover all edges. Although CPP provides an optimal solution, there is a lack of alternative algorithms to obtain not only a...
Article
Software testing involves probing into the behavior of software systems to uncover faults. Most testing activities are complex and costly, so a practical strategy that has been adopted to circumvent these issues is to automate software testing. There has been a growing interest in applying machine learning (ML) to automate various software engineer...
Conference Paper
Full-text available
As mobile gaming is an ever-growing, competitive and profitable market, there has been an increasing demand for better quality in video game software. While manual testing is still a common practice among mobile game developers, some repetitive and error-prone tasks could benefit from test automation. For instance, test scripts that perform sanity...
Conference Paper
Mobile application developers have started to realize that quality plays a vital role in increasing the popularity of mobile applications (apps), thereby directly influencing economical profit (in-app purchases revenue) and app-related success factors (i.e., number of downloads). Therefore, developers have become increasingly concerned with taking...
Conference Paper
Full-text available
Context: Model-Based Testing (MBT) is an approach that allows testers to represent the behavior of the system under test as models, specifying inputs and their expected outputs. From such models, existing tools might be employed to generate test cases automatically. While MBT represents a promising step towards the automation of test case generatio...
Article
Context: while the mobile computing market has expanded and become critical, the amount and complexity of mobile apps have also increased. To assure reliability, these apps require software engineering methods, mainly verification, validation, and testing. However, mobile app testing is a challenging activity due to the diversity and limitations fo...
Conference Paper
Mobile apps have been introduced in our lives and as a specific class of software, developers and testers have to deal with new challenges. For instance, testing all configurations and characteristics of apps might be an expensive activity. It would be desirable to maximize the return of investment for systematic and automated test cases. This pape...
Conference Paper
Full-text available
The proliferation of mobile devices has given rise to an increasing demand for software that is well-suited to this particular environment. However, ensuring the quality of mobile applications is challenging. Much of the overall complexity of mobile applications stems from logic expressions, i.e., predicates, which appear in control-flow statements...
Conference Paper
Full-text available
The teaching of software analysis and design can take advantage of more specific systems for engineering courses, since some of these areas focus on embedded systems and hardware components associated. In this context, this paper presents the development of an open educational resource to support the teaching of software analysis and design using t...
Article
Full-text available
Test case generation based on Finite State Machines (FSMs) has been extensively investigated due to its accuracy and simplicity. Several test criteria have been proposed in the literature to generate test cases based on FSMs. One of the oldest criteria is the Switch Cover. As a main feature, the Switch Cover criterion defines that all transition pa...
Conference Paper
Test case generation based on Finite State Machines (FSMs) has been extensively investigated due to its accuracy and simplicity. Several test criteria have been proposed in the literature to generate test cases based on FSMs. One of the oldest criteria is the Switch Cover. As a main feature, the Switch Cover criterion defines that all transition pa...
Conference Paper
Symbolic execution has made great strides in the last two decades. However, some characteristics of programs still pose significant challenges to test data generation techniques that use symbolic execution and constraint solving. These challenges present themselves in the form of path explosion, constraint complexity, dependency, and exception-depe...
Article
Full-text available
Model-based testing (MBT) involves creating an abstraction, called a model, to represent the system and automatically deriving test cases from this model. MBT can be performed using various approaches that generally employ certain assumptions or requirements affecting the test performance in practice. Here, we consider the harmonized state identifi...
Conference Paper
Full-text available
Symbolic execution has been used in software testing as a effective technique to automatically generate test data. Most of approaches are based only on control-flow criteria and generate input data only for a whole program or function. However, testers may want to generate test data for covering data-flow criteria and also for satisfying specific t...
Conference Paper
Symbolic execution has been used in software testing as a effective technique to automatically generate test data. Most of approaches are based only on control-flow criteria and generate input data only for a whole program or function. However, testers may want to generate test data for covering data-flow criteria and also for satisfying specific t...
Conference Paper
Full-text available
This paper reports an experience on using the robot Lego Mindstorm NXT 2.0, model 8547, to support the teaching of Software Project Management. We conducted an experiment in which two teams developed a software project using the robot, while applying principles of project management. The experiment was divided into two parts. First, we verified the...
Article
The behavior of composed Web services depends on the results of the invoked services; unexpected behavior of one of the invoked services can threat the correct execution of an entire composition. This paper proposes an event-based approach to black-box testing of Web service compositions based on event sequence graphs, which are extended by facilit...
Conference Paper
Full-text available
Service-oriented architectures and Web services have been widely adopted by enterprises to pervade integration among software systems. As reliable services are essential to assure that these systems work correctly, formal and systematic testing should be performed. This paper reports the application of a model-based approach to test Web services in...
Conference Paper
Full-text available
Finite state machine-based testing aims at generating checking sequences that guarantee the conformance between the implementation and the specification of a system. For that purpose, several methods have been proposed to generate checking sequences which ensure full coverage of possible faults in the implementation. Many existing methods are based...
Conference Paper
Full-text available
Pervasive computing has been increasingly finding its way into mainstream. Such paradigm has been fostering the development of systems that transparently interact with users, push context awareness further, and are able to deal with aspects of the user's day-to-day experience. Pervasive systems have been constantly and invisibly introduced in our e...
Conference Paper
Software Product Line (SPL) is an approach which offers several benefits for organizations, such as significant reductions in the development and maintenance costs, reduced time-to-market, and personalized software products. In SPLs, the testing activity presents challenges due to characteristics of their development process. The cost of testing SP...
Conference Paper
Full-text available
Testing from finite state machines has been widely investigated due to its well-founded and sound theory as well as its practical application in different areas, e.g., Web-based systems and protocol testing. There has been a recurrent interest in developing methods capable of generating test suites that detect all faults in a given fault domain. Ho...
Conference Paper
Full-text available
The use of web services integrated in different applications, especially the composition of services, brings challenges for testing due to their complex interactions. In this paper, we propose an event-based approach to test web service compositions. The approach is based on event sequence graphs which we extend by facilities to consider the specif...
Conference Paper
Full-text available
Service-oriented architectures and web services have been used to foster the development of loosely coupled, interoperable, and distributed applications. Mission-critical and business process systems can be implemented with them, requiring a high level of quality. Model-based testing allied with state models is a promising candidate due to its effi...
Article
Full-text available
Service-oriented architectures and web services have been used as important technologies to foster the development of loosely coupled and distributed applications. Web services pose new challenges for the testing activity, mainly because mission-critical and complex business process systems are implemented with them. In this context, formal testing...
Article
Full-text available
Service-Oriented Architecture (SOA) fosters the development of loosely coupled applications. Web services have been favored as a promising technology to implement SOAs. Since web services are often involved in complex business processes and safety-critical systems, it is important that they are of high level of reliability. In this paper a strategy...
Article
Full-text available
Service-oriented architectures and web services have been used as important technologies to foster the development of loosely coupled and dis-tributed applications. Web services pose new challenges for the testing activity, mainly because mission-critical and complex business process systems are im-plemented with them. In this context, formal testi...
Conference Paper
Full-text available
Web services are an emerging Service-Oriented Architecture technology to integrate applications using open standards based on XML. Software Engineering tools integration is a promising area since companies adopt different software processes and need different tools on each activity. Software engineers could take advantage of software engineering to...
Conference Paper
Full-text available
Web Services are a technology based on the Service Oriented Architecture that enables communication between applications through the Internet. Using Web Services, it is possible to send any type of information in any form of encryption. In this context, different techniques have been used to attach binary files in SOAP messages. However, there is n...
Conference Paper
Full-text available
Web Services have been used in the development of loosely coupled applications. Several Web Services are usually combined to create new services by a mechanism named Web Services Composition. In this paper, we present a strategy for Web Services Composition structural integration testing. Structural testing coverage criteria for services written in...

Network

Cited By