Aamer Nadeem

Aamer Nadeem
  • PhD (Computer Science)
  • Professor at Capital University of Science and Technology

About

107
Publications
93,450
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
1,471
Citations
Introduction
Dr. Aamer Nadeem is Professor of Software Engineering at the Capital University of Science and Technology (CUST). He is also Head of the Center for Software Dependability (CSD) – a research group at CUST, working in the areas of software reliability, software fault tolerance, formal methods and safety-critical systems. Currently he is supervising research in the areas of software fault prediction, metamorphic testing and software product line engineering.
Current institution
Capital University of Science and Technology
Current position
  • Professor
Additional affiliations
January 2019 - present
Capital University of Science and Technology
Position
  • Professor
September 2015 - December 2018
Capital University of Science and Technology
Position
  • Professor (Associate)
January 2008 - August 2015
Mohammad Ali Jinnah University
Position
  • Professor (Associate)

Publications

Publications (107)
Article
The popularity and widespread use of social media are constantly generating unmonitored data, spreading unwanted content such as hate speech and expressions that incite violence. Automatic detection of violence incitation is a challenging task and to the best of our knowledge, Urdu language has been completely neglected. Therefore, a robust framewo...
Article
Full-text available
Testing an intricate plexus of advanced software system architecture is quite challenging due to the absence of test oracle. Metamorphic testing is a popular technique to alleviate the test oracle problem. The effectiveness of metamorphic testing is dependent on metamorphic relations (MRs). MRs represent the essential properties of the system under...
Article
The occurrence of faults in software systems represents an inevitable predicament. Testing is the most common means to detect such faults; however, exhaustive testing is not feasible for any nontrivial system. Software fault prediction (SFP), which identifies software components that are more prone to errors, seeks to supplement the testing process...
Article
Full-text available
Magnetic resonance imaging (MRI) is an information-rich research tool used in diagnostics using image processing applications (IPAs), and the results are utilized in machine learning. Therefore, testing of IPAs for credible results is vital. A deficient IPA would cause the related taxonomies of the machine learning to be defective as well and diagn...
Article
Full-text available
Software fault prediction (SFP) is a quality assurance process that identifies if certain modules are fault-prone (FP) or not-fault-prone (NFP). Hence, it minimizes the testing efforts incurred in terms of cost and time. Supervised machine learning techniques have capacity to spot-out the FP modules. However, such techniques require fault informati...
Article
Full-text available
Fault prediction is a necessity to deliver high-quality software. The absence of training data and mechanism to labeling a cluster faulty or fault-free is a topic of concern in software fault prediction (SFP). Inheritance is an important feature of object-oriented development, and its metrics measure the complexity, depth, and breadth of software....
Article
Full-text available
Software is a complex entity, and its development needs careful planning and a high amount of time and cost. To assess quality of program, software measures are very helpful. Amongst the existing measures, coupling is an important design measure, which computes the degree of interdependence among the entities of a software system. Higher coupling l...
Article
Full-text available
Software Fault Prediction (SFP) assists in the identification of faulty classes, and software metrics provide us with a mechanism for this purpose. Besides others, metrics addressing inheritance in Object-Oriented (OO) are important as these measure depth, hierarchy, width, and overriding complexity of the software. In this paper, we evaluated the...
Article
The probability of the occurrence of faults increases manifolds when program lines of code exceed a few thousand in ubiquitous applications. Fault mitigation in ubiquitous applications, such as those of autonomous vehicular technologies (VTs), has not been effective even with the use of formal methods. Faults in such applications require exhaustive...
Article
Full-text available
In general, requirements expressed in natural language are the first step in the software development process and are documented in the form of use cases. These requirements can be specified formally using some precise mathematical notation (e.g. Linear Temporal Logic (LTL), Computational Tree Logic (CTL) etc.) or using some modeling formalism (e.g...
Article
Full-text available
Software fault prediction (SFP) is a research area that helps development and testing process deliver software of good quality. Software metrics are of various types and are used in SFP for measurements. Inheritance is a prominent feature, which measures the depth, breadth, and complexity of object-oriented software. A few studies exclusively addre...
Article
Model‐based test case generation techniques provide a mechanism to derive tests systematically. This study provides a systematic mapping of test case generation techniques based on UML interaction diagrams. The study compares the test case generation techniques regarding their capabilities and limitations, and it also assesses the reporting quality...
Chapter
Mutation-based testing is costly but we can bring it down with combination of evolutionary testing approaches. Search-based mutation testing combines mutation and evolutionary testing to exploit the advantages offered by both of these techniques. The evolutionary techniques like genetic algorithm supports automating the test case generation during...
Article
Full-text available
Software faults can cause trivial annoyance to catastrophic failures. Recent work in software fault prediction (SFP) advocates the need for predicting faults before deployment to aid testing process. Object Oriented programming is complex while comparing it with procedural languages having multiple dimensions wherein inheritance is an important asp...
Article
Full-text available
Assessing the quality of the software is both important and difficult. For this purpose, software fault prediction (SFP) models have been extensively used. However, selecting the right model and declaring the best out of multiple models are dependent on the performance measures. We analyze 14 frequently used, non-graphic classifier’s performance me...
Article
Multi-Agent Systems (MAS) are used for a wide range of applications. Goals and plans are the key premise to achieve MAS targets. Correct and proper execution and coverage of plans and achievement of goals ensures confidence in MAS. Proper identification of all possible faults in MAS working plays its role towards gaining such confidence. In this pa...
Article
Multi-agent systems (MAS) are used for a wide range of applications. Goals and plans are the key premise to achieve MAS targets. Correct and proper execution and coverage of plans and achievement of goals ensures confidence in MAS. Proper identification of all possible faults in MAS working plays its role towards gaining such confidence. In this p...
Article
Full-text available
Mutation testing is a fault-based testing technique that helps generating effective test cases. Mutation testing is computationally expensive, because it requires executing hundreds and even thousands of mutants. In this situation, search-based approaches like genetic algorithm can help to automate test case generation to reduce the cost. In this p...
Conference Paper
Regression testing is an important activity performed to ensure that changes in the baseline version of the system do not influence the already tested part of the system. It becomes difficult to run the entire test suite due to constrained or limited resources. A subset of test cases that is as efficient as the original test suite is searched as op...
Conference Paper
Systems are frequently regression tested for frequently occurring changes due to corrective, preventive, adaptive or perfective actions. Regression testing is used to prevent the undesired effect of these changes on the previously tested version. Due to these changes, new test cases become part of the test suite making it huge and inefficient for ‘...
Article
Agents are applicable to many computing areas like distributed systems because of their autonomy and mobility factors. Reliable and efficient communication between agents in a mobile agent system is a challenging task. To deliver the messages efficiently and reliably, mobile agent communication schemes generally have two phases. The first phase is...
Article
Full-text available
Background: Breast cancer is the most common female malignancy worldwide and its incidence is on the rise in Pakistan. The aim of this case-control study was to quantify the association of various risk factors with breast cancer risk among Pakistani women. Materials and methods: A total of 2,246 women were studied, including 1,238 women with his...
Conference Paper
Full-text available
Software Testing is an important activity used for quality assurance, reliability estimation, validation and verification of software products under development. There is a need for effective testing techniques for larger, complex and safety critical software applications in different fields of life such as defense, medical, automobiles and control...
Article
Full-text available
UML diagrams present the graphical representation of the system. Model-driven testing not only helps in early identification of faults but also results in reducing the testing effort at the later stages of SDLC. This paper intends to identify and make a critical review of different techniques for test case generation using UML activity diagrams (UA...
Conference Paper
Chances of occurrence of fault increases when program goes beyond few thousand lines, even with the use of formal methods for fault prevention. These faults need very exhaustive testing to be removed, which is infeasible. This implies the indispensability of software fault tolerance (SFT) before facing the consequences of faults. Since 1972, severa...
Conference Paper
Full-text available
The use case artifact is the de facto standard to represent functional requirements of a software and can be used to verify and analyze the requirements throughout the development process. Consistent and unambiguous requirements are documented using formal representation techniques. Non-technical stakeholders usually lack skills required to underst...
Article
Full-text available
Autonomous agents performon behalf of the user to achieve defined goals or objectives. They are situated in dynamic environment and are able to operate autonomously to achieve their goals. In a multiagent system, agents cooperate with each other to achieve a common goal. Testing ofmultiagent systems is a challenging task due to the autonomous and p...
Article
Testing object-oriented program is quite challenging task due to the nature of its features like inheritance and polymorphism. In practice test case generation is the most laborious and resource consuming process in software testing hence generating test data for object-oriented programs is even more challenging and effort demanding. Object-oriente...
Article
Autonomous agents perform on behalf of the user to achieve defined goals or objectives. They are situated in dynamic environment and are able to operate autonomously to achieve their goals. In a multiagent system, agents cooperate with each other to achieve a common goal. Testing of multiagent systems is a challenging task due to the autonomous and...
Article
Automated test data generation is a challenging problem for researchers in the area of software testing. Up until now, most of the work on test data generation is at unit level. Until level test data generation involves the execution of test path at unit level where interaction with other components is minimum. Test data generation for unit testing...
Conference Paper
Systems are frequently regression tested during the maintenance phase due to corrective, preventive, adaptive or perfective actions. Regression testing is used to prevent the undesirable effects of these changes on the previously tested version. Due to these changes, new test cases become part of the test suite making it huge and inefficient for 'r...
Conference Paper
There occur frequent requirement changes in software systems even after the software has been developed. Regression testing is continuously performed to identify the undesired affects of these requirement changes on already tested system. Test suites grow enormously with these changes due to addition of new test cases for enhanced functionality. Op...
Conference Paper
Full-text available
As web services are dynamic in natures, the process of maintenance and evolution is rapid for web services. In order to verify the impact of changes, retesting of web services is required. Testing of web services is difficult because only web service provider has the source code and both web service user and broker have WSDL specification of the se...
Conference Paper
Software testing is one of the most important phases of software development lifecycle. Software testing can be categorized into two major types; white box testing and black box testing. Data flow testing is a white box testing technique that uses both flow of control and flow of data through the program for testing. Evolutionary testing selects an...
Conference Paper
Test data generation is one of the most important and crucial phases in software testing. Software testing is not possible without adequate test data. Many automated and manual test data generation techniques have been proposed for software testing. Most of the work on automated software test data generation at unit level is by applying evolutionar...
Article
Test suite optimization is mandatory activity to cope with the limited resources and economical constraints. Aside from conventional optimization approaches, computational intelligence based approaches have also focused this research area and evolutionary algorithms have been successful to remarkably reduce the test suite size. These approaches cla...
Conference Paper
Autonomous agents perform on behalf of the user to achieve defined goals or objectives. Testing of autonomous agents ensures their reliability which is very important to ensure user confidence. Testing of autonomous agents is a challenging task due to their autonomous and proactive behavior. Testing to build confidence in their operations is crucia...
Conference Paper
Software testing is one of the most important phases in development of software. Software testing detects faults in software and ensures quality. Software testing can be performed at unit, integration, or system level. Integration testing tests the interactions of different components, when they are integrated together in specific application, for...
Article
Real-time systems demand functional as well as temporal correctness. Complex interactions with the environment and strict adherence to time bounds are main characteristics of these systems. The use of formal methods is a natural choice for real-time system development. Formal models are more rigorous in nature and ensure completeness. If a system i...
Conference Paper
An effective test case suite is one that has the potential to reveal real faults in the code. Mutation testing is a fault-based technique that helps measure the strength of test case set and to generate effective test cases. Faults are injected through pre-defined mutation operators and mutation score is a mean to calculate usefulness of test case...
Conference Paper
Regression Test suite optimization is an effective technique to reduce time and cost of testing. Many researchers have used computational intelligence techniques to enhance the effectiveness of test suite. These approaches optimize test suite for a single objective. Introduction of fuzzy logic with genetic algorithm and swarm optimization may be us...
Conference Paper
Mutation testing is a fault based testing technique that measures the effectiveness of test case suite and helps to generate test cases that have potential of identifying real faults in the program. Faults are injected using a pre-defined set of mutation operators. Object oriented paradigm is known for its salient features that make it different fr...
Conference Paper
An agent is a self decision making software entity which acts on behalf of the user. A mobile agent roams the internet in order to access different services. To attain large goals different agents work and communicate together in order to achieve goal efficiently. Reliable communication between multi mobile agents is still a challenge. For reliable...
Conference Paper
A model is a simplified representation of the reality. Software models are built to represent the problems in an abstract way. Unified modeling language is a popular modeling language among software engineering community. However, due to the limitations of unified modeling language it does not provide complete modeling solution for different domain...
Conference Paper
Data flow testing is a white box testing approach that uses the dataflow relations in a program for the selection of test cases. Evolutionary testing uses the evolutionary approaches for the generation and selection of test data. This paper presents a novel approach applying evolutionary algorithms for the automatic generation of test paths using d...
Conference Paper
Full-text available
Specification-based regression testing of web services is an important activity which verifies the quality of web services. A major problem in web services is that only provider has the source code and both user and broker only have the XML based specification. So from the perspective of user and broker, specification based regression testing of we...
Conference Paper
Autonomous agents perform on behalf of the user to achieve defined goals or objective. Autonomous agents are often programmed using AgentSpeak language. This language is rich enough to provide necessary support to gain proper functionality within certain environment. Testing of agents programmed in AgentSpeak language is a challenging task. In this...
Conference Paper
Full-text available
Abstract. Autonomous agents perform on behalf of the user to achieve defined goals or objective. Autonomous agents are often programmed using AgentSpeak language. This language is rich enough to provide necessary support to gain proper functionality within certain environment. Testing of agents programmed in AgentSpeak language is a challenging tas...
Article
Full-text available
Most of legacy systems use nowadays were modeled and documented using structured approach. Expansion of these systems in terms of functionality and maintainability requires shift towards object-oriented documentation and design, which has been widely accepted by the industry. In this paper, we present a survey of the existing Data Flow Diagram (DFD...
Conference Paper
UML is an industrial standard for designing and developing object-oriented software. It provides a number of notations for modeling different system views, but it still does not have any means of meticulously checking consistency among the models. These models can contain overlapping information which may lead to inconsistencies. If these inconsist...
Conference Paper
Full-text available
Quality is an important consideration in the development of today’s large complex software systems. Software architecture and quality play a vital role in the success or failure of any software system. Similarly to maintain the qualities of a software system during development and to adapt the quality attributes as the software requirements change...
Conference Paper
Formal methods have proven their worth in different fields specially software engineering. Although object-oriented design features like inheritance and polymorphism improve the quality of design, these features may introduce new types of faults. However, the current research on formal specification based testing primarily focuses on unit level tes...
Article
Aspect Oriented Programming (AOP) is a new programming paradigm for modeling cross cutting concerns into aspects that is hard to model in OOP. UML is commonly used for modeling structure and behavior of object oriented systems. In this paper, we discuss the UML extensions for modeling of AOP software. This paper provides a comprehensive survey of t...
Article
Finite state automata are widely used in specification-based testing. However, the existing specification- based testing techniques do not fully automate the generation of an FSM from a formal specification. Major challenges in automatic generation of FSM are the identification of disjoint states and transitions from the implicit pre- and postcondi...
Article
Software design is often modeled as a collection of UML diagrams. Different UML diagrams depicting overlapping behaviour of the system, refinement of models and the evolving nature of software, may lead to inconsistencies in UML diagrams. Inconsistencies in the software model specification might result in the development of incoherent and conflicti...
Article
Full-text available
UML does not provide complete solution for real-time system especially for Industrial Control Systems (ICS). To overcome the UML limitation of expressions, number of designers of real-time systems from industry provides solution according to their environment. Stereotypes, Tagged values, and Constraints is lightweight way of extending UML. In this...
Conference Paper
Exploratory testing is a kind of testing in which no documentation or scripting is used. Personality characteristics including intelligence and extroversion play a significant role in exploratory testing. The main hypothesis of this research is `personality traits influence exploratory testing'. This research hypothesis has been unfolded into six s...
Article
Full-text available
BVirusGS has been developed for begomovirus genome analysis. This software development is an attempt to build a tool that provides single platform for conducting research at DNA, RNA and protein level. The software has a flexible structure and can be adapted to other organism's genome. A scientist can use it to conduct research at DNA level and ext...
Chapter
Evolutionary testing provides a sound basis to automate the generation of test cases that meet the specified criteria. It is an iterative process in which individuals are evaluated and repaired to generate a test case set that meets the targets specified. Fitness function plays an important role in the performance and effectiveness of an evolutiona...
Article
Full-text available
In recent years, the significance of automated generation of object-oriented code from UML diagrams has increased due to its benefits, such as, cost reduction and accuracy. Consistency Checking between UML diagrams, and ensuring accuracy, maintainability, efficiency, and completeness of the generated code are the main concerns in this area. This pa...
Chapter
Formal methods are especially useful in writing requirements specification of safety-critical systems due to their unambiguous and precise syntax and semantics. They also hold a special place in software testing phase because formal specifications provide a good opportunity for automation of the testing process. Many formal specification based soft...
Conference Paper
Full-text available
UML is the de-facto industry standard to design object-oriented software. UML provides a set of diagrams to model every aspect of an object-oriented application design in sufficient detail, but lacks any mechanism to rigorously check consistency between the models. Today, most of the effort is applied on creating accurate and consistent UML models...
Conference Paper
Structured analysis and design methodology has now been replaced by object oriented analysis and design software development techniques. A major design artifact in structured approach is the data flow diagram (DFD). DFD is very important for the modernization of old legacy systems. It is also very useful in requirement elicitation. However, DFD lac...
Conference Paper
Formal methods are commonly used to model complex behavior of a system without ambiguities and specification errors. This paper presents a formal model of the multi-agent requirements using finite-state automata (FSA). We describe application of formal methods to model multi-agent systems using the example of English Auction Protocol (EAP). It is s...
Article
Full-text available
Aspect-oriented programming (AOP) is an emerging programming paradigm. AOP allows separation of concerns in a well-organized and innate way by showing each aspect of the system separately. It enhances modularity and cohesion by separating crosscutting concerns that improves understandability and maintainability of the system. (evertheless, the comp...
Article
This paper presents a novel approach for the detection of misfire in an automotive engine using a finite state machine methodology. The algorithm is simpler and can easily be implemented on a microcontroller or more efficiently; using both microcontroller and FPGA. The other novel thing is that this method does not require system knowledge in the f...
Article
Component based software engineering (CBSE) is a new archetype to construct the systems by using reusable components “as it is”. To achieve high dependability in such systems, there must be appropriate fault tolerance mechanism in them at the architectural level. This paper presents a fault tolerant component based architecture that relies on the C...
Article
Full-text available
Automated translation of UML models to executable code is a growing area of interest due to its benefits such as cost reduction and accuracy. However, major challenges in this area include checking consistency of UML models, and ensuring accuracy, maintainability, and efficiency of the generated code. This paper presents a tool called UJECTOR for a...
Conference Paper
Full-text available
Regression testing is the process of ensuring software quality by analyzing whether changed parts behave as intended, and unchanged parts are not affected by the modifications. Since it is a costly process, a lot of techniques are proposed in the research literature that suggest testers how to build regression test suite from existing test suite wi...
Conference Paper
This paper presents a methodology for identifying changes and test case selection based on the UML designs of the system. Design artifacts used for this purpose are UML class diagram and sequence diagrams, which are used to generate an extended concurrent control flow graph (ECCFG) which is further used for regression testing, i.e., change identifi...
Conference Paper
Full-text available
CORBA is an OMG standard for distributed object computing; but despite being a standard and wide scale acceptance in the industry it lacks the ability to meet high demands of quality of service (QoS) required for building a reliable fault tolerant distributed system. To tackle these issues, in 2001, OMG incorporated fault tolerance mechanisms, QoS...
Conference Paper
Full-text available
Scenarios are an important mechanism for requirements specification and can be used to generate test paths at the requirements level. UML 2.0 provides a rich set of models for specifying scenarios, however, little work has focused on using UML 2.0 models for system testing. We propose a novel testing approach that uses UML 2.0 models for automated...
Article
Correct functioning of object-oriented software depends upon the successful integration of classes. While individual classes may function correctly, several new faults can arise when these classes are integrated together. In this paper, we present a technique to enhance testing of interactions among modal classes. The technique combines UML collabo...
Conference Paper
Full-text available
Model-based regression testing is an important activity that ensures the reliability of evolving software. One of the major issues in this type of testing is the optimal selection of test-cases to test the affected portion of the software. In this paper, we present a UML based selective regression testing strategy that uses state machines and class...
Conference Paper
The use of formal methods is growing with the rapidly increasing applications of safety-critical systems in such fields as aviation, medicine, railways etc. The benefits of using formal methods are not limited to avoidance of specification errors and elimination of ambiguities only - a formal specification also provides a sound basis for generating...
Conference Paper
As design patterns are gaining widespread acceptance at industrial level, efforts have come into play to formalize them. The formalization of design patterns is done to clear ambiguities in their concept, check consistency in models by developing verification tools, and provide ease of use to the designer. In this paper, we survey the work on forma...
Conference Paper
Inheritance and polymorphism are powerful constructs of object-oriented paradigm, which are supported by almost all object-oriented programming languages. However, majority of existing formal specification languages lack concrete support for polymorphism. For this reason, we propose polymorphic extensions to object-Z, a formal specification languag...
Conference Paper
The benefits offered by the use of formal methods are not limited to avoidance of specification errors and elimination of ambiguities only - a formal specification also provides a sound basis for generating test suites. Inheritance is a powerful mechanism in object-oriented paradigm by which a subclass inherits data and functionality of a super cla...
Article
Full-text available
Software testing is an important but expensive phase of software development life cycle. During software testing and retesting, development organizations always desire to validate the software from different views. But exhaustive testing requires program execution with all possible combinations of values for program variables, which is impractical...
Conference Paper
Full-text available
In this paper, we propose a strategy to implement fault-tolerance in a multi-agent system. We have based our strategy on the concept of antecedence graphs, used in causal logging and as used by the manetho protocol for distributed systems. Each agent in the multi-agent system keeps an antecedence graph of all the collaborating agents in the system....
Conference Paper
In this paper, we propose a test case generation technique based on Object-Z specification of a class, based on formalization of the test case generation strategy. The proposed technique enables automatic generation of test cases from an Object-Z specification, under the specified strategy. We also propose to enhance the prototype tool TinMan, whic...
Conference Paper
Full-text available
The principal goal guiding the design of any encryption algorithm must be security against unauthorized attacks. However, for all practical applications, performance and the cost of implementation are also important concerns. A data encryption algorithm would not be of much use if it is secure enough but slow in performance because it is a common p...

Network

Cited By