Agile Testing with Lisa Crispin
Providing Practical Agile Testing Guidance

Our team is working on an epic to provide some new features in both our product’s UI and our API. Today, I tested a delivered user story for the API. When I add things to our product via the API, I like to check them out in the UI. The basics of the story worked, but I was a bit confused by what I saw in the UI, so I walked over and asked a pair of programmers who were working on that epic.  “I expected to see X, but instead I see Y”.

One of the developers who’s done a lot of work on the epic explained the subtleties to me. He suggested a different scenario to try, and told me what he thought should happen. Bingo! When I tried his scenario, I found a couple of big ugly errors. We’d missed a corner of behavior, and it’s a big corner that will need to be fixed.

The behavior I had seen in the UI, that prompted me to go ask a question, turned out to be normal. But asking the question led me to find a big hole.

Don’t be afraid to ask questions. Even if what you’re seeing now is correct, your questions may lead you to uncover parts of the implementation that were missed or done incorrectly. Ideally, we’d think to ask these questions before coding is even done. But as happens all too often, I didn’t have the bandwidth to get involved in the planning of this feature so that I could ask the question earlier. Better late than never. Follow your curiosity, and be alert to your Spidey sense!

 

Spring is finally here in Colorado. We had a decent snowstorm on Tuesday, with temperatures well below 20 degrees F, but today it is sunny and shirtsleeve weather. I’m eating my lunch at my desk, but I’m going to go out and enjoy a walk along the Platte River in a few minutes.

I’ve had little time to write lately. I traveled a lot the first quarter of 2013, with a Hawaiian vacation, Belgium Testing Days, and a trip to England for TestBash 2.0 and some advanced agile testing workshops in Cambridge.

Dreyfus Model

Dreyfus Model of Skill Acquisition applied to evolving the Whole Team

This month I was lucky enough to be able to stay home for a great conference, Mile High Agile 2013. Here is a picture of the presentation that Matt Barcomb and I did on applying the Dreyfus Model to evolving the Whole Team – Matt wrote and drew the “slides” on the wall as we explained it! (And here are actual slides which are more readable if you weren’t there)

At the same time, we’re doing lots of home improvement projects, and when the weather’s nice enough, working the donkeys or going on walks with them.

And there’s my new job. In August, I joined Pivotal Labs to work on the Pivotal Tracker team. I’m on a “dream team” of testers including Marlena Compton and Jo Webb, we do support and testing along with the rest of our awesome development team. Elisabeth Hendrickson also recently joined Pivotal, though she works in a different area, doing magic with the cloud. Someone recently commented to me that we have a “Justice League” of testers here at Pivotal, and it is such a thrill to be part of that!

Though I was excited to get to work on the Tracker team, my first couple months were quite difficult for me. That’s just due to me and my ego, not my wonderful and helpful teammates. In the past, when I joined a new team, I always felt I brought something to the party. I had experience with agile and testing that the team lacked, so even without knowing the domain, I could contribute value right away. But the Tracker team already had agile and testing pretty much nailed. I hadn’t worked on a Rails project before, I hadn’t worked with Tracker before, I had so much to learn! And learning is fun, but I missed that end-of-day satisfaction of having contributed my share. I also worried that I’d never get up to speed, that I would fail.
Fortunately, lots of pairing helped me learn enough to start feeling like a worthwhile member of such a great team. My ping pong skills also helped. As with any job, there are still difficult days, but I look forward to coming to work every day.

All this learning, plus lots of personal life changes (e.g., moving to a horse property, losing my dad), took up all my time and mental bandwidth, and my writing output slowed to a trickle. However, I’m starting to slowly turn that around.

Having worked on a lot of distributed teams, that’s always a favorite topic of mine, and I recently wrote articles related to that for both SearchSoftwareQuality and Methods and Tools. In addition, Janet Gregory and I started working on our new book, with the working title More Agile Testing. I still haven’t found my writing groove. My longer commute means a lot of time away from home, and taking care of donkeys at home, though one of my favorite activities, does eat up the clock! But I’m livin’ the dream, and with enough practice, discipline and help from family and friends, I’ll find time to keep sharing my agile testing experiences and those of my team.

