Christian Murphy
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Research Subjects
Christian Murphy has a total of 8 co-authors. Here are the top co-authors by number of shared publications:
- Gail Kaiser
Columbia University, New York, USA
4 shared publications - Baowen Xu
Nanjing University, Nanjing, China
2 shared publications - Joshua Wing Kei Ho
The University of Hong Kong
2 shared publications - Tsong Yueh Chen
Swinburne University of Technology, Melbourne, Australia
2 shared publications - Xiaoyuan Xie
A Centre for Software Analysis and Testing, Swinburne University of Technology, Hawthorn, Vic 3122 Australia
2 shared publications - Huning Dai
Columbia University, USA
1 shared publication
Latest Publications
- Top Cited Papers
- 1 April 2011
- Published by Elsevier in Journal of Systems and Software
- Vol. 84 (4) , 544-558
Testing and validating machine learning classifiers by metamorphic testing
- 1 April 2011
- Published by Elsevier in Journal of Systems and Software
- Vol. 84 (4) , 544-558
Top Cited PapersTesting and validating machine learning classifiers by metamorphic testing
- 1 February 2010
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 525-530
Configuration Fuzzing for Software Vulnerability Detection
Many software security vulnerabilities only reveal themselves under certain conditions, i.e., particular configurations of the software together with its particular run-time environment. One approach to detecting these vulnerabilities is fuzz testing, which feeds a range of randomly modified inputs to a software application while monitoring it for failures. However, typical fuzz testing makes no guarantees regarding the syntactic and semantic validity of the input, or of how much of the input space will be explored. To address these problems, in this paper we present a new testing methodology called configuration fuzzing. Configuration fuzzing is a technique whereby the configuration of the running application is randomly modified at certain execution points, in order to check for vulnerabilities that only arise in certain conditions. As the application runs in the deployment environment, this testing technique continuously fuzzes the configuration and checks "security invariants" that, if violated, indicate a vulnerability; however, the fuzzing is performed in a duplicated copy of the original process, so that it does not affect the state of the running application. In addition to discussing the approach and describing a prototype framework for implementation, we also present the results of a case study to demonstrate the approach's efficiency.
- 1 February 2010
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 525-530
Configuration Fuzzing for Software Vulnerability Detection
Many software security vulnerabilities only reveal themselves under certain conditions, i.e., particular configurations of the software together with its particular run-time environment. One approach to detecting these vulnerabilities is fuzz testing, which feeds a range of randomly modified inputs to a software application while monitoring it for failures. However, typical fuzz testing makes no guarantees regarding the syntactic and semantic validity of the input, or of how much of the input space will be explored. To address these problems, in this paper we present a new testing methodology called configuration fuzzing. Configuration fuzzing is a technique whereby the configuration of the running application is randomly modified at certain execution points, in order to check for vulnerabilities that only arise in certain conditions. As the application runs in the deployment environment, this testing technique continuously fuzzes the configuration and checks "security invariants" that, if violated, indicate a vulnerability; however, the fuzzing is performed in a duplicated copy of the original process, so that it does not affect the state of the running application. In addition to discussing the approach and describing a prototype framework for implementation, we also present the results of a case study to demonstrate the approach's efficiency.
- 1 January 2010
- p. 461-472
weHelp: A Reference Architecture for Social Recommender Systems
Recommender systems have become increasingly popular. Most of the research on recommender systems has focused on recommendation algorithms. There has been relatively little research, however, in the area of generalized system architectures for recommendation systems. In this paper, we introduce weHelp: a reference architecture for social recommender systems - systems where recommendations are derived automatically from the aggregate of logged activities conducted by the system’s users. Our architecture is designed to be application and domain agnostic. We feel that a good reference architecture will make designing a recommendation system easier; in particular, weHelp aims to provide a practical design template to help developers design their own well-modularized systems.
- 1 January 2010
- p. 461-472
weHelp: A Reference Architecture for Social Recommender Systems
Recommender systems have become increasingly popular. Most of the research on recommender systems has focused on recommendation algorithms. There has been relatively little research, however, in the area of generalized system architectures for recommendation systems. In this paper, we introduce weHelp: a reference architecture for social recommender systems - systems where recommendations are derived automatically from the aggregate of logged activities conducted by the system’s users. Our architecture is designed to be application and domain agnostic. We feel that a good reference architecture will make designing a recommendation system easier; in particular, weHelp aims to provide a practical design template to help developers design their own well-modularized systems.
- 1 August 2009
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- Vol. 2009 (15506002) , 135-144
Application of Metamorphic Testing to Supervised Classifiers
Many applications in the field of scientific computing - such as computational biology, computational linguistics, and others - depend on Machine Learning algorithms to provide important core functionality to support solutions in the particular problem domains. However, it is difficult to test such applications because often there is no "test oracle" to indicate what the correct output should be for arbitrary input. To help address the quality of such software, in this paper we present a technique for testing the implementations of supervised machine learning classification algorithms on which such scientific computing software depends. Our technique is based on an approach called "metamorphic testing", which has been shown to be effective in such cases. More importantly, we demonstrate that our technique not only serves the purpose of verification, but also can be applied in validation. In addition to presenting our technique, we describe a case study we performed on a real-world machine learning application framework, and discuss how programmers implementing machine learning algorithms can avoid the common pitfalls discovered in our study. We also discuss how our findings can be of use to other areas outside scientific computing, as well.
- 1 August 2009
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- Vol. 2009 (15506002) , 135-144
Application of Metamorphic Testing to Supervised Classifiers
Many applications in the field of scientific computing - such as computational biology, computational linguistics, and others - depend on Machine Learning algorithms to provide important core functionality to support solutions in the particular problem domains. However, it is difficult to test such applications because often there is no "test oracle" to indicate what the correct output should be for arbitrary input. To help address the quality of such software, in this paper we present a technique for testing the implementations of supervised machine learning classification algorithms on which such scientific computing software depends. Our technique is based on an approach called "metamorphic testing", which has been shown to be effective in such cases. More importantly, we demonstrate that our technique not only serves the purpose of verification, but also can be applied in validation. In addition to presenting our technique, we describe a case study we performed on a real-world machine learning application framework, and discuss how programmers implementing machine learning algorithms can avoid the common pitfalls discovered in our study. We also discuss how our findings can be of use to other areas outside scientific computing, as well.