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.

Test strategy

Over the past few months I’ve been working on a test strategy at work, some foundations for doing better testing, it’s been a lot of work but I’m slowing getting there.
There’s been a lot of re education, and educating from the start for a variety of levels of people across the business.
yesterday was, in my mind a break through, It’s been agreed in principal, and will be used on one of the largest projects we have done at work. 
How did i get to this point?
A lot of conversations, me learning enough about all the elements that I could answer any question, and debate any point with any person. repeating myself, in a variety of meeting with the same people. Having confidence in what i’m doing helps as well, the fact I truly believe that this is the right thing for us really help, I think at times it overwhelms my restraint and I can get a bit pushy with it, I do try to reign it in though.
So where am I know with it, I have a strategy doc, it needs a bit of additional detail around the edges, but we are moving forwards with it, and in the new year we will begin the implementation of it for the project, Really looking forward to that.
If you believe you can help the quality of testing where you work, you can make a difference, it takes passion, and patience, you have to be prepared and able to explain any part of context driven testing, at a multitude of levels, to a variety of people. If you can do this, you can slowly bring them around to seeing the benefits of doing it. You have to be aware of your work places particular worries, and hang ups, so you can address those in detail, and with confidence, if you don’t sound like you know it’s going to work, and be an improvement, you are not going to convince anyone else either.
Make sure it rests on a base of solid detail and fact, with actionable processes that satisfy your works needs. I started with the Dev team leader nearly a year ago, why him? because I have a good working relationship with him, and his opinions are well respected by the heads of IT, so when I got him on board I had a powerful ally. You don’t have to start with the main decision maker, its often easier to start with those that surround them, and slowly work your way along, addressing worries, providing details, and example, showing how it could work for you.
If they say no, find out why, understand what’s behind that, go away and understand that, and how you can address it. Its an achievable goal, you just need to make that first step.