Selecting Software Test Data Using Data Flow Information
IEEE Transactions on Software Engineering
The category-partition method for specifying and generating fuctional tests
Communications of the ACM
Data flow analysis of concurrent systems that use the rendezvous model of synchronization
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Interprocedural Def-Use associations in C programs
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Detecting access anomalies in programs with critical sections
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Data flow analysis for verifying properties of concurrent programs
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Performing data flow testing on classes
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
The use of program profiling for software maintenance with applications to the year 2000 problem
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
All-du-path coverage for parallel programs
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Use of Sequencing Constraints for Specification-Based Testing of Concurrent Programs
IEEE Transactions on Software Engineering
Data flow analysis for checking properties of concurrent Java programs
Proceedings of the 21st international conference on Software engineering
Patterns in property specifications for finite-state verification
Proceedings of the 21st international conference on Software engineering
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Dependability of COTS Microkernel-Based Systems
IEEE Transactions on Computers - Special issue on fault-tolerant embedded systems
Efficient and precise datarace detection for multithreaded object-oriented programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Program Flow Analysis: Theory and Application
Program Flow Analysis: Theory and Application
Tracking down software bugs using automatic anomaly detection
Proceedings of the 24th International Conference on Software Engineering
A data flow fault coverage metric for validation of behavioral HDL descriptions
Proceedings of the 2000 IEEE/ACM international conference on Computer-aided design
Replay and Testing for Concurrent Programs
IEEE Software
Automated Software Engineering
Formal Verification of Overhead Accounting in an Avionics RTOS
RTSS '02 Proceedings of the 23rd IEEE Real-Time Systems Symposium
Comparing Operating Systems Using Robustness Benchmarks
SRDS '97 Proceedings of the 16th Symposium on Reliable Distributed Systems
General Test Result Checking with Log File Analysis
IEEE Transactions on Software Engineering
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel
IEEE Transactions on Software Engineering
Testing Context-Sensitive Middleware-Based Software Applications
COMPSAC '04 Proceedings of the 28th Annual International Computer Software and Applications Conference - Volume 01
Testing real-time embedded software using UPPAAL-TRON: an industrial case study
Proceedings of the 5th ACM international conference on Embedded software
Empirical Software Engineering
Runtime Analysis of Atomicity for Multithreaded Programs
IEEE Transactions on Software Engineering
Effective static race detection for Java
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Improving evolutionary real-time testing
Proceedings of the 8th annual conference on Genetic and evolutionary computation
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
AVIO: detecting atomicity violations via access interleaving invariants
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Thorough static analysis of device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
An interface test model for hardware-dependent software and embedded OS API of the embedded system
Computer Standards & Interfaces
Reachability Testing of Concurrent Programs
IEEE Transactions on Software Engineering
Automated Generation of Context-Aware Tests
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Iterative context bounding for systematic testing of multithreaded programs
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Checking system rules using system-specific, programmer-written compiler extensions
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Verification and Validation of (Real Time) COTS Products using Fault Injection Techniques
ICCBSS '07 Proceedings of the Sixth International IEEE Conference on Commercial-off-the-Shelf (COTS)-Based Software Systems
RELAY: static race detection on millions of lines of code
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Testing concurrent programs using value schedules
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Dynamic detection of atomic-set-serializability violations
Proceedings of the 30th international conference on Software engineering
Race directed random testing of concurrent programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Inter-context control-flow and data-flow test adequacy criteria for nesC applications
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Randomized active atomicity violation detection in concurrent programs
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Automatic Inference and Enforcement of Kernel Data Structure Invariants
ACSAC '08 Proceedings of the 2008 Annual Computer Security Applications Conference
A randomized dynamic program analysis technique for detecting real deadlocks
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Temporal White-Box Testing Using Evolutionary Algorithms
ICSTW '09 Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation Workshops
On Time-Aware Instrumentation of Programs
RTAS '09 Proceedings of the 2009 15th IEEE Symposium on Real-Time and Embedded Technology and Applications
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Predictable Runtime Monitoring
ECRTS '09 Proceedings of the 2009 21st Euromicro Conference on Real-Time Systems
Experiments with test case generation and runtime analysis
ASM'03 Proceedings of the abstract state machines 10th international conference on Advances in theory and practice
Online inference and enforcement of temporal properties
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
An effective method to control interrupt handler for data race detection
Proceedings of the 5th Workshop on Automation of Software Test
Context-Aware Adaptive Applications: Fault Patterns and Their Automated Identification
IEEE Transactions on Software Engineering
Testing Inter-layer and Inter-task Interactions in RTES Applications
APSEC '10 Proceedings of the 2010 Asia Pacific Software Engineering Conference
Using Property-Based Oracles when Testing Embedded System Applications
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
Runtime Verification of Linux Kernel Modules Based on Call Interception
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
AFChecker: Effective model checking for context-aware adaptive applications
Journal of Systems and Software
Hi-index | 0.00 |
A wide range of commercial consumer devices such as mobile phones and smart televisions rely on embedded systems software to provide their functionality. Testing is one of the most commonly used methods for validating this software, and improved testing approaches could increase these devices' dependability. In this article we present an approach for performing such testing. Our approach is composed of two techniques. The first technique involves the selection of test data; it utilizes test adequacy criteria that rely on dataflow analysis to distinguish points of interaction between specific layers in embedded systems and between individual software components within those layers, while also tracking interactions between tasks. The second technique involves the observation of failures: it utilizes a family of test oracles that rely on instrumentation to record various aspects of a system's execution behavior, and compare observed behavior to certain intended system properties that can be derived through program analysis. Empirical studies of our approach show that our adequacy criteria can be effective at guiding the creation of test cases that detect faults, and our oracles can help expose faults that cannot easily be found using typical output-based oracles. Moreover, the use of our criteria accentuates the fault-detection effectiveness of our oracles.