Change Impact Analysis for Large-scale Enterprise Systems

Wen Chen, Asif Iqbal, Akbar Abdrakhmanov, Jay Parlar, Chris George, Mark Lawford, Tom Maibaum, Alan Wassyng

Abstract

This paper is concerned with analysing the potential impact of changes to enterprise systems, and in particular on how regression testing following such changes can be minimised. The target scope of the approach we describe in this paper is systems containing hundreds of thousands of classes and millions of methods. It is extremely difficult and costly to apply regular regression testing techniques to such systems. Retesting everything after a change is very expensive, and in practice often unnecessary. Selective retesting is dangerous if the impacts of change are not understood, and analysing such systems to understand what is being changed and what the impacts are is difficult. This paper proposes a way to perform a change impact analysis which makes it possible to do efficient, targeted regression testing of enterprise systems. Our approach has been tried on a large system comprising 4.6 million methods with 10 million dependences between them. Using our approach, maintainers can focus on a smaller, relevant subset of their test suites instead of doing testing blindly. We include a case study that illustrates the savings that can be attained.

References

  1. Apiwattanapong, T. (2005). Efficient and precise dynamic impact analysis using execute-after sequences. In Proceedings of the 27th international conference on Software engineering.
  2. Apiwattanapong, T., Orso, A., and Harrold, M. (2004). A Differencing Algorithm for Object-Oriented Programs. In Automated Software Engineering, 2004. Proceedings. 19th International Conference on, pages 2-13.
  3. Ayewah, N., Hovemeyer, D., Morgenthaler, J., Penix, J., and Pugh, W. (2008). Using static analysis to find bugs. Software, IEEE, 25(5):22 -29.
  4. Bacon, D. and Sweeney, P. (1996). Fast static analysis of C++ virtual function calls. In Proceedings of the Conference on Object-Oriented Programming Systems, Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, volume 31 of ACM SIGPLAN Notices, pages 324- 341. ACM Press, New York.
  5. Bohner, S. A. (1996). Software Change Impact Analysis. In Proceedings of the 27th Annual NASA Goddard/IEEE Software Engineering Workshop (SEW-277802).
  6. Breech, B., Danalis, A., Shindo, S., and Pollock, L. (2004). Online impact analysis via dynamic compilation technology. In 20th IEEE International Conference on Software Maintenance.
  7. Canfora, G. and Cerulo, L. (2005). Impact Analysis by Mining Software and Change Request Repositories. Software Metrics, IEEE International Symposium on, 0:29.
  8. Chen, W., Iqbal, A., Abdrakhmanov, A., George, C., Lawford, M., Maibaum, T., and Wassyng, A. (2011). Report 7: Middleware Change Impact Analysis for Large-scale Enterprise Systems. Technical Report 7, McMaster Centre for Software Certification (McSCert).
  9. Christensen, A. S., Møller, A., and Schwartzbach, M. I. (2003). Precise analysis of string expressions. In Proc. 10th International Static Analysis Symposium (SAS), volume 2694 of LNCS, pages 1-18. Springer-Verlag. Available from http://www.brics.dk/JSA/.
  10. Doar, M. B. (2007). JDiff - An HTML Report of API Differences. Electronically available at http:// javadiff.sourceforge.net/.
  11. Ferrante, J., Ottenstein, K. J., and Warren, J. D. (1987). The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst., 9:319-349.
  12. gartner12 (2011). IT Key Metrics Data 2012. Gartner, Inc.
  13. Khare, S., Saraswat, S., and Kumar, S. (2011). Static program analysis of large embedded code base: an experience. In Proceedings of the 4th India Software Engineering Conference, ISEC 7811, pages 99-102, New York, NY, USA. ACM.
  14. Lam, P., Bodden, E., Lhotak, O., Lhotak, J., Qian, F., and Hendren, L. (2010). Soot: a Java Optimization Framework. Sable Research Group, McGill University, Montreal, Canada. Electronically available at http://www.sable.mcgill.ca/soot/.
  15. Law, J. and Rothermel, G. (2003). Incremental dynamic impact analysis for evolving software systems. In Proceedings of the 14th International Symposium on Software Reliability Engineering.
  16. Li, H. (2012). Dynamic analysis of object-oriented software complexity. In Consumer Electronics, Communications and Networks (CECNet), 2012 2nd International Conference on, pages 1791 -1794.
  17. Maia, M. C. O., Bittencourt, R. A., de Figueiredo, J. C. A., and Guerrero, D. D. S. (2010). The hybrid technique for object-oriented software change impact analysis. Software Maintenance and Reengineering, European Conference on, 0:252-255.
  18. Mockus, A. and Weiss, D. M. (2000). Predicting risk of software changes. Bell Labs Technical Journal, 5(2):169-180.
  19. Orso, A., Apiwattanapong, T., and Harrold, M. J. (2003). Leveraging field data for impact analysis and regression testing. In Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering, volume 28 Issue 5.
  20. Orso, A., Shi, N., and Harrold, M. J. (2004). Scaling regression testing to large software systems. SIGSOFT Softw. Eng. Notes, 29:241-251.
  21. Ottenstein, K. J. and Ottenstein, L. M. (1984). The program dependence graph in a software development environment. SIGPLAN Not., 19:177-184.
  22. Patel, C., Hamou-Lhadj, A., and Rilling, J. (2009). Software clustering using dynamic analysis and static dependencies. In Software Maintenance and Reengineering, 2009. CSMR 7809. 13th European Conference on, pages 27 -36.
  23. Pfleeger, S. and Atlee, J. (2006). Software Engineering: Theory and Practice. Prentice Hall, Englewood Cliffs, NJ.
  24. Ren, X., Shah, F., Tip, F., Ryder, B. G., and Chesley, O. (2004). Chianti: a tool for change impact analysis of java programs. SIGPLAN Not., 39:432-448.
  25. Rothermel, G. and Harrold, M. (1996). Analyzing regression test selection techniques. Software Engineering, IEEE Transactions on, 22(8):529 -551.
  26. Tarjan, R. (1972). Depth-First Search and Linear Graph Algorithms. SIAM Journal on Computing, 1(2):146- 160.
  27. Tessier, J. (2010). The Dependency Finder User Manual. Electronically available at http://depfind. sourceforge.net/Manual.html.
