Posts

Showing posts with the label continuous integration

Continuous Testing — Some Semantics

Image
If you’re doing any form of  Continuous Testing  (or heck, even just automating your tests), you’ve probably already run into the  Semantics Gap , where what  you  mean by XXX isn’t what  others  mean by it. This can be quite the killer, in ways both subtle and gross. I recall a post-mortem in the past that boiled down to the QA and Release teams having different assumptions about what “ The Smoke-tests passed ” meant. The resulting chaos — both between the teams, and for the customer — was  epic , and something that still makes me shudder reflexively when I look back at it  . And that, my friends, is just about when I put together the following terminology. Mind you, far be it for me to tell you to adopt this terminology. Heck, you may very well vehemently disagree with it — and that’s ok. The thing is, whatever terminology you use needs to be agreed upon by everybody! (And, you’ve probably got all the same stuff below, just broken ...

Continuous Testing and Development Hygiene

Image
Continuous Development (and Continuous Testing ) is increasingly common out there. The process of pushing a commit, and having it kick off a run on Travis / CircleCI / Jenkins is so frightfully mundane that one does it without actually thinking about it much these days. That said, here is (highly unscientific!) study of errors that I've found in CD environments 1. Compilation Errors . Yes. Seriously. And the ridiculous thing is that pretty much every damn IDE these days supports some form of "compile on save" option, no?  2. Missing Code . There's literally a gaping hole where an entire module should be. This could be because the developer forgot to implement it, or that the developer pushed the wrong branch, but still, come on… 3. Wrong Tests. The developer cut/paste tests from a different module as a starting point, and then happily forgot to actually implement them correctly. 4. Missing Data . The test harness depends on data that isn't checked ...