Wednesday, May 8, 2013

Notes from a Meet Up | Building & Scaling A Test Driven Culture

Quality is owned and shared by everyone ...

It has been some 2 weeks since my last blog post - nature of the beast in the life of a QA Analyst - and I've since attended 3 Meet-Ups. If you've not heard of them, I highly recommend joining meet-up (meetup.com) and seek out QA Analyst / Testing groups.

This Meet-Up - establishing a test driven culture - was particularly informative. Here is a brief synopsis, lectured by the lead developer, going by the nickname "db":

Scope

The scope of a test-driven culture is to establish a mentality where there is a 2:1 ratio of test cases-to-code, such that each unit in the feature has been thoroughly tested before integration. Testing is in short, a continuous process from inception to deployment.

Ownership

In a test-driven culture, ownership is shared, and the environment encourages collaboration.

Technology

The technology employed in testing ought to be relevant to the project being tested. Artsy Developers favor open-source technologies. These technologies allow for efficient composition of test cases, continuous testing, and scalability as new features are added. In a test-driven culture, testing starts in tandem with development, not after.

Methodology

RSpec (rspec.info) is the choice method for establishing the testing library. In addition to the Input -> Response paradigm, additional dissection of test data (API) in a production environment is employed to yield real-time results (ex.: API calls are made, confirm response, verify side effect).


Scalability

Testing is run during the development of each unit / component. Continual testing is performed until each unit is bug-free. Then testing efforts are ramped up during integration. Further testing is done once entire project is fully integrated and ready for deployment. Test efforts must be scalable in response to change orders, scope creep, and any other unforseen circumstance.

Results

Signs of a test-driven culture include continuous improvement to test efforts, consistent remediation of issues found, efficient testing effort using the most current technologies, and the overall buy-in from upper-management.

Cost

The cost of failure is catastrophic once a product is live. The impact thereof include loss of revenue, loss of consumer confidence, client dissatisfaction, damage to reputation, and so on.

Conclusion

  • For a true test culture to exist, testing needs to come as second-nature.
  • While in production, user-reported issues can become fixes for the next iteration.
  • Features in development start out as test cases and evolve to features.
  • The truest measure of success for the project is that it works.
  • Test-driven cultures do not rely on QA - the safety net is removed forcing Devs to own the quality of the code they write
  • QA Analysts are encouraged to integrate with Developers and vice-versa