Tariq M. King

dblp:04/1760 · DBLP profile ↗
← Back
17ranked-venue papers
3as first author
2since 2021 · last 2023
0009-0006-0368-8201ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 1 first-author · 2 since 2021Applied, interdisciplinary, general and emerging computing · 5Human-computer interaction and ubiquitous computing · 2Artificial intelligence and machine learning · 1Security and privacy · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1 · 1 first-author
YearPublicationVenuePosition
2023 Comparison of open-source runtime testing tools for microservices
Juan P. Sotomayor, Sai Chaithra Allala, Dionny Santiago, Tariq M. King, Peter J. Clarke
Softw. Qual. J.4
2022 Generating Abstract Test Cases from User Requirements using MDSE and NLP
abstract
Model-driven software engineering (MDSE) has emerged as a popular and commonly used method for designing software systems in which models are the primary development artifact over the last decade. MDSE has resulted in the trend toward further automating the software process. However, the generation of test cases from user requirements still lags in reaching the required level of automation. Given that most user requirements are written in natural language, the recent advances in natural language processing (NLP) provide an opportunity to further automate the test generation process.In this paper, we exploit the advances in MDSE and NLP to generate abstract test cases from user requirements written in structured natural language and the respective data model. We accomplish this by creating meta-models for user requirements and abstract test cases and defining the appropriate transformation rules. To support this transformation, helper methods are defined to extract the relevant information from user requirements related to testing. To show the feasibility of the approach, we developed a prototype and conducted a case study with use cases and test cases from a Payroll Management System.
Sai Chaithra Allala, Juan P. Sotomayor, Dionny Santiago, Tariq M. King, Peter J. Clarke
QRS4
2019 Towards Transforming User Requirements to Test Cases Using MDE and NLP
abstract
The behavior, attributes and properties of a software system is represented in a set of requirements that are written in structured natural language and are usually ambiguous. In large development projects, different modeling techniques are used to create and manage these requirements which aid in the analysis of the problem domain. Requirements are later used in the development process to create test cases, which is still mainly a manual process. To automate this process, we plan to use several of the techniques used in model-driven software development and Natural Language Processing(NLP). The approach under consideration is to use a model-to-model transformation to convert requirements into test cases with the support of Stanford CoreNLP techniques. Key to this transformation process is the use of meta-modeling for requirements and test cases. In this paper we focus on creating a comprehensive meta-model for requirements that can represent both use cases and user stories and performing preliminary analysis of the requirements using NLP. In later work we will develop a set of transformation rules to convert requirements into partial test cases. To show the feasibility of our approach we develop a prototype that can accept a cross-section of requirements written as both use cases and user stories.
Sai Chaithra Allala, Juan P. Sotomayor, Dionny Santiago, Tariq M. King, Peter J. Clarke
COMPSAC (2)4
2019 Comparison of Runtime Testing Tools for Microservices
abstract
Recently there has been an increase in the number of software applications using the microservices architectural pattern. This is due to the benefits derived over the more traditional N-tier patterns that use monolithic designs for each of the tiers. The value of using the microservices architectural pattern, particularly in the cloud, has been pioneered by companies such as Netflix and Google. These companies have created protocols and tools to support the development of cloud-based applications. However, the testing of microservices applications continues to be challenging due to the added complexity of network communication between the collaborating services. In this paper we provide a comparison of several open-source tools used to support the testing of microservices, describe polyglot Ridesharing microservices reference prototype, and present the results of a study that measures the overhead to test the Ridesharing application. We also describe our experiences in configuring and running the testing tools on the prototype.
Juan P. Sotomayor, Sai Chaithra Allala, Patrick Alt, Justin Phillips, Tariq M. King, Peter J. Clarke
COMPSAC (2)5
2019 Machine Learning and Constraint Solving for Automated Form Testing
abstract
In recent years there has been a focus on the automatic generation of test cases using white box testing techniques, however the same cannot be said for the generation of test cases at the system-level from natural language system requirements. Some of the white-box techniques include: the use of constraint solvers for the automatic generation of test inputs at the white box level; the use of control flow graphs generated from code; and the use of path generation and symbolic execution to generate test inputs and test for path feasibility. Techniques such as boundary value analysis (BVA) may also be used for generating stronger test suites. However, for black box testing we rely on specifications or implicit requirements and spend considerable time and effort designing and executing test cases. This paper presents an approach that leverages natural language processing and machine learning techniques to capture black box system behavior in the form of constraints. Constraint solvers are then used to generate test cases using BVA and equivalence class partitioning. We also conduct a proof of concept that applies this approach to a simplified task management application and an enterprise job recruiting application.
Dionny Santiago, Justin Phillips, Patrick Alt, Brian Muras, Tariq M. King, Peter J. Clarke
ISSRE5
2017 Impact of Using Tools in an Undergraduate Software Testing Course Supported by WReSTT
abstract
Software continues to affect a major part of our daily lives, including the way we use our phones, home appliances, medical devices, and cars. The pervasiveness of software has led to a growing demand for software developers over the next decade. To ensure the high quality of software developed in industry, students being trained in software engineering also need to be trained on how to use testing techniques and supporting tools effectively at all levels of development. In this article, we investigate how testing tools are used in the software project of an undergraduate testing course. We also investigate how a cyberlearning environment—the Web-Based Repository of Software Testing Tutorials (WReSTT)—is used to supplement the learning materials presented in class, particularly the tutorials on different software testing tools. The results of a study spanning three semesters of the undergraduate course suggest that (1) the use of code coverage tools motivates students to improve their test suites; (2) the number of bugs found when using coverage tools slightly increased, which is similar to the results found in the research literature; and (3) students find WReSTT to be a useful resource for learning about software testing techniques and the use of code coverage tools.
Peter J. Clarke, Debra Lee Davis, Raymond Chang-Lau, Tariq M. King
ACM Trans. Comput. Educ.4
2014 Legend: an agile DSL toolset for web acceptance testing
abstract
Agile development emphasizes collaborations among customers, business analysts, domain experts, developers, and testers. However, the large scale and rapid pace of many agile projects presents challenges during testing activities. Large sets of test artifacts must be comprehensible and available to various stakeholders, traceable to requirements, and easily maintainable as the software evolves. In this paper we describe Legend, a toolset that leverages domain-specific language to streamline functional testing in agile projects. Some key features of the toolset include test template generation from user stories, model-based automation, test inventory synchronization, and centralized test tagging.
Tariq M. King, Gabriel Nunez, Dionny Santiago, Adam Cando, Cody Mack
ISSTA1
2014 Integrating Testing into Software Engineering Courses Supported by a Collaborative Learning Environment
abstract
As software becomes more ubiquitous and complex, the cost of software bugs continues to grow at a staggering rate. To remedy this situation, there needs to be major improvement in the knowledge and application of software validation techniques. Although there are several software validation techniques, software testing continues to be one of the most widely used in industry. The high demand for software engineers in the next decade has resulted in more software engineering (SE) courses being offered in academic institutions. However, due to the number of topics to be covered in SE courses, little or no attention is given to software testing, resulting in students entering industry with little or no testing experience. We propose a minimally disruptive approach of integrating software testing into SE courses by providing students access to a collaborative learning environment containing learning materials on testing techniques and testing tools. In this article, we describe the learning environment and the studies conducted to measure the benefits accrued by students using the learning environment in the SE courses.
Peter J. Clarke, Debra Lee Davis, Tariq M. King, Jairo Pava, Edward L. Jones
ACM Trans. Comput. Educ.3
2012 Using WReSTT in SE courses: an empirical study
abstract
There continues to be a lack of adequate training for students in software testing techniques and tools at most academic institutions. Several educators and researchers have investigated innovative approaches that integrate testing into programming and software engineering (SE) courses with some success. The main problems are getting other educators to adopt their approaches and ensuring students continue to use the techniques they learned in previous courses. In this paper we present a study that evaluates a non-intrusive approach to integrating software testing techniques and tools in SE courses. The study uses a Web-Based Repository of Software Testing Tools (WReSTT) that contains tutorials on software testing concepts and tools. The results of the study show that (1) students who use WReSTT in the classroom can improve their understanding and use of testing techniques and tools, (2) students find WReSTT a useful learning resource, and (3) the collaborative learning environment motivates students to complete assignments.
Peter J. Clarke, Jairo Pava, Debra Lee Davis, Frank Hernandez, Tariq M. King
SIGCSE5
2012 A testing strategy for abstract classes
abstract
SUMMARY One of the characteristics of the increasingly widespread use of object‐oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Since abstract classes cannot be instantiated, they cannot be tested in isolation using standard execution‐based testing strategies. A standard approach to testing abstract classes is to instantiate a concrete descendant class and test the features that are inherited. This paper presents a structured approach that supports the testing of features in abstract classes, paying particular attention to ensuring that the features tested are those defined in the abstract class. Two empirical studies are performed on a suite of large Java programs and the results presented. The first study analyses the role of abstract classes from a testing perspective. The second study investigates the impact of the testing strategy on the programs in this suite to demonstrate its feasibility and to comment on the pragmatics of its use. Copyright © 2010 John Wiley & Sons, Ltd.
Peter J. Clarke, James F. Power, Djuradj Babich, Tariq M. King
Softw. Test. Verification Reliab.4
2011 Safe Runtime Validation of Behavioral Adaptations in Autonomic Software
Tariq M. King, Andrew A. Allen, Rodolfo Cruz, Peter J. Clarke
ATC1
2011 Collaborative web-based learning of testing tools in SE courses
abstract
One of the main concerns in the software industry continues to be the development of high quality software. This concern will be exacerbated as software systems become more complex. The training of software developers continues to grow in academia since more institutions are offering software engineering (SE) courses. However, the list of topics that are expected to be covered in this course leaves little or no time for topics that focus on developing quality software, such as software testing and the use of testing tools.
Peter J. Clarke, Jairo Pava, Tariq M. King
SIGCSE4
2008 A Meta-model to Support Regression Testing of Web Applications
Yanelis Hernandez, Tariq M. King, Jairo Pava, Peter J. Clarke
SEKE2
2008 Analyzing clusters of class characteristics in OO applications
Peter J. Clarke, Djuradj Babich, Tariq M. King, B. M. Golam Kibria
J. Syst. Softw.3
2007 Towards Self-Testing in Autonomic Computing Systems
abstract
As researchers and members of the IT industry move towards a vision of computing systems that manage themselves, it is imperative to investigate ways to dynamically validate these systems to avoid the high cost of system failures. Although research continues to advance in many areas of autonomic computing, there is a lack of development in the area of testing these types of systems at runtime. Self-managing features in autonomic systems dynamically invoke changes to the structure and behavior of components that may already be operating in an unpredictable environment; further emphasizing the need for runtime testing. In this paper we propose a framework that dynamically validates changes in autonomic computing systems. Our framework extends the current structure of autonomic computing systems to include self-testing as an implicit characteristic. We validate our framework by creating a prototype of an autonomic container that incorporates the ability to self-test
Tariq M. King, Djuradj Babich, Jonatan Alava, Peter J. Clarke, Ronald Stevens
ISADS1
2007 Intra-Class Testing of Abstract Class Features
abstract
One of the characteristics of the increasingly widespread use of object-oriented libraries and the resulting intensive use of inheritance is the proliferation of dependencies on abstract classes. Such classes defer the implementation of some features, and are typically used as a specification or design tool. However, since their features are not fully implemented, abstract classes cannot be instantiated, and thus pose challenges for execution-based testing strategies. This paper presents a structured approach that supports the testing of features in abstract classes. Core to the approach is a series of static analysis steps that build a comprehensive view of the inter-class dependencies in the system under test. We then leveraged this information to define a test order for the methods in an abstract class that minimizes the number of stubs required during testing, and clearly identifies the required functionality of these stubs. Our approach is based on a comprehensive taxonomy of object-oriented classes that provides a framework for our analysis. First we describe the algorithms to calculate the inter-class dependencies and the test-order that minimizes stub creation. Then we give an overview of our tool, AbstractTestJ that implements our approach by generating a test order for the methods in an abstract Java class. Finally, we harness this tool to provide an analysis of 12 substantial Java applications that demonstrates both the feasibility of our approach and the importance of this technique.
Peter J. Clarke, Djuradj Babich, Tariq M. King, James F. Power
ISSRE3
2006 Automatic Validation of Java Page Flows Using Model-Based Coverage Criteria
abstract
There continue to be advances in the automation of Web application development, however testing these applications remains mainly a manual process. In this paper we present a methodology to test page flows using traditional test coverage criteria in conjunction with an automated testing tool. The criteria is applied in the context of page flows and transformed into: all pages, all actions, all links, and all forwards. We define a state-based model of the application using information from the page flow and then use this model as the basis for generating a script to be executed by the automated testing tool. This finite state machine (FSM) also models the various combinations of inputs associated with the user interface of the application. During execution of the script, test cases are randomly generated using the FSM along with textual input from a pre-defined data pool. The adequacy of the test coverage based on the criteria for the page flow is determined by analyzing the elements covered during execution of the test script
Jonatan Alava, Tariq M. King, Peter J. Clarke
COMPSAC (1)2