Download


Paper Citation


in Harvard Style

Chen W., Iqbal A., Abdrakhmanov A., Parlar J., George C., Lawford M., Maibaum T. and Wassyng A. (2012). Change Impact Analysis for Large-scale Enterprise Systems . In Proceedings of the 14th International Conference on Enterprise Information Systems - Volume 2: NTMIST, (ICEIS 2012) ISBN 978-989-8565-11-2, pages 359-368. DOI: 10.5220/0004148703590368


in Bibtex Style

@conference{ntmist12,
author={Wen Chen and Asif Iqbal and Akbar Abdrakhmanov and Jay Parlar and Chris George and Mark Lawford and Tom Maibaum and Alan Wassyng},
title={Change Impact Analysis for Large-scale Enterprise Systems},
booktitle={Proceedings of the 14th International Conference on Enterprise Information Systems - Volume 2: NTMIST, (ICEIS 2012)},
year={2012},
pages={359-368},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0004148703590368},
isbn={978-989-8565-11-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 14th International Conference on Enterprise Information Systems - Volume 2: NTMIST, (ICEIS 2012)
TI - Change Impact Analysis for Large-scale Enterprise Systems
SN - 978-989-8565-11-2
AU - Chen W.
AU - Iqbal A.
AU - Abdrakhmanov A.
AU - Parlar J.
AU - George C.
AU - Lawford M.
AU - Maibaum T.
AU - Wassyng A.
PY - 2012
SP - 359
EP - 368
DO - 10.5220/0004148703590368