Editor’s note: Our Code will be featuring more guests posts and interviews with web designers, developers, and engineers with experience in order to provide more insight on what it’s like to work in tech. These posts will be career-centered and discuss topics on an expert level. I’ll make sure to mark them for you all in the “News and Views” category. Enjoy!
Testing is a significant aspect of development. Yet it is often underrated and undervalued. Many developers are of the mindset that testing is only to be done by Quality Assurance professionals. Some even feel it isn’t “their job” to test. Others do it, but only begrudgingly.
Testing code, however, within the greater context of quality assurance, begins with the developer. The old “throw it over the wall” mentality has gone by the wayside in favor of iterative development that aspires to create higher quality systems. This requires a shift in thinking and doing.
Because testing comes in many shapes and forms, it is often a dynamic and expensive activity. But developers, in essence, test code all the time – whether through handling exceptions, fixing compilation errors, or debugging.
Testing that occurs at this level helps assure that the code base is robust and error-free. Integrative testing ensures the system functions as it should and behaves as expected when acted upon in predictable and unpredictable ways.
To what degree, then, should developers test? The most common form of testing is unit testing, writing code against a module with different inputs to test that different scenarios are handled. However, in addition to this, a simple smoke test of one’s developed feature, so-called “golden flow” testing, that runs through the normal end user path can behoove the developer in both assuring quality and expanding his or her comprehension of the system in totality. This kind of testing usually suffices but it depends on the complexity of the feature. In a TDD (Test Driven Development) environment, some Developers work hand-in-hand with QA professionals to feed the system a set of scenarios and then handle for such scenarios in-code, working in reverse from a “quality first” model.
At the very least, if your organization has no unit testing in place it is imperative to make sure your feature passes a basic smoke test before handing it over to QA. This helps increase efficiency by removing an iteration cycle. It also helps Developers think like testers, ultimately making their code more robust and potentially bug free.