Happy spring!

 

While searching around for 2012 tax records, I found a file with printouts of the “Easter Egg” my team put into our website back in 1999. This Easter Egg was on the error screen. If you typed a particular search value, you’d get a page that looked like our standard error page, with the text:

“An error has occurred  — when asked about the problem, our developers would probably respond with:”

This was followed by an answer selected randomly from the following possibilities. These were from a list of things developers actually said to me, the tester, that were written on a whiteboard throughout the development of this product. (I wish I had a picture of the whiteboard! This was before everyone had a phone that’s also a camera!)

  • “I could just do it so it works”
  • “Have you been able to get anything to compile?”
  • “If you don’t think that it’s your fault, blame the tools”
  • “Hmm…. That’s bad”
  • “It’s working for me”
  • “We found out why the query page isn’t working…. there’s something weird going on”
  • “Who needs error checking?!”
  • “Just add more memory”
  • “I owe Steve $1,000,000 — Aaron”
  • “Never show your code your fear”
  • “Sweeeeeeeeeet!”
  • “Oh, it doesn’t compile? Just comment that part out.”
  • “In order to fix the bug, you must become the bug”

Ah, that brings back such fun memories. It was a great team. When I first joined them in ’98, the five developers (including one who was 16 years old – ah, the Internet boom years) they’d never worked with a tester. It was nice to develop a happy, collaborative relationship where we could kid each other and make lists of funny developer responses. I’d call them over to my workstation to see an error I got, and they’d say stuff like, “You have too many windows open!” I knew I’d proven my worth when one of them approached me shyly one day and said, “We’re going to come in this weekend to work on this project. Would you mind coming in to help us, so we know about the problems right away?”

What are your favorite Easter Eggs? What memories do they bring back for you?

I’ll be in Cambridge to do a workshop on advanced topics on March 19. Before the workshop, we’ll hold a Lean Coffee sponsored by Software East and open to everyone. Later that same day, I’ll be one of four speakers at the Software East meetup at RedGate software. Please join us at any and all of these events for fun discussions and networking!

And maybe the most fun: TestBash 2.0 in Brighton, March 22! Join me and a bunch of really cool speakers and participants. Please also consider supporting TestBash as a micro-sponsor. I’ll also be facilitating a Lean Coffee in the morning before the conference starts.LeanCoffee

For more information about Lean Coffee, see the LeanCoffee.org site. I facilitated Lean Coffees last fall at Oredev and Agile Testing Days. Pete Walen blogged about the AgileTD Lean Coffee. So did Chris George. Matt Heusser blogged about the Oredev Lean Coffee. I hope those reports motivate you to get up early after the Casino Night and join us!

At one of our Belgium Testing Days Lean Coffees, our topics ranged from Yahoo’s reversal on their working from home policy, to what to do about business stakeholders who won’t make decisions about features. This is a fast-paced event that will wake you up and get you ready for the day!

My friend Yves Hanoulle gently pointed out to me that I could do a better job providing information about the Lean Coffee at Belgium Testing Days by putting a bit of information online about it. So here goes!

7:15 a.m. – 8:15 a.m.  Friday, Satellite Room (go thru door across from where registration desk is, it’s down the hall on the left opposite the coffee break area).

Tea and coffee provided! LeanCoffee

For more information about Lean Coffee, see the LeanCoffee.org site. I facilitated Lean Coffees last fall at Oredev and Agile Testing Days. Pete Walen blogged about the AgileTD Lean Coffee. So did Chris George. Matt Heusser blogged about the Oredev Lean Coffee. I hope those reports motivate you to get up early after the Casino Night and join us!

This morning, our topics ranged from Yahoo’s reversal on their working from home policy, to what to do about business stakeholders who won’t make decisions about features. This is a fast-paced event that will wake you up and help you decide what sessions to attend at Belgium Testing Days!

Tonight I’ve been going through a lot of old papers and photos that belonged to my dad. He passed away a few months ago, having lived 89 years to the fullest. I take after him in that I have many passions and interests. He was quite the record-keeper, and neatly organized mementos of all of his different hobbies and interests. I’m not sure how he had time for all that, because he was also a busy and successful entrepreneur who ran his own businesses for 60+ years.

