Integration Testing, what is it, and why does it require special attention?

So the other day James Bach posted on hi blog about what is Integration Testing. It’s a very interesting read, with some great comments, and its got me thinking, which I would guess is the idea behind such things.
Now I’m by no means an expert in testing, being relatively new, and almost entirely self taught. I thought about what James was asking, what is integration testing and attempted to break out what I needed to think about to attempt to answer this question.
My first thought was integration testing is, very basically:
Testing communication between two or more units?
but this leads to the following questions:
Communication?
Units?
Between?
But still doesn’t answer why integration testing is needed, it lead to further questions:
What’s special now that couldn’t be seen before?
What is integrated, is it outside the system?
Can integration be within a system or only between different systems?
So far I have far more questions than I do answers, so let’s attempt to answer some of them.
Communication:
The passing of information from one source to another
But this implies that we’d be testing is only intentional integration, and never unintentional integration. This tells me that the word communication needs to be changed in my overly simple starting statement.
Units:
A collection of functions or parts that operate as a whole. I know this is not quite right, and I can feel the itch in my mind that tells me i’m missing a key point here. I’m not referring to the Unit definition in Unit testing, more the concept of a completed whole, a thing that can exist and operate on its own. But can it? why integrate it, if it’s self contained, so it has dependences that are outside of itself. Again we go down the deliberate integration route. So we are talking about two or more self contained units that can in some way influence the state, or behaviour of one or more, Would the xbox’s notorious red ring of death fall under integration testing? Where heat is affecting the circuitry inside the console.
Between:
So I’m thinking that something, let’s call it energy, is passed from one of the units to another (or more), either deliberately or coincidentally.
So why can’t this be testing independently, why does the integration need to be present for the testing to uncover something. Shallowly, because the behaviour/impact can only been seen once the units are integrated, as it is triggered by the units being in the state? of integration
So what are we looking for in this? An alteration in the state of the unit once it is in a state of integration, as defined by changing data/speed/temperature/operation/function?
So what do I know so far, mainly that I don’t have a clear idea of this, I am not able define with any clarity, and thus explain precisely what I understand by integration testing, I could shallowly answer, with regurgitation of answers from texts or lectures, so if i look to bloom’s taxonomy
 I am only in the bottom box of remembering 
I’m able to describe what I have learnt, but nothing further, I am working towards understanding, I can begin to infer, and summarise, I can discuss
So I have begun the journey, I now understand that this is where I am, and can work towards progressing.
How about you, how well can you explain what Integration testing is?
I highly recommend reading both Jame’s initial post and all the comments with his responses, it makes for a real stimulation read.

New Year, New Challanges

So i hope everyones new year is going well, so far mine has kicked of to a great start, got my certificate for successfully completing the foundation BBST testing course, very happy about that. I highly recommend the course, it’s packed full of great material.
I also gave a well received presentation on the test strategy for the ERP project at work to the 30 or so core individuals of both work and the reseller of AX that are helping with the config and installation, lots of questions, hopefully answered to everyone’s satisfaction. Its been a long time since i’ve done any presentations so I was rather rusty, so I watched a few good presentations and did plenty of prep to ensure I knew what I wanted to say and at a good speed.
Now I have the challenge of moving it forwards, so I have a couple of exercises to detail, one to help them understand the initial activity of working out what we could test, I’m planning on taking a simple object and running a session or working out what all the testable elements of that are. Secondly I’m going to try running a version of the dice game, so they can practice thinking about how they understand something.
Then I just have to plan out how I’m going to train some people who’ve never tested before, so they can help out testing on the project.
Busy times ahead.

Testing – What to know and how do I know if i’m on Track

