Test the last implementation of Connect4
This is the traditional approach, focusing on problem-solving code rather than tests. Some people and companies forget about the value of automated testing. and rely on users in what are called user acceptance tests.
This kind of user acceptance test consists of recreating real-world scenarios in a controlled environment, ideally identical to production. Some users perform a lot of different tasks to verify the correctness of the application. If any of these actions fail, then the code is not accepted as it is breaking some functionality or it is not working as expected.
Moreover, a great number of these companies also use unit testing as a way to perform early regression checks. These unit tests are programmed after the development process and they try to cover as much code as possible. Last of all, code coverage analysis is executed to get a trace of what is actually covered by those unit tests; the bigger the code coverage, the better the quality...