Looking back over a life like that, I can’t help pondering those “is that all there is?” type questions. Many a time I’ve asked myself in the past, “When you’re 90, will you look back and think, I’m so glad I worked late on that particular day, or will you remember the days at the beach?” Looking at my father’s life in the artifacts he kept, I think the answer for me will be like his must have been: all of the above.

I cram as much fun and enjoyment as I can into my life. And I’m fortunate that my work is also enjoyable and fun. I think I may treasure the memory of pairing with a smart, fun and energetic developer on my team today as much as I will a morning snorkeling in Kailua-Kona. OK, maybe in different ways, but I was fully engaged in both activities, learning, and really enjoying myself. Why wouldn’t I look back fondly at both work-related and personal activities a few decades from now? And isn’t that what it’s all about?

It’s really great to get an email from a customer who, thanks to my help, has been able to accomplish a goal. It’s nice to come across a card that former teammates gave me when I moved on to another opportunity, reminding me how much we all enjoyed working together. And, it’s great to sit on the couch in front of the wood stove with my cats and dog. We have to enjoy every minute of this life, and find rewards in both our professional and personal lives.

But as much as I’m enjoying sifting through my dad’s many boxes, I highly recommend NOT hanging on to quite so much STUFF! Nobody can take your memories away from you, and you don’t necessarily need quite so many reminders of them! That’s all from this evening’s philosopher’s corner.

Learning is good, whether in your career, or when you’re having fun! We tried standup paddle boarding last year in Oahu, and loved it, but we knew our technique was bad. In Kailua, the Hypr board rental folks gave us a really helpful lesson in SUP plus pointers on the second day. We paddle boarded 2 hours the first day and about an hour the second, and the practice paid off. I started to get the hang of it, I expended much less effort to move and turn the board, and I enjoyed it much more than if I hadn’t gotten expert help!

LisaRelaxSupIn this video, unfortunately I am not keeping my top arm straight, so I’m missing the “Triangle of Power”. Hmmm, it sounds a bit like the Power of Three in agile testing! Still, I’m practicing, doing my best, having a great time, enjoying amazing scenery. That’s what it’s all about, whether at work or play!

I joined the Pivotal Tracker team as a tester on August 13. I felt so lucky to get on board there, it’s a wonderful team, and Pivotal Labs has an amazing culture. But in spite of having amazing helpful teammates, I struggled to get to a point where I felt like I was contributing.

Every new job I’d started in the past, I’d brought something to the party. Either the team needed help with testing, or they needed help transitioning to agile, so even before I learned the software or the business domain, I could help. But Pivotal’s been doing agile since way before we called it that. And their long-time focus on quality means they are masters of testing and test automation at all levels.

After a lot of pairing and about seven weeks, I finally felt like a useful team member. Like all teams, we have problems to solve, and there are areas, such as automation at the API level and ATDD, where I’ve got valuable experience to share. Those are both areas where we need to improve, so I’ve been participating in some experiments to find a good approach.

Starting our experiments

In our first experiment, the team decided that a pair should try creating a reasonable framework for ATDD (Acceptance Test-Driven Development, aka Specification by Example). I was fortunate to get to pair with Glen Ivey.  We used an RSpec-based approach, but made our own DSL. The team already had RSpec controller tests at the functional levels, but our new scripts tested the API through the HTTP layer. When we demo’d them to the team, though, there was a consensus that there was too much duplication between our framework and the existing tests. I disagreed, but in the Whole-Team approach, the group decides.

Next steps – building on what we learned

After more team discussions, we decided that we would specify test cases for each story just in advance of coding, so the developers could use those to help make sure they meet all the requirements. We hoped to reduce the number of stories that get rejected one or more times. We thought about using FitNesse or a similar spreadsheet-style approach. Marlena Compton helped me think of alternatives, and encouraged me to go with what seemed best to me – the DSL that Glen and I had created, because it worked well for me personally.

