Akiira / Comp-524-program

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

Decide on Mutation and Crossover Operations #4

Closed Akiira closed 9 years ago

Akiira commented 9 years ago

We need to decide if we want operations at both test suite and test case level, and if so then what operators are we going to use.

Akiira commented 9 years ago

From our discussion with Dr. Bui, we got the idea to use TestCase operations near the end of the simulation to turn it into a more fine tune search. This makes a lot of since with what we know about the whole exploration and then exploitation approach. But we still have several open questions to discuss regarding this.

  1. The exact details of how TestCase crossover should work. (We have a version of this implemented already and that may be good enough)
  2. The exact details of how TestCase mutation should work.
  3. When to switch from exploration to exploitation i.e., when to switch from TestSuite operations to TestCase operations.
ambarket commented 9 years ago

Since we'll be keeping track of the population level coverage. Maybe we can switch to exploitation once we reach some threshold ratio of the total coverage. E.g. once we cover 90 or 95% of everything switch to exploitation. and start doing test case level tweaks.

Maybe also turn up the likelihood of local opt running during this stage.

ambarket commented 9 years ago

I think our current approach of always doing test case crossover and mutation, and only after several generations of no improvement crossing over test suites gives our algorithm a simplistic form of niching and cross breeding which makes sense for what were trying to do.

The rest of the questions here have been answered in our various discussions with Dr. Bui and Dr. El Ariss since this last post as well as our discussions with each other.