Haven't happend to you?

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Kempelen
Posts: 620
Joined: Fri Feb 08, 2008 10:44 am
Location: Madrid - Spain

Haven't happend to you?

Post by Kempelen »

...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
Fermin Serrano
Author of 'Rodin' engine
http://sites.google.com/site/clonfsp/
User avatar
Ovyron
Posts: 4562
Joined: Tue Jul 03, 2007 4:30 am

Re: Haven't happend to you?

Post by Ovyron »

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.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Haven't happend to you?

Post by ilari »

Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
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.
User avatar
Kempelen
Posts: 620
Joined: Fri Feb 08, 2008 10:44 am
Location: Madrid - Spain

Re: Haven't happend to you?

Post by Kempelen »

ilari wrote:
Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
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.
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?
Fermin Serrano
Author of 'Rodin' engine
http://sites.google.com/site/clonfsp/
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Haven't happend to you?

Post by ilari »

Kempelen wrote:
ilari wrote:
Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
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.
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?
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.

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.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Haven't happend to you?

Post by bob »

Kempelen wrote:...... that you fix a bug in your engine and happen that it plays worse...... I'm frustrated.
That happens, although it is far more likely that you find a bug, and fix it, and the program plays no better...