I wrote test cases in a pseudo-code fashion using this DSL for an API endpoint that was already in progress. It certainly helped me test the endpoint, and I showed the tests to the rest of the team. I asked that a programmer pair with me on some more tests, so we could get better feedback on whether this approach was helping. My teammate Jeff volunteered, and we wrote test cases for a different endpoint whose stories were in our backlog. Jeff had great ideas for refactoring our pseudocode to make it DRYer, and we came up with some good test cases. On my own, I wrote tests for yet another endpoint. The developers used these tests as they worked on the stories, found them helpful, and made suggestions for improving them, as well as additional test cases.

But they should be automated, too

The next step was to actually try automating these tests. I paired with my teammate Nick, and then again with Jeff, and we automated the functional tests with RSpec using the library already used for other functional tests. There were some test cases we couldn’t automate because these tests can’t access the HTTP layer. The team is concerned that might be too expensive. Nevertheless, in the process of automating the tests, we found three bugs, and now have solid regression tests for that endpoint.

Enjoying work!

I’m having so much fun and learning so much pairing with my teammates who are expert programmers. Some of our experiments have been more successful than others, but they’re all a success if we judge by what they taught us. It’s hard to juggle these efforts with other top business priorities, but we work to achieve a balance of getting new features released and building a more solid base of driving development with higher-level tests.

Come Join Me in Belgium and England!

I’ll share these experiments and more in Belgium and England in the next couple of months. I’ll be at Belgium Testing Days the last weekend in February. I’ll be doing two workshops. One is on “avoiding the testing squeeze“.  I talk about my workshop on Advanced Topics in Agile Testing in this video – the sound quality isn’t the best but hopefully you can get a good idea what we’ll do.

I’ll do a similar workshop on advanced topics in agile testing in Cambridge, UK on March 19. Later that same day, I’ll be one of four speakers at the Software East meetup at RedGate software. Please join us for fun discussions and networking!

And maybe the most fun: TestBash 2.0 in Brighton, March 22! Join me and a bunch of really cool speakers and participants. Please also consider supporting TestBash as a micro-sponsor.

Tiring of the poor performance of my old site hosted on GoDaddy, and tired of being the object of ridicule for having such an old-skool-looking site (OK, only one person ridiculed me, but his opinion matters), I decided I needed to finally get into the 2010s.

Thanks to Scot Rumery of Rumspeed for redesigning and hosting my new site! And to Matt Heusser for putting me in touch with Scot.

I have so many things to share, so hopefully 2013 will bring me more time for writing! Please watch this space!

Meanwhile, I’m getting ready for a couple of upcoming tutorials/workshops. At Belgium Testing Days, on February 27 in Brussels, I’ll be doing an all-day “Advanced Topics in Agile Testing“. I’ll ask participants to help drive the content, as we will first identify the most burning problems, then do group exercises to come up with some experiments to try to overcome those problems.

I’ll be doing a similar session in Cambridge, UK on March 22, at Software Acumen. It’s going to be fun, and I think every participant will end the day with some new, practical techniques to try. If you live close enough to either of those events, I hope you will join us.

LeanCoffeeWherever I go, I’ll be starting the day with LeanCoffee! Here’s a pic from one of our Lean Coffees at Agile Testing Days this past November. It’s a guaranteed fun and productive discussion of a wide range of topics.

I’ve had such a great fall. Got tons of inspiration at Oredev and Agile Testing Days. Doing lots of LeanCoffee. Learning all kinds of stuff and doing lots of experiments at work. Not only to I get to work with folks such as Marlena Compton, Jo Webb and Glen Ivey, the amazing Elisabeth Hendrickson is now also a Pivot! She’s not on our Tracker team, but we look forward to discussing ideas with her and getting her guidance occasionally.

So why no blog posts? 1) lack of time; 2) my site, which is hosted by GoDaddy, has become so slow, it’s hard to add posts, and probably hard for anyone to read it, so what’s the point? I’m in the process of having a smart person who knows how to move my site to a better hosting service and modernize it (yes, Tony, I will have a site that doesn’t look so 2003).

Stay tuned, and please check my Articles page and older blog posts for links to my articles on StickyMinds, TechTarget, SmartBear and other locations. Soon, I will be sharing lots of goodness that I learned, right here with you.