So we testers generally end up on this path by “accident” , there are few of us who set out looking to be a software tester, most of us end up here through a progression of roles that orbit some of the skills needed to test, and finally fall into an actual testing role. Now I’m happy to admit that i’ve met few testers, and my generalisation is almost certainly more applicable to the older generations than the youngsters of today, however I think the same things will apply.
When I fell into an actual testing role, I was largely guided by what the dev guys wanted from me, Basically a squishy computer, lots on input output checking, very dull. But i’m one of those people who can focus and get on with stuff like that, so I did.
While doing this I thought I’d better have a read around testing and find out what the techniques were, good ways of doing stuff, anything I should know, you know that handy stuff that makes doing your job easier.
So I Googled testing and kept running across this ISTQB test qualifications and syllabus stuff. So I spoke to my boss, pointed it out, and we got access to the course content, I dutifully began studying it. It was dry, dull and seemed so much like those big litigious businesses that we so hate dealing with, all their pointless paperwork. Not a great sign, I got about halfway through the course before I ended up skim-reading the rest.
Time to use some real Google-Fu, I actually have a certificate in that you know, I dug around online looking at testing info, and started to find references to context driven testing. So I read what I could find with my initial searches, and boy did it make so much more sense.
But what’s all this got to do with the knowledge base needed to test?
Well for those of you who haven’t looked into context driven testing, you should, but you’ll find a name and blog crop up quite a bit, James Bach, and his blog.
What I have found, probably coming to the realisation over the last 6 months, is real testing is something I’m crazy passionate about. why? because it offers such a world of mental engagement and complexity. I took me a few time of looking at James’s Testers Syllabus to realise quite how much all of this draws me in.
Where am I going with this? Well after discovering this other land of testing, I have read a few blogs watch a lot of conferences, perused some books and generally been absorbing the atmosphere, It’s hard to quantify where I’ve got to, and where I should concentrate next, mainly because there is so much to know, so many topics that are worth learning. So I struck on a solution, on James’s blog there is this fantastic mind map for a testers Syllabus, so I plundered it for my own uses. Not only does it give me a framework of great topics, as estimated by someone who I think has a great deal of useful things to say about testing. But I allows me to track where I have focused my attention, and where i’m a bit light in knowledge.
So I’ve copied James’s mind map, and started to recorded on it details beyond where it stops, so specific points, concepts, books, classes etc.
What has this given me?
Well a great way of seeing what i’ve been neglecting, where I have focused, and what I currently think I know something about.
I’ve done this because testing is a passion of mine, I have found a place where I can mentally fit, a job that gives equal parts engagement and challenge. It is something I plan on doing for as long as i’m working, and I will be brilliant at it, but only if I keep learning, and pushing what I know, into all the areas that will make me a better tester, this mind map gives me a way of seeing how i’m doing.
There is a long way to go but all journeys begin with one step.

Now I just need to find this fabled community to match wits with, not that i’m ready to do so, but talking about testing really helps to understand it. And I plan on really understanding it.

BBST foundation in software testing

So I finally finished the course this weekend, and it was a fantastic one. Really engaging and thought provoking.
I’d really recommend it to anyone new to software testing, or new to the context driven school. There is even plenty of content for those of you who are familiar with the techniques but haven’t yet formalised what they know.

Counting those Test Cases

So we are working through a test strategy for a big software rollout at work, change of ERP for those of you that are interested.
As you will have read in my earlier posts we have a consultant in to help us with this, He’s done a great job of highlighting some pitfalls we have overlooked, and suggested some thing that we really need to be considering. However he also has a huge amount of work in his overview for writing test cases, writing test scripts , then running those test scripts. I have challenged him on this, I have suggested that we would be much better of if we used Exploratory Testing, and get the SME’s (subject matter expert) to use this rather than us writing thousands of test cases which, mostly will need rewriting as soon as the business gets a good look at the software and changes a load of stuff, like they normally do.
He seemed bemused that I’d want to take this approach on such an important project. I did my best to explain the benefits of the context driven approach, but I’m new to the whole thing, so we will see how well I do when we attempt to restructure the plan today.
Any pointers on how to sway people are gratefully accepted.

Starting BBST software testing course

Just a quick post to say that i’m on a Training course run by BBST and it’s very exciting, work have agreed to pay for the online BBST course foundations of software testing. And I must say I’m really looking forward to it. I will be posting up how it’s going after its started later this month. but from the intro in the textbook it’s looking to be a great course.

I’m very much hoping to improve my knowledge about testing, and my practical expertise, and given the course seems to have plenty of practical exercise as well as lectures it should do the job.

Doug

Dog Training and Testing

So my partner is big into dog training, and she spends quite a considerable amount of time learning good techniques and putting them into practice with our little puppy. Most recently she been teaching the dog to bring items to her hand and given them to her.

A complex string of behaviour for a dog, first they have to pick up the item, then hold it, then carry it to her, then release it to her waiting hand.
What’s the got to do with testing, you ask. Well the way our dog is learning this reminded me of exploratory testing, it’s a technique called shaping, your dog does something you like, so you mark it and reward, and reinforce as they continue to do this. However you raise the reward criteria as they get a better understanding of what you are looking for. So as the dog nudges the pick up toy, you reward, they put teeth on it, reward, and so on, until they are holding it, and moving it, and on it goes until finally the dog has worked out what you want.

It struck me that this is so like ET, you come across the edges of a issue, and get that endorphin release that you are on the right track, who doesn’t enjoy finding bugs, and you keep testing around it until you understand more about the issue, and you keep at it, honing in on what’s going on, until finally you get the complete picture.
I speculated that this would probably mean that much like shaping, the more a dog is trained using this the faster they get at working out what gets the the rewards, the offer all sorts of crazy combos of previously learnt behaviours just to see what results in a reward, it’s awesome to watch by the way. Then ET is almost certainly the same, the more you practice ET the better you get, the more techniques you’ve learnt, that you can try out in crazy combos until you run across that issue you’ve been hunting for.
I’m new to ET, but this gives me a good deal of reassurance that its a solid path to learning good skills through your run of the mill practice makes, well not perfect, but definitely better.

That was my thought for the day. Hope you enjoyed it.

Doug

New project

