Haven't happend to you?
Moderator: Ras
-
- Posts: 620
- Joined: Fri Feb 08, 2008 10:44 am
- Location: Madrid - Spain
Haven't happend to you?
...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
-
- Posts: 4562
- Joined: Tue Jul 03, 2007 4:30 am
Re: Haven't happend to you?
I don't have an engine but yes, I've been aware of bugs that improved strength for some reason. I recall Thinker had a bug that improved its playing style.
-
- Posts: 750
- Joined: Mon Mar 27, 2006 7:45 pm
- Location: Finland
Re: Haven't happend to you?
Sometimes fixing one bug can create new bugs elsewhere, which is why regression testing is so important. I've never had a bug which increased playing strength, but I've done bugfixes that decreased it.Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
-
- Posts: 620
- Joined: Fri Feb 08, 2008 10:44 am
- Location: Madrid - Spain
Re: Haven't happend to you?
I am really curious about how you make regresion testing. RT means you make test about all functionalities you implemented in the past. How do you do that? do you make a big epd with the testing positions you used to test each functionality when you want to test the last change?ilari wrote:Sometimes fixing one bug can create new bugs elsewhere, which is why regression testing is so important. I've never had a bug which increased playing strength, but I've done bugfixes that decreased it.Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
-
- Posts: 750
- Joined: Mon Mar 27, 2006 7:45 pm
- Location: Finland
Re: Haven't happend to you?
I have a lot of little unit tests which can automatically and quickly detect when something is seriously broken. With these tests I can verify that the core routines like move generation, makemove, undomove, transposition table, move and FEN notation, opening book, etc. work correctly. This step only takes about 10 seconds.Kempelen wrote:I am really curious about how you make regresion testing. RT means you make test about all functionalities you implemented in the past. How do you do that? do you make a big epd with the testing positions you used to test each functionality when you want to test the last change?ilari wrote:Sometimes fixing one bug can create new bugs elsewhere, which is why regression testing is so important. I've never had a bug which increased playing strength, but I've done bugfixes that decreased it.Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
If the module tests pass, I run test suites like WAC and WCSAC, and compare the results, speed, branching factor and hash table hit rate to the previous version.
Sometimes I also run a couple of tests under Valgrind to check for memory leaks, and if performance drops unexpectedly I create a cpu time profile with gprof to find the bottlenecks.
Finally, if the test suite results look good I run about 1000 quick test games against a few opponents.
-
- Posts: 20943
- Joined: Mon Feb 27, 2006 7:30 pm
- Location: Birmingham, AL
Re: Haven't happend to you?
That happens, although it is far more likely that you find a bug, and fix it, and the program plays no better...Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.