\relax \citation{miller-fuzz-cacm,andrews-etal-rute-rt,pacheco-etal-icse2007,groce-etal-icse2007} \citation{michael-etal-ga-tcg,visser-etal-issta06,andrews-etal-rute-rt} \@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{2}} \citation{doong-frankl-tosem94,antoy-hamlet-tse-jan2000,claessen-hughes-quickcheck,pacheco-etal-icse2007,sen-etal-cute,visser-etal-issta06,andrews-etal-rute-rt} \citation{andrews-etal-rute-rt} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {I-A}}Randomized Unit Testing}{3}} \citation{andrews07} \citation{andrews-menzies-promise09} \citation{hetzel-book-1973} \citation{Hamlet94randomtesting} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {I-B}}Contributions and Paper Organization}{4}} \citation{weyuker-oracles} \citation{miller-fuzz-cacm} \citation{jcrasher-spe} \citation{pacheco-etal-icse2007} \citation{andrews-etal-rute-rt,ciupa-etal-icse2008} \citation{ernst-daikon} \citation{michael-etal-ga-tcg} \citation{visser-etal-issta06} \citation{ball-pred-coverage} \citation{doong-frankl-tosem94} \citation{antoy-hamlet-tse-jan2000} \citation{andrews-zhang-tse2003} \@writefile{toc}{\contentsline {section}{\numberline {II}Related Work}{5}} \newlabel{related-work-section}{{II}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {II-A}}Randomized Unit Testing}{5}} \citation{pacheco-etal-icse2007} \citation{clarke-76-testdata,king-symbolic-1976} \citation{korel-testgen} \citation{gupta-etal-gen-test-data} \citation{leow-etal-icse2004} \citation{visser-etal-issta04} \citation{godefroid-etal-dart,sen-etal-cute} \citation{owen-menzies-lurch} \citation{visser-etal-issta06} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {II-B}}Analysis-Based Test Data Generation Approaches}{6}} \citation{korel-testgen} \citation{holland-ga-book} \citation{goldberg-ga-book} \citation{rela04} \citation{pargas-etal-ga-tcg} \citation{michael-etal-ga-tcg} \citation{guo-etal-genetic} \citation{tonella-issta04} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {II-C}}Genetic Algorithms for Testing}{7}} \citation{andrews07} \citation{michael-etal-ga-tcg} \citation{visser-etal-issta06} \citation{pacheco-etal-icse2007} \citation{andrews07} \citation{groce-etal-icse2007} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {II-D}}Nighthawk}{8}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {II-E}}Analytic Comparison of Approaches}{8}} \citation{michael-etal-ga-tcg} \citation{watkins-hufnagel-fitness} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Spiky search space resulting from poor fitness function.}}{9}} \newlabel{spiky-search-space-fig}{{1}{9}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Smooth search space resulting from recasting problem.}}{9}} \newlabel{smooth-search-space-fig}{{2}{9}} \citation{frankl-weiss-tse93} \citation{andrews-siami-issta09} \citation{rothermel-etal-effects-minimization} \citation{cok-adapting-jml} \citation{havelund-pathfinder} \citation{andrews07} \@writefile{toc}{\contentsline {section}{\numberline {III}Nighthawk: System Description}{11}} \newlabel{system-description-section}{{III}{11}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces { Value pool initialization and use. Stage 1: random values are seeded into the value pools for primitive types such as {\tt int}, according to bounds in the pools. Stage 2: values are seeded into non-primitive type classes that have initializer constructors, by calling those constructors. Stage 3: the rest of the test case is constructed and run, by repeatedly randomly choosing a method and receiver and parameter values. Each method call may result in a return value, which is placed back into a value pool (not shown). }}}{11}} \newlabel{valuepools-fig}{{3}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-A}}Randomized Testing Level}{11}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Algorithm {\sf constructRunTestCase}.}}{12}} \newlabel{constructRunTestCase-fig}{{4}{12}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Algorithm {\sf tryRunMethod}.}}{13}} \newlabel{tryRunMethod-fig}{{5}{13}} \citation{michael-etal-ga-tcg} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Nighthawk gene types.}}{14}} \newlabel{gene-types-fig}{{6}{14}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-B}}Chromosomes}{14}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-C}}Genetic Algorithm Level}{15}} \citation{dejong-spears-genetic} \citation{cobertura-website} \citation{andrews07} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-D}}Top-Level Application}{16}} \newlabel{run-chromosome-sec}{{\unhbox \voidb@x \hbox {III-D}}{16}} \citation{jml-overview} \citation{pacheco-etal-icse2007} \citation{andrews07} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-E}}Test Wrappers}{17}} \newlabel{test-wrappers-section}{{\unhbox \voidb@x \hbox {III-E}}{17}} \@writefile{toc}{\contentsline {section}{\numberline {IV}Analysis and Optimization of the GA}{17}} \newlabel{optimizing-section}{{IV}{17}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {IV-A}}Motivation}{18}} \newlabel{eq:cost}{{1}{18}} \citation{hall03} \citation{miller02} \citation{Kir92,Kon94} \citation{Kir92} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {IV-B}}Selecting an FSS Method}{19}} \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Binary RELIEF (two group system) for $N$ instances for merit of different features. }}{19}} \newlabel{fig:relief2}{{7}{19}} \citation{hall03} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {IV-C}}Analysis Activities}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-C}1}Merit Analysis}{20}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-C}2}Gene Type Ranking}{21}} \@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Nighthawk gene types sorted by $avgMerit$, the average RELIEF merit over all genes of that type and all subject units. }}{22}} \newlabel{fig:genes-merit-fig}{{8}{22}} \@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Ranks of all gene types, when ranked by four measures computed from data on the first set of subject units. }}{22}} \newlabel{fig:all-gene-type-rankings-fig}{{9}{22}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-C}3}Progressive Gene Type Knockout}{22}} \citation{andrews07} \citation{andrews-menzies-promise09} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {IV-D}}Analysis Procedure}{23}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-D}1}Stage 1: Initial Analysis}{23}} \newlabel{sec:rerank}{{\unhbox \voidb@x \hbox {IV-D}2}{23}} \@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Gene type elimination using $avgMerit$. }}{23}} \newlabel{fig:hashtable}{{10}{23}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-D}2}Stage 2: Re-Ranking}{23}} \@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Coverage found using the top $i$ ranked gene types for $1 \le i \le 10$, using the $avgMerit$ ranking. Coverages are expressed as a ratio of the coverages found using all gene types. }}{24}} \newlabel{fig:coverage}{{11}{24}} \@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Time vs coverage result, compared between one and ten gene types, for the {\tt java.util} classes.}}{25}} \newlabel{fig:timereport100}{{12}{25}} \newlabel{sec:opt}{{\unhbox \voidb@x \hbox {IV-D}3}{25}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-D}3}Stage 3: Optimizing {\tt numberOfCalls}}{25}} \@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Finding the optimal initial number of calls.}}{26}} \newlabel{fig:optimalInitialNumCalls}{{13}{26}} \newlabel{sec:apache}{{\unhbox \voidb@x \hbox {IV-D}4}{26}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-D}4}Stage 4: Analyzing the Optimized Version}{26}} \@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Ranks of all gene types according to average merit and average gene rank, after running Nighthawk 1.1 on the {\tt java.util} classes and the Apache Commons Collections classes. }}{27}} \newlabel{fig:all-gene-type-rankings-v1-1fig}{{14}{27}} \@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces Time vs coverage result, compared between one and ten gene types, for the Apache classes. }}{28}} \newlabel{fig:apache}{{15}{28}} \@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {IV-E}}Discussion}{28}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-E}1}Implications for Nighthawk}{28}} \newlabel{two-expendable-genes}{{\unhbox \voidb@x \hbox {IV-E}1}{29}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {IV-E}2}Implications for Other Systems}{29}} \@writefile{toc}{\contentsline {section}{\numberline {V}Properties of the Optimized System}{29}} \newlabel{sec:chars}{{V}{29}} \citation{andrews07} \citation{andrews07} \@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces Results of running configurations of Nighthawk on the 16 {\tt java.util} Collection and Map classes. SLOC: number of source lines of code contained in the {\tt .java} file of the unit, including inner classes. Nt: time (sec) taken by Nighthawk to find the winning chromosome. RCt: time (sec) taken by RunChromosome to generate and run 10 test cases based on the winning chromosome. Coverage: source lines of code covered by the 10 test cases run by RunChromosome, as measured by Cobertura (the number in parentheses is the ratio of lines covered). }}{30}} \newlabel{collection-map-cov}{{16}{30}} \@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces Results of running Nighthawk 1.1 using 8 gene types on the 34 Apache Commons Collections classes studied. Column headings are as in Figure 16\hbox {}. }}{31}} \newlabel{apache-cov}{{17}{31}} \citation{cornett-minimum-coverage} \citation{berner-etal-icse07} \@writefile{toc}{\contentsline {section}{\numberline {VI}Threats to Validity}{32}} \newlabel{threats-section}{{VI}{32}} \@writefile{toc}{\contentsline {section}{\numberline {VII}Conclusions and Future Work}{33}} \newlabel{conclusions-section}{{VII}{33}} \bibstyle{IEEEtran.bst} \bibdata{my} \bibcite{miller-fuzz-cacm}{1} \bibcite{andrews-etal-rute-rt}{2} \bibcite{pacheco-etal-icse2007}{3} \bibcite{groce-etal-icse2007}{4} \bibcite{michael-etal-ga-tcg}{5} \bibcite{visser-etal-issta06}{6} \bibcite{doong-frankl-tosem94}{7} \bibcite{antoy-hamlet-tse-jan2000}{8} \bibcite{claessen-hughes-quickcheck}{9} \bibcite{sen-etal-cute}{10} \bibcite{andrews07}{11} \bibcite{andrews-menzies-promise09}{12} \bibcite{hetzel-book-1973}{13} \bibcite{Hamlet94randomtesting}{14} \bibcite{weyuker-oracles}{15} \bibcite{jcrasher-spe}{16} \bibcite{ciupa-etal-icse2008}{17} \bibcite{ernst-daikon}{18} \bibcite{ball-pred-coverage}{19} \@writefile{toc}{\contentsline {section}{References}{34}} \bibcite{andrews-zhang-tse2003}{20} \bibcite{clarke-76-testdata}{21} \bibcite{king-symbolic-1976}{22} \bibcite{korel-testgen}{23} \bibcite{gupta-etal-gen-test-data}{24} \bibcite{leow-etal-icse2004}{25} \bibcite{visser-etal-issta04}{26} \bibcite{godefroid-etal-dart}{27} \bibcite{owen-menzies-lurch}{28} \bibcite{holland-ga-book}{29} \bibcite{goldberg-ga-book}{30} \bibcite{rela04}{31} \bibcite{pargas-etal-ga-tcg}{32} \bibcite{guo-etal-genetic}{33} \bibcite{tonella-issta04}{34} \bibcite{watkins-hufnagel-fitness}{35} \bibcite{frankl-weiss-tse93}{36} \bibcite{andrews-siami-issta09}{37} \bibcite{rothermel-etal-effects-minimization}{38} \bibcite{cok-adapting-jml}{39} \bibcite{havelund-pathfinder}{40} \bibcite{dejong-spears-genetic}{41} \bibcite{cobertura-website}{42} \bibcite{jml-overview}{43} \bibcite{hall03}{44} \bibcite{miller02}{45} \bibcite{Kir92}{46} \bibcite{Kon94}{47} \bibcite{cornett-minimum-coverage}{48} \bibcite{berner-etal-icse07}{49} \citation{andrews07} \citation{andrews-menzies-promise09}