Akiira / Comp-524-program

A genetic algorithm to create test suites that cover every branch of a program
2 stars 0 forks source link

New Test Graphs #11

Closed Akiira closed 9 years ago

Akiira commented 9 years ago

I added a new CFG for the triangle problem. Its a good test because it has a good number of difficult predicates to cover. The graph I used was from here: http://www.ercim.eu/publication/Ercim_News/enw58/diaz1.gif

So far the simulation gets to about 90% in 20 seconds while random search takes 5 or 6 times longer just for the edges.

This is a good moderately difficult tests but I think I will add one more with about 30 edges and predicates to get a real challenging graph.

Akiira commented 9 years ago

it actually does get 100% coverage. Some of the predicates were unreachable.

Akiira commented 9 years ago

If there are no complaints I will merge this and the local opt stuff into master later today. Also, I updated the project website, so push that to the live website whenever you get a chance.

ambarket commented 9 years ago

It looks good to me. good work on this. Sorry I haven't done much for this project this weekend. I've been sick and spent way too much time struggling to clean and sample my data set for data mining. I have a 460 exam tomorrow so I have to study for that but I was hoping to write some of the progress report tonight too.

Akiira commented 9 years ago

I'll start writing the progress report right now. It should be a lot easier then the proposal, so for now don't worry about it, and study for 460. If you already wrote anything for it, just paste it here or on a google doc and ill move it into the LaTeX file.

Akiira commented 9 years ago

I was having trouble finding any programs that were the right difficulty level and without loops so I think i may just create my own semi-random control flow graph. I think its really important to get some harder tests for our algorithms.

Akiira commented 9 years ago

Well that new graph is finally done. Took forever. I just want to sit down and come up with inputs to make sure all predicates are actually reachable. Once you take a look at that branch and approve, either let me know so I can merge it into master or merge it yourself.

Also, it appears to be a pretty good test. I did not run it long but even with local opt it didnt get past 20% coverage.

ambarket commented 9 years ago

I merged it. Yea I'm afraid this test might be a little too good lol, using my constructFinalOrganism it turns out that only 9 test cases out of all 258 of them actually contribute unique coverage, Most of which have very small values meaning they probably originate from the local opts.