Insight on Developer Testing

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.

****

Rice Om. is a technical and content marketing writer based in Los Angeles. She can be reached on Twitter at @OmaryMedia.

Learning Patterns Matter: It’s Not the Material, It’s You.

I truly believe that anyone, regardless of education background, can not only learn to code, but excel in writing efficient programs.  Over the course of the year I’ve been blogging about code, I’ve developed insight on my own learning patterns.  Being honest with myself, I now choose learning modules, tutorials, and classes that fit these patterns.  By doing so, I found that I can achieve more in a shorten amount of time. Instead of quitting and blaming the difficulty of the material, I’m taking my time, learning how to code using resources that work best for me, not the ones that are promoted online the most. Here’s what I’ve documented about my learning patterns:

1. I love MOOCs, but only enroll in the courses that keep lecture videos to a minimum. I have audio processing disorder, a learning disability that affects my listening comprehension. The shorter the videos the better.

2. I cannot multitask when I learn. When I do so, I forget everything I’ve learned within a day or two.  I have to be 100% attentive to the information I’m processing.

2. Paying for a resource has no affect on me in terms of how committed I am to it. I’ve thrown a lot of money away on resources just because they were described as “the best”, only to not use them. There’s a saying that people don’t respect free. I don’t think that applies to me though.

3. I love coding with others, but value in person meetups over online communities. For example, I know everyone loves Slack, but I find it to be distracting. I rather gather with some friends at the library and work alongside one another on a common project.

4. I’m more likely to complete my homework when it’s project based.

5. I don’t do well in long-term courses. Once I get the gist of how a program works, I lose interest quickly. Courses that are 3-5 weeks in length tends to work well for me.

7. Combining learning resources is the best strategy for me in terms of learning a new programming language (Ex: Doing an online module + reading a book for beginners).

Since I’ve laid out my learning patterns and adjusted my education, I’ve been completing more projects, (some of which I will be creating tutorials for in this blog). I’m always interested in how readers are adjusting to learning new material, so if you have any best practices to share, please do! How has your coding journey fared so far? What are some of your go-to learning resources?  Which ones do you favor over others? Feel free to comment below.