@@ -6523,6 +6523,42 @@ <h2>Caching learning checklist</h2>
65236523 accurate when served up to the user.</ p >
65246524</ li >
65256525</ ol >
6526+ < h1 > Testing</ h1 >
6527+ < p > Testing determines whether software runs correctly based on specific inputs
6528+ and identifies defects that need to be fixed.</ p >
6529+ < h2 > Why is testing important?</ h2 >
6530+ < p > As software scales in codebase size, it's impossible for a person or even
6531+ a large team to keep up with all of the changes and
6532+ the interactions between the changes. Automated testing is the only proven
6533+ method for building reliable software once they grow past the point of a
6534+ simple prototype. Many major software program development failures can be
6535+ traced back to inadequate or a complete lack of testing.</ p >
6536+ < p > It's impossible to know whether software works properly unless it is tested.
6537+ While testing can be done manually, by a user clicking buttons or typing in
6538+ input, it should be performed automatically by writing software programs that
6539+ test the application under test.</ p >
6540+ < p > There are many forms of testing and they should all be used together. When
6541+ a single function of a program is isolated for testing, that is called
6542+ < em > unit testing</ em > . Testing more than a single function in an application at
6543+ the same time is known as < em > functional testing</ em > . < em > User interface testing</ em >
6544+ ensures the correctness of how a user would interact with the software.</ p >
6545+ < h2 > Testing in Python</ h2 >
6546+ < p > Python software development culture is heavy on software testing. Because
6547+ Python is a dynamically-typed language as opposed to a statically-typed
6548+ language, testing takes on even greater importance for ensuring program
6549+ correctness.</ p >
6550+ < h2 > Testing resources</ h2 >
6551+ < ul >
6552+ < li >
6553+ < p > Google has a < a href ="http://googletesting.blogspot.com/ "> testing blog</ a > where
6554+ they write about various aspects of testing software at scale.</ p >
6555+ </ li >
6556+ < li >
6557+ < p > < a href ="http://michaeldehaan.net/post/120522567217/the-case-for-test-driven-development "> The case for test-driven development</ a >
6558+ by Michael DeHaan explains how automation is the only way to build software
6559+ at a large scale.</ p >
6560+ </ li >
6561+ </ ul >
65266562 < h1 > Code Metrics</ h1 >
65276563< p > Code metrics can be produced by static code analysis tools to determine
65286564complexity and non-standard practices.</ p >
0 commit comments