Académique Documents
Professionnel Documents
Culture Documents
Abstract—Dynamic fault localization is a representative con- obstacles. First, to drive such a technique, oracle and dynamic
cept and product proposed by academia to alleviate software program spectra are two necessary conditions, which are not
engineering pains, but it is rarely heard adopted or used in directly available in most realistic cases. Second, to support lo-
realistic development. Realizing the difficulties in transferring
the approaches of dynamic fault localization to practical tools, cating complex bugs like Mandelbugs [9], workload designing,
this paper gives our work FLAVS, whose add-in implementation environmental factor monitoring and system long-term running
organically and seamlessly integrates the approach of dynamic are necessary, which are not implemented in almost all existent
fault localization with software IDEs. The tool is useful for fault localization tools. Third, after locating a fault and fixing
developers using Microsoft Visual Studio platform to debug and it, there is a need to rerun all the test cases to ensure the quality
test programs with complex bugs. Besides, it is also valuable for
researchers to design new fault localization methods and draw of fixing. Such a step is mostly finished by error-prone human
performance comparison among different method candidates. work. Fourth, the fault localization techniques are developing
Index Terms—fault localization, Microsoft Visual Studio add- rapidly for decades of years. Any attempt to stick to an ideal
in, fault localization tools algorithm cannot be pervasively effective.
Design workload
II. RELATED WORK
Changed since
Y
last time?
Previous CBFL studies propose different models to assess Step 2
localization problem [6], [10]. For example, Naish et al. [10] All found
listed many CBFL techniques and compared them using the faults fixed.
2
intervals among test cases can be designed by users. Visual Studio
Test Explorer Instrument tool
Step 2 Code Instrumentation
To collect dynamic spectrum information from Test cases/Binaries Test results
program execution, instrumentation is needed.
FLAVS provides an automatic instrumentation Test Adapter Instrumented
Binaries
mechanism. It is triggered before the compiling of binaries
Test cases/Binaries Test results
the program.
Test Runner
Step 3 Environmental Factor Gathering
Test results/Coverage
To handle complex bugs like Mandelbugs, FLAVS information
monitors the environmental factors of the running
project. The factors include memory consuming, Fault localizer
FIFA
CPU usage, thread numbers and so on. Code rank list
3
Fig. 4. Code rank window of FLAVS
IV. EXAMPLES
In this section, two examples will be used to illustrate the
usage of FLAVS. One is a widely used open-source program,
Math.NET Numerics, and the other is a program with an
injected dead-lock bug.
4
Fig. 8. Code rank of a program with deadlock bug
one by one and observed that the 10th statement is faulty. The
programmer clicked on the statement in the FLAVS window
and jumped to the source code page. The dead-lock bug is
found.
If the developer attempts to design new fault localization
technique, he can open the interface as shown in Fig. 9 and
design the formula according to the instructions. As discussed
before, the formula was composed using six predefined vari-
Fig. 7. Environmental factor monitoring interface ables [10].
V. CONCLUSION AND FUTURE WORK
The developer first design several workloads for the program Debugging is always a time-consuming and tedious task,
under test (as shown in Fig. 6), and display all workloads in while no automatic fault localization work is widely adopted
the test explore. After running tests, the developer can select in practice. Based on comments and feedbacks in promoting
and then view each tests environmental factors monitored by dynamic fault localization in our experiences, we propose
FLAVS (as shown in Fig. 7. The developer notices that after FLAVS, which is to transfer the approaches of dynamic fault
about 8 seconds running, the processor time dropped to zero localization to practical tools. FLAVS seamlessly integrates
and did not increase again. It indicates a failure. the dynamic fault localization with a popular IDE - Microsoft
After marking the failure in FLAVS, the fault localization Visual Studio. It in background conducts instrumentation,
is activated. The FLAVS window showed the executed state- gathers coverage information, collects environmental factors
ments as well as their calculated suspiciousness degrees (as and calculates suspicious degrees for basic blocks. The de-
shown in Fig. 8). The programmer checked the statements signed test cases are fed to a test explorer without any
5
interruption to user activities. The tool is useful for developers [6] X. Xie, T. Y. Chen, F.-C. Kuo, and B. Xu, “A theoretical analysis
working with Microsoft Visual Studio, and is also helpful for of the risk evaluation formulas for spectrum-based fault localization,”
ACM Trans. Softw. Eng. Methodol., vol. 22, no. 4, pp. 31:1–31:40, Oct.
software testing researchers in debugging complex bugs like 2013. [Online]. Available: http://doi.acm.org/10.1145/2522920.2522924
Mandelbugs. [7] Z. Zhang, W. K. Chan, T. H. Tse, B. Jiang, and X. Wang,
Our future work mainly includes two aspects. First, our tool “Capturing propagation of infected program states,” in Proceedings
of the the 7th Joint Meeting of the European Software
currently only supports statement-, branch-, and function-level Engineering Conference and the ACM SIGSOFT Symposium on
program units for suspiciousness assessing and ranking. In The Foundations of Software Engineering, ser. ESEC/FSE ’09.
future work, we will extend the instrumentation framework New York, NY, USA: ACM, 2009, pp. 43–52. [Online]. Available:
http://doi.acm.org/10.1145/1595696.1595705
of our tool so that the users can use path profile and data-flow [8] G. K. Baah, A. Podgurski, and M. J. Harrold, “Mitigating
profile to perform fault localization. Second, currently, only C# the confounding effects of program dependences for effective fault
projects are supported. We will extend our tool for the user localization,” in Proceedings of the 19th ACM SIGSOFT Symposium and
the 13th European Conference on Foundations of Software Engineering,
using other program languages, such as C++, Basic and etc. ser. ESEC/FSE ’11. New York, NY, USA: ACM, 2011, pp. 146–156.
Third, we will extend the tool for other popular developing [Online]. Available: http://doi.acm.org/10.1145/2025113.2025136
environment, such as Borland C++, JBuilder, and Delphi. [9] M. Grottke and K. Trivedi, “Fighting bugs: remove, retry, replicate, and
rejuvenate,” Computer, vol. 40, no. 2, pp. 107–109, Feb 2007.
ACKNOWLEDGMENT [10] L. Naish, H. J. Lee, and K. Ramamohanarao, “A model for
spectra-based software diagnosis,” ACM Trans. Softw. Eng. Methodol.,
The work is supported by Beijing Higher Education Young vol. 20, no. 3, pp. 11:1–11:32, Aug. 2011. [Online]. Available:
Elite Teacher Project (No. YETP1072). http://doi.acm.org/10.1145/2000791.2000795
[11] O. Chesley, X. Ren, B. Ryder, and F. Tip, “Crisp–a fault localization
tool for java programs,” in Software Engineering, 2007. ICSE 2007. 29th
R EFERENCES International Conference on, May 2007, pp. 775–779.
[1] S. Park, R. Vuduc, and M. Harrold, “Falcon: fault localization in [12] T. Janssen, R. Abreu, and A. van Gemund, “Zoltar: A toolset for
concurrent programs,” in Software Engineering, 2010 ACM/IEEE 32nd automatic fault localization,” in Automated Software Engineering, 2009.
International Conference on, vol. 1, May 2010, pp. 245–254. ASE ’09. 24th IEEE/ACM International Conference on, Nov 2009, pp.
[2] J. A. Jones and M. J. Harrold, “Empirical evaluation of the 662–664.
tarantula automatic fault-localization technique,” in Proceedings of [13] X. Zhang, N. Gupta, and R. Gupta, “Locating faults through automated
the 20th IEEE/ACM International Conference on Automated Software predicate switching,” in Proceedings of the 28th International
Engineering, ser. ASE ’05. New York, NY, USA: ACM, 2005, pp. 273– Conference on Software Engineering, ser. ICSE ’06. New
282. [Online]. Available: http://doi.acm.org/10.1145/1101908.1101949 York, NY, USA: ACM, 2006, pp. 272–281. [Online]. Available:
[3] M. Jose and R. Majumdar, “Bug-assist: Assisting fault localization http://doi.acm.org/10.1145/1134285.1134324
in ansi-c programs,” in Proceedings of the 23rd International [14] R. Abreu, J. Cunha, J. Fernandes, P. Martins, A. Perez, and J. Saraiva,
Conference on Computer Aided Verification, ser. CAV’11. Berlin, “Faultysheet detective: When smells meet fault localization,” in Soft-
Heidelberg: Springer-Verlag, 2011, pp. 504–509. [Online]. Available: ware Maintenance and Evolution (ICSME), 2014 IEEE International
http://dl.acm.org/citation.cfm?id=2032305.2032345 Conference on, Sept 2014, pp. 625–628.
[4] C. Liu, L. Fei, X. Yan, J. Han, and S. Midkiff, “Statistical debugging: [15] D. Hao, L. Zhang, L. Zhang, J. Sun, and H. Mei, “Vida: Visual
A hypothesis testing-based approach,” Software Engineering, IEEE interactive debugging,” in Software Engineering, 2009. ICSE 2009. IEEE
Transactions on, vol. 32, no. 10, pp. 831–848, Oct 2006. 31st International Conference on, May 2009, pp. 583–586.
[5] W. Wong, Y. Qi, L. Zhao, and K.-Y. Cai, “Effective fault localization [16] Math.net numerics. [Online]. Available: http://numerics.mathdotnet.com
using code coverage,” in Computer Software and Applications Confer-
ence, 2007. COMPSAC 2007. 31st Annual International, vol. 1, July
2007, pp. 449–456.