Wednesday, August 19, 2009

Believe it or not, I was a music major in college. When I should have been practicing my art, I was in the computer lab learning HTML. I write that to say much of what I know about web development is learned through reading and experience. Today, I do very little development but a lot of management. Fortunately, I have an awesome team that is highly skilled and a pleasure to work with.

The reason for this article is to share with you something I learned recently. As much as I would love to say I know it all, I do not. Every day is another opportunity for me to explore this world and embrace a new idea, process, or perspective. This day, my eyes are set on new ways to create and insure quality in the programming.
More specifically, I would like to address testing. I know, it already sounds like a boring idea for a blog, but it is important. Trust me, as I watch my team spend countless hours creating awesome applications, I also recognize a need for quality assurance. We, as a team, need to know that our web sites are functional and user-friendly. To do this, we need to develop code and then test it. Sound good?

Well, there is one quick change I would like to make. Instead of developing code followed by tests, we should create the test first and then develop the code. Yes, it sounds backwards, huh? No worries because I thought the same thing when I first heard about it. The idea behind creating a test before we code is simple, it is to guide developers toward being done. One of the most popular questions I get from them is, "When are we considered DONE? My answer is when the application passes the test.

What goes in a test case?
That is a very good question and it really depends upon the type of test you choose. If the test case is used to check the applications functional components, then write the test to highlight the steps and the expected results. The test will pass if the results meet your expectation.

In the case of a usability test, one would develop a series of tasks that an innocent user would be asked to complete. An example would be to fill out a specific form, find a particular page, or locate the companies mailing address. The objective is to observe the user and identify any areas that could benefit from additional attention. The result is a better understanding of how users navigate the application, which leads to a more enjoyable user experience.

Conclusion
As you think about your next project, seek to understand the success criteria and put those into a test case. Give it a try and let me know how it works out for you.