Well I get to move on to a massive new project in the next few weeks, really excited about it, I’m nominally named as the test lead, not like there will be many people to lead though, we do have a new tester starting in november, taking to total number of dedicated testers to two, I know good isnt it. I should have some project resources for testing as well though.
Why am I so excited though? Well its my opportunity to demonstrate that exploratory testing is a worth while thing to be doing, that gives tangible results, and  works on the largest of projects, this is the biggest thing we are going to be doing any time soon.
The downside, I get this wrong and they won’t support ET any time soon, that and it could cost me my job, but hey I’m willing to take the risk, as I believe it will work and that we will show them that test case counting is pointless and a waste of valuable resources, and you never know i might get a new job out of it if I can play my cards right.
We are going to be installing a new ERP over the coming months, I suspect longer than they currently think, but that’s definitely for another time, and I will be responsible for providing updates on testing, bug tracking, test management and resource coordination, currently. We are getting a consultant in to help produce a strategy, and give realistic time frames and resource requirements for testing a project of this size, how much we agree is something that I will find out when they get this guy in. I might even post about it if it goes well.
I plan on ET with session based management to ease the company into the realms of real testing. that I will most definitely post about as I go along. It all starts in around 4 weeks for me. Here’s to it going well, lots of hard work but I am looking forward to it.

Doug

Test Strategy

Where I work I am the only tester who is employed to work on general software testing, we have a small team that works on the web site, they are quite separate to the rest of the business though, and constantly engaged in testing patches and updates, as you’d expect.

So my boss asked me to write a test strategy for the business, as you’d imagine I was over the moon at the chance to move us towards good quality testing, and away from meaningless metrics.
I thought the best place to start would be James Bach’s heuristics strategy, as its broad and easy to apply, and to that I have added some information about session based test management to give them some comfort around easily understood measures and metrics that will fill the void of the pointless test case counting graphs.
It has been broadly accepted by my boss, I suspect he doesn’t actually understand it, even though when I ask him about it, he assures me he does, and requires no further explanation, I do however have the dev team leader totally on board with it, and he loves the way it works, and is trying to support it as much as he is able, which is fantastic.
However we are about to undertake a major project to install a new ERP , AX to be specific and they are looking for a consultant to help write the test strategy for this project, now obviously I’ve asked why we are not using the strategy they just asked me to write, and I’ve been assured that any consultant will be writing a test strategy, with me based on what I have already done.
The downside is the CV’s that are coming in all read like factory school of testing grads, and I’m not looking forwards to having to counter everything they say about how I want us to go about testing, when I need them to support me in attempting to explain that we can not test an ERP with me and may be a couple of others in 4 months.
I really wish I knew some ET testing consultants in the area who were able to come in and help, they would still have to get past my boss and the project manager, but they would at least be starting with the advantage that they would be supporting the test strategy my boss has already said he wants to use.
He does however keep going on about getting in a consultant to ask about best practices, it’s deeply frustrating.
well minor rant over, pointers however more than welcome
Doug

Project drawing to a close

So for that last 4 ish months i’ve been involved in a sizable, for us, project to change some of the software used in our warehouse, I was brought in late to the party, they wanted to recruit a tester who had warehouse experience, we never found the right person, so they gave it to me. right of the bat I had to explain the volume of testing and checking needed for what they were doing was well outside what I had time to do, in the time frame they gave me. So they brought in a consultant to help with/run the testing.
From that point on, it all became about test cases, how many there were to do, how many had been written, how many had been done.
We had these amazing user stories that would have given us such a great place to test from, but they disappeared into the background, something I believe we are now paying for.
We bludgeoned our way through unit testing, well mostly, we did all the test cases so that must be good. the project team were happy though, They had a pie chart that was all green, I’m still not sure what they think its told them.
At this point i’ll say, i’ m not fond of how we have gone about this, but I didn’t feel able to sway the business over a trusted consultant and there decades of previous experience, I am after all just a very new tester, with no significant wins to point to to demonstrate my worth. So I have done my best to test what I can the way I know we should, and i’ve demonstrated how I can very quickly find issues.
We move on from those lovely unit tests to some system testing, out came those test cases again, even more this time, thousands (possibly an exaggeration), but as time went on, config was altered, stuff added, more tests cases were written to deal with the new or changed parts, and on this went, we still produced some lovely graphs, I’d managed to get a time required to test, estimate vs actual added to give some tangible info, unfortunately the consultant was really unsure about how to deal with this, so its been a bit adhoc in how it gets updated, no actually feed back from the team we now had running these test cases on how long they had spent on what, just an estimate on how long an area should take, and when all the test cases were done, that meant they musty have spent that long testing it!
I have learnt an awful lot on this project, it’s really  reinforced how much we as a company don’t know about testing, and how much I personally dislike the test case driven testing. The project is slowly drawing to a close, my work will be done in the next few weeks and I’ll be of to new and shiney grounds, which i’ll tell you about in another post.
Even though this was probably one of my least enjoyable projects I have come away from it a great deal wiser, and more experienced than when I started. I wish in those early days i’d had the confidence to push for using the user stories as the basis for testing. Hopefully I have learnt from it though.

Tell me about how you came to some of your critical learnings

Doug