some people argue that testing is more important in python code because of its dynamic naturecompiled languages such as java and +are occasionally thought to be somehow "saferbecause they enforce type checking at compile time howeverpython tests rarely check types they're checking values they're making sure that the right attributes have been set at the right time or that the sequence has the right lengthorderand values these higher-level things need to be tested in any language the real reason python programmers test more than programmers of other languages is that it is so easy to test in pythonbut why testdo we really need to testwhat if we didn' testto answer those questionswrite tic-tac-toe game from scratch without any testing at all don' run it until it is completely writtenstart to finish tic-tac-toe is fairly simple to implement if you make both players human players (no artificial intelligenceyou don' even have to try to calculate who the winner is now run your program and fix all the errors how many were therei recorded eight on my tic-tac-toe implementationand ' not sure caught them all did youwe need to test our code to make sure it works running the programas we just didand fixing the errors is one crude form of testing python programmers are able to write few lines of code and run the program to make sure those lines are doing what they expect but changing few lines of code can affect parts of the program that the developer hadn' realized will be influenced by the changesand therefore won' test it furthermoreas program growsthe various paths that the interpreter can take through that code also growand it quickly becomes impossible to manually test all of them to handle thiswe write automated tests these are programs that automatically run certain inputs through other programs or parts of programs we can run these test programs in seconds and cover more possible input situations than one programmer would think to test every time they change something there are four main reasons to write teststo ensure that code is working the way the developer thinks it should to ensure that code continues working when we make changes to ensure that the developer understood the requirements to ensure that the code we are writing has maintainable interface