Testing is a skill that software developers can hone over time. Think of it not as a chore to be done, but rather as a personal skill and an integral part of the software development process. Good developers know how to test locally before moving on or pushing up. I thought it would be beneficial to break down the behaviors and attitudes I believe are the mark of a mature test-as-a-skill. These apply for both automated and manual testing, although the actual manifestations vary for each. So, a wise testing-developer is one who:
The mantra is “code a little, test a little.” A skillful testing-developer will test as frequently as is reasonably possible. Testing for minutes—as opposed to hours or days—is generally ideal due to the constant stream of objective feedback received for every little change made. TDD (Test Driven Development) takes the idea of frequent testing even further by putting the act of testing itself in the driver’s seat. Additionally, running the test suite as part of each build (or even with each pull request) also helps to ensure unit tests are being run frequently (even if some team members are forgetful).
Sometimes things get too technical and complicated to just wing it. A good testing-developer has learned to test one thing at a time because trying to do too much at once can hide problems or cause you to reach incorrect conclusions (for example, making changes A and B caused C, therefore A caused C).
Understands a test’s limitations
A good testing-developer looks beyond the superficiality of the green dots of passing tests and asks “What is actually being tested? What does it prove?” A common problem is forgetting to check that the results generated were correct. A good testing-developer always wonders how they can be sure the results are correct.
Performs root-cause analysis
A good-testing developer treats each bug as a potential lesson learned and asks, “Why did this problem get by me? Could I have reasonably prevented it?” A good testing-developer also immediately looks to understand the scope of an issue; is it a bug confined to a single instance on a page or is it a global issue?
Sees things from the user’s perspective
One of the hardest challenges is seeing things from another person’s perspective. Developers have a natural tendency to see things from their own perspective, which can be quite different from a user’s perspective (especially when the user is a kind of specialist, such as a data analyst for health insurance company). When you make the switch to seeing things from a user’s perspective, often what didn’t previously look like a problem now seems like an obvious and glaring issue.
Knows when to keep on testing
Sometimes developers think that to have tested the code means they’ve merely done something to test the code. In reality, having tested the code is more about having done everything reasonable to test the code. Being able to judge the line of reasonability is a key part of the skill.
Lastly, finding good software developers with a solid grounding in test-as-a-skill can be very difficult. If your organization needs help with any aspect of software development, please don’t hesitate to reach out to us. We’d love to help you get started.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
|cookielawinfo-checbox-analytics||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".|
|cookielawinfo-checbox-functional||11 months||The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".|
|cookielawinfo-checbox-others||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.|
|cookielawinfo-checkbox-necessary||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".|
|cookielawinfo-checkbox-performance||11 months||This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".|
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.