attempt to collect more real case examples of
programs so as to have a richer close-to-reality set of
results. Second, a better analysis of the time, results
and performance of the students’ assignments will
be made, as well as assessment of the performance
of the algorithm with respect to different types of
faults, their number per slice and their average
complexity. Third, we plan to investigate the
potentials of integrating a supporting module to the
existing tool that will enable a more “sophisticated”
way for selecting the appropriate test case scenarios
automatically based on pre- and post- conditions that
express the functional specifications of a program.
Fourth, we will address the problem of regression
faults by attempting to provide simultaneous repairs
to more than one fault. To this end we will modify
our Genetic Algorithm so as to support multi-
objective optimization through multithreading and
parallel processing. Fifth, the tool will be upgraded
to include the statements of Java that our current
implementation of the parser does not support so as
to cover an even larger number of errors. Finally,
our future research plans also involve increasing the
set of mutation operators supported, with the
inclusion of more complicated replacement
operators.
REFERENCES
Agrawal, H., Horgan, J.R., 1990. Dynamic program
slicing. In ACM SIGPLAN Conference on
programming Language Design and Implementation,
White Plains, New York, U.S.A., ACM Press, pp.
246-256.
Agrawal, H., Horgan, J. R., London, S., Wong, W. E.,
1995. Fault Localization Using Execution Slices and
Dataflow Tests. In Sixth International Symposium on
Software Reliability Engineering, Volume-Issue: 24-
27, pp. 143 – 151.
Arcuri, A., Yao, X., 2008. A novel co-evolutionary
approach to automatic software bug fixing. In IEEE
Congress on Evolutionary Computation IEEE World
Congress on Computational Intelligence, pp. 162-168
Binkley, D., Danicic, S., Gyimothy, T., Harman, M., Kiss,
A., Korel, B., 2006. Theoretical foundations of
dynamic program slicing. Theoretical Computer
Science, pp.23-41.
Black, S., Counsell, S., Hall, T., Wernick, P., 2005. Using
Program Slicing to identify Faults in Software.
Dagstuhl, Seminar Nº 05451.
DeMillo, R. A., Lipton, R. J., Sayward, F. G., 1978. Hints
on Test Data Selection: Help for the Practicing
Programmer. IEEE Computer 11(4), pp. 34-41.
Fraser, G., Zeller, A., 2011. Generating Parameterized
Unit Tests. In International Symposium on Software
Testing and Analysis (ISSTA’11), July 17-21, Toronto,
Canada.
Goldberg, D. E., 1989. Genetic Algorithms in Search,
Optimization and Machine Learning. Addison-
Wesley.
Gupta, N., He, H., Zhang, X., Gupta, R., 2005. Locating
Faulty Code Using Failure-Inducing Chops. In
IEEE/ACM International Conference On Automated
Software Engineering, Long Beach, CA.
Hamlet, R. G., 1977. Testing Programs with the Aid of a
Compiler. IEEE Transactions on Software
Engineering, 3(4), pp. 279-290.
Harman, M., Jia, Y., Langdon, W. B., 2011. Strong Higher
Order Mutation-Base Test Data Generation. In
ESEC/FSE’11, September 5-9, Szeged, Hungary.
Jiang, T., Gold, N., Harman, M., Li, Z., 2008. Locating
Dependence Structures Using Search Based Slicing.
Journal of Information and Software Technology,
Volume 50, No.12, pp. 1189-1209.
King, K. N., Offutt, J., 1991. A Fortran Language System
for Mutation-Based Software Testing. Software
Practice and Experience, 21(7), pp. 686-718.
Ma, Y.S., Offutt, J., 2005. Description of Method-level
Mutation Operators for Java. http://cs.gmu.edu
/~offutt/ mujava/mutopsMethod.pdf.
Myers, G. J., 1979. The Art of Software Testing. Wiley-
Interscience.
Nica, M., Nica, S., Wotawa, F., 2012. On the use of
mutations and testing for debugging. Software-
Practice and Experience, Article published online.
Offutt, A. J., 1989. The Coupling Effect: Fact or Fiction.
In ACM SIGSOFT '89 - Third symposium on Software
testing, analysis, and verification ACM New York,
NY, USA ACM.
Offutt, A. J., Untch, R. H., 2001. Mutation 2000: Uniting
the Orthogonal. In 1st Workshop on Mutation Analysis
(MUTATION'00), San Jose, California, pp.34-44.
Offutt, J., Ma, Y. S., Kwon, Y. R., 2005. MuJava : An
Automated Class Mutation System. Software Testing,
Verification and Reliability, vol. 15, pp. 97-133.
Patton, R., 2006. Software Testing, Sams Publishing, 2
nd
edition.
Wang, T., Roychoudhury, A., 2004. Using compressed
bytecode traces for slicing Java programs. In
ACM/IEEE International Conference on Software
Engineering (ICSE), pp. 512-521.
Weimer, W., Forrest, S., Le Goues, C., Nguyen, T., 2010.
Automatic program repair with evolutionary
computation. Communications of the ACM Research
Highlight 53:5 pp. 109-116.
Zhang, X., He, H., Gupta, N., Gupta, R., 2005.
Experimental Evaluation of Using Dynamic Slices for
Fault Location. In Sixth International Symposium on
Automated and Analysis-Driven Debugging,
Monterey, California.
ICEIS2012-14thInternationalConferenceonEnterpriseInformationSystems
26