kirancodes.me
To Proof Maintenance & Beyond!

White-box testing of big data analytics with complex user-defined functions

Muhammad Ali Gulzar, Shaghayegh Mardani, Madanlal Musuvathi, Miryung Kim

Abstract

Data-intensive scalable computing (DISC) systems such as Google’s MapReduce, Apache Hadoop, and Apache Spark are being leveraged to process massive quantities of data in the cloud. Modern DISC applications pose new challenges in exhaustive, automatic testing because they consist of dataflow operators, and complex user-defined functions (UDF) are prevalent unlike SQL queries. We design a new white-box testing approach, called BigTest to reason about the internal semantics of UDFs in tandem with the equivalence classes created by each dataflow and relational operator. Our evaluation shows that, despite ultra-large scale input data size, real world DISC applications are often significantly skewed and inadequate in terms of test coverage, leaving 34% of Joint Dataflow and UDF (JDU) paths untested. BigTest shows the potential to minimize data size for local testing by 10^5 to 10^8 orders of magnitude while revealing 2X more manually-injected faults than the previous approach. Our experiment shows that only few of the data records (order of tens) are actually required to achieve the same JDU coverage as the entire production data. The reduction in test data also provides CPU time saving of 194X on average, demonstrating that interactive and fast local testing is feasible for big data analytics, obviating the need to test applications on huge production data.

BibTeX
@inproceedings{Gulzar-al:FSE19,
  author    = {Muhammad Ali Gulzar and
               Shaghayegh Mardani and
               Madanlal Musuvathi and
               Miryung Kim},
  title     = {White-box testing of big data analytics with complex user-defined functions},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {290--301},
  publisher = {{ACM}},
  year      = {2019},
}

Related papers