I was recently on the Ruby Testing Podcast where I discussed a slow change in my perspective to testing and what needs testing. I was excited in the interview so I don't think I did the best job explaining myself. So I'm sharing the link to hopefully spark some discussion here: http://www.rubytestingpodcast.com/adam-hawkins.

I may be alone in my experience, but I've not heard anyone else in the Ruby community speaking about such things. I think this approach increases quality and understanding. What do you think?

008 - Adam Hawkins - Where, What and How to Test | The Ruby Testing Podcast

Me and Adam Hawkins talk about where, what and how to test. Adam brought up some interesting ideas I hadn't thought about before including not only testing your code but testing your deployment pipeline.

@ahawkins It sounds partially like proper end-to-end tests, which they talk about a lot in the Growing Object-Oriented Software Guided by Tests book, if I remember correctly. You're right, in that you don't see much of it Rails land.

The more TDD I do, the less I like the common bottom-up approach where it's like "I'll start this feature by writing some model methods and unit test them."

@tom_dalling @ahawkins I feel I remember the classic _RSpec Book_ taking a similar outside-in approach to GOOS. The newer _Effective Testing with RSpec 3_ definitely does. I highly recommend it.
@josh @tom_dalling Question is: how far is "outside". In my personal experience, pushing "outside" farther to increase surface area yielded positive results. I also think of this in another way: I keep zooming out/up a layer while I can add regression tests. That's what got me start running tests against build artifacts. I wouldn't have made that leap without containers.

@ahawkins @josh I think "outside" is relative. I read an article a while back about Imgur (I think) that said they have testing bots who sign up, sign in, and post an image against the live website. I can't find the article now, unfortunately.

Ruby doesn't really have artifacts beyond folders full of files, except maybe gems. So it's hard to notice this stuff until you start building something like a Docker image. I wish we had .war files like Java.

@tom_dalling @josh I believe that's called "synthetic testing." That's another important part of a production test portfolio.