xia xiao-poster

1
Differential Testing and Java Performance Evaluation on BDD Student: Xia Xiao | Professor: Christian Kästner | Carnegie Mellon University Binary Decision Diagram (BDD) Binary decision diagram (BDD) or branching program is a data structure to represent a Boolean Function. It’s a more compressed and abstract representation of sets or relations when compared with other data structures: e.g.. Negation normal form(NNF) and Propositional directed acyclic graph (PDAG). Questions & Ideas Procedure Construct a series of BDD objects from both libraries, and assign them with the same features(with the same variable, low and high nodes). Run the written program to automatically generate random combination of the existing BDD with random operations on them. Assign the constructed new BDDs to group a and group b. Make hypothesis and assume the BDDs with the same data structure are built. Use Junit Test and helper Method isSameBDD to check the features of two groups of BDDs. The helper method isSameBDD would call the toString method in each library to check their equality. Prove the hypothesis that the the constructed BDDs work in the same way. Differential Testing Project Overview Get familiar with the concepts, theory, and background knowledge. Understand the implementation and functionality in two different BDD libraries . Step 1 Implement Differential Testing and write program for automatically generating random test cases for both BDD libraries Step 2 Measure the running time of both libraries. Implement the Java Program for multiple times and collect data during the Java Performance. Step 3 Compare the running time from step 3; use Minitab Express to produce t-test and histogram for two BDD library performance; Make conclusion. Step 4 Histogram Comparison BDD for the function f There exists a difference in the running speed between two BDD libraries during the Java Performance Evaluation. As the numbers of BDD constructed increase (size of 1,10, 20, 30, 40, 50), the histogram shows that the difference in running time is also increasing. The boxplots illustrate that the distribution of the running speed of two libraries. We notice that when size = 1, the running speed is overlapped. However, as the size of BDD constructed increase, the boxplots do not overlap anymore. The gap between the two boxplots get larger as the size gets larger. Overall, the JavaBDD library perform a faster running speed than our BDD library. From data in the t-test statistics, 6 histogram and 6 boxplots generated by Minitab Express, the results support our hypothesis. Results / Conclusion Works Cited “Binary Decision Diagram.” Wikipedia. Wikimedia Foundation, n.d. Web. 24 July 2016. William M. McKeeman, “Differential Testing for Software,” Digital Technical Journal 10, no. 1 (1998). Georges, Andy, Dries Buytaert, and Lieven Eeckhout. “Statistically Rigorous Java Performance Evaluation.” ACM SIGPLAN Notices 42, no. 10 (October 21, 2007): 57. doi:10.1145/1297105.1297033. This is a graph illustration of Boolean function f represented in the data structure of Binary Decision Diagram. It’s rooted, directed, and consists of several decision nodes (x1,x2,x3)and two terminal nodes (0,1). Each decision node is pointed to a low child and a high child. A dotted line represents an assignment of 0 and the solid line represents an assignment of 1 instead. Binary decision tree and truth table for the function f(x1,x2,x3) = ¬(x1x2x3)+ x1x2 + x2x3 Question Ideas of approaches How to implement Differential Testing on two different BDD libraries? What’s the difference between Differential Testing and other prevalent testing methods? What are the methods/theories would be helpful during Java Evaluation on BDD? Which BDD library would have a shorter running time during the evaluation? Is there a significant difference between their each running time? What non-determinism factor may effect the BDD Java Performance Evaluation? Since we are trying to compare two BDD libraries, it’s important to consider the difference in the implementation and functionality. Statistically rigorous methodology should be included in our Java Performance Evaluation in order to avoid misleading or even incorrect result. Confidence intervals can provide theoretical support for the Java Performance Evaluation. Various system effects may have influence on the BDD performance, while they do not have large impact on the Java Performance Evaluation. Differential Testing – A form of random testing, is an important testing technology for large software system. Particularly, based on its unique feature of indirectness and comparison, differential testing can bring about swift, efficient testing results and save miscellaneous expense in time and space. Box Plot Illustration The left figure shows a binary decision tree and a truth table. In the tree on the left, the value of the function can be determined for a given variable assignment by following a path down the graph to a terminal. In the figures above, dotted lines represent edges to a low child, while solid lines represent edges to a high child. Therefore, to find (x1=0, x2=1, x3=1), begin at x1, traverse down the dotted line to x2 (since x1 has an assignment to 0), then down two solid lines (since x2 and x3 each have an assignment to one). This leads to the terminal 1, which is the value of f (x1=0, x2=1, x3=1). The binary decision tree of the left figure can be transformed into a binary decision diagram by maximally reducing it according to the two reduction rules. The resulting BDD is shown in the right figure.

Upload: jocelyn-xia-xiao

Post on 13-Apr-2017

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Xia Xiao-Poster

Printing:Differential Testing and Java Performance Evaluation on BDD

Student: Xia Xiao | Professor: Christian Kästner | Carnegie Mellon University

Binary Decision Diagram (BDD)Binary decision diagram (BDD) or branching program is a data structure torepresent a Boolean Function. It’s a more compressed and abstractrepresentation of sets or relations when compared with other data structures: e.g..Negation normal form(NNF) and Propositional directed acyclic graph (PDAG).

Questions & Ideas

Procedure• Construct a series of BDD objects from

both libraries, and assign them with thesame features(with the same variable, lowand high nodes).

• Run the written program to automaticallygenerate random combination of theexisting BDD with random operations onthem. Assign the constructed new BDDs togroup a and group b.

• Make hypothesis and assume the BDDswith the same data structure are built.

• Use Junit Test and helper MethodisSameBDD to check the features of twogroups of BDDs.

• The helper method isSameBDD would callthe toString method in each library tocheck their equality.

• Prove the hypothesis that the theconstructed BDDs work in the same way.

Differential Testing

Project Overview

Get familiar with theconcepts, theory,and background

knowledge.Understand theimplementation

and functionality intwo different BDD

libraries.

Step 1

ImplementDifferential Testingand write programfor automatically

generatingrandom test cases

for both BDDlibraries

Step 2

Measure therunning time of bothlibraries. Implementthe Java Programfor multiple timesand collect dataduring the JavaPerformance.

Step 3

Compare therunning time fromstep 3; use MinitabExpress to producet-test and histogramfor two BDD library

performance; Makeconclusion.

Step 4

Histogram Comparison

BDD for the function f

• There exists a difference in the running speed between two BDD libraries during the JavaPerformance Evaluation.

• As the numbers of BDD constructed increase (size of 1,10, 20, 30, 40, 50), the histogram showsthat the difference in running time is also increasing.

• The boxplots illustrate that the distribution of the running speed of two libraries. We noticethat when size = 1, the running speed is overlapped.

• However, as the size of BDD constructed increase, the boxplots do not overlap anymore.• The gap between the two boxplots get larger as the size gets larger.• Overall, the JavaBDD library perform a faster running speed than our BDD library.• From data in the t-test statistics, 6 histogram and 6 boxplots generated by Minitab Express,

the results support our hypothesis.

Results / Conclusion

Works Cited• “Binary Decision Diagram.” Wikipedia. Wikimedia Foundation, n.d. Web. 24 July 2016.• William M. McKeeman, “Differential Testing for Software,” Digital Technical Journal 10,

no. 1 (1998).

• Georges, Andy, Dries Buytaert, and Lieven Eeckhout. “Statistically Rigorous Java Performance Evaluation.” ACM SIGPLAN Notices 42, no. 10 (October 21, 2007): 57. doi:10.1145/1297105.1297033.

• This is a graph illustration ofBoolean function frepresented in the datastructure of Binary DecisionDiagram. It’s rooted,directed, and consists ofseveral decision nodes(x1,x2,x3)and two terminalnodes (0,1).

• Each decision node ispointed to a low child and ahigh child. A dotted linerepresents an assignment of0 and the solid linerepresents an assignment of1 instead.

Binary decision tree and truth table for the function f(x1,x2,x3) = ¬(x1x2x3)+ x1x2 + x2x3

Question Ideas of approaches• How to implement Differential Testing on

two different BDD libraries?

• What’s the difference betweenDifferential Testing and other prevalenttesting methods?

• What are the methods/theories would be helpful during Java Evaluation on BDD?

• Which BDD library would have a shorterrunning time during the evaluation? Isthere a significant difference betweentheir each running time?

• What non-determinism factor may effect the BDD Java Performance Evaluation?

• Since we are trying to compare two BDDlibraries, it’s important to consider thedifference in the implementation andfunctionality.

• Statistically rigorous methodology shouldbe included in our Java PerformanceEvaluation in order to avoid misleading oreven incorrect result.

• Confidence intervals can providetheoretical support for the JavaPerformance Evaluation.

• Various system effects may have influenceon the BDD performance, while they donot have large impact on the JavaPerformance Evaluation.

Differential Testing – A form of random testing, is an important testing technology for large software system. Particularly, based on its unique feature of indirectness and comparison,differential testing can bring about swift, efficient testing results and save miscellaneousexpense in time and space.

Box Plot Illustration

• The left figure shows a binary decision tree anda truth table. In the tree on the left, the value of the function can be determined for a given variable assignment by following a path down the graph to a terminal. In the figures above, dotted lines represent edges to a low child, while solid lines represent edges to a high child. Therefore, to find (x1=0, x2=1, x3=1), begin at x1, traverse down the dotted line to x2 (since x1 has an assignment to 0), then down two solid lines (since x2 and x3 each have an assignment to one). This leads to the terminal 1, which is the value of f (x1=0, x2=1, x3=1).

• The binary decision tree of the left figure can be transformed into a binary decision diagram by maximally reducing it according to the two reduction rules. The resulting BDD is shown in the right figure.