Do you know what testing is?

So you are working on a project, large or small and you are working with a variety of stakeholders, some may know what testing is, some may think they know what testing is, and some have never even thought about it.
So what do you do?
For me this one is an easy thing to address, I tell them all what testing is to me, in small bit size pieces. Using plain English, and alway checking back with them about what they mean when they use technical language, always phrased as ” just so I can understand..” not so I can correct them, so I can make sure I really know what they mean, This goes for technical people more than any, I sat in a meeting with a system architect lead, interface lead and developer lead, and they all had a different definition to unit testing (or developer testing). If I hadn’t asked it would have gone unsaid, assuming they all meant the same things.
People who don’t know what testing is, you have to show them the value you bring, demonstrate why what you do, makes their lives easier. Telling them isn’t enough, they have to see what you bring to the table otherwise you are just some strange IT role.
Be open and inclusive invite people to see what you do, help them see why you ask the questions you do, and never fear being challenged, just make sure when you respond to that challenge its positive, clear, easy to understand and relevant, they aren’t saying your wrong, or not needed, they are really saying I don’t understand why often with little realisation that this drives what they are saying.
If you want to do well in the professional world being able to demonstrate your worth is a skill that is worth developing, as the way you demonstrate it has to change according to the audience, you have to be able to explain in terms anyone can understand and defend why you have done or are doing what you are, especially if they come with preconceptions about what it is you do.
James Bach and Micheal Bolton tester story is an invaluable tool here (These are the people who I first saw this from not sure who’s idea it was first) It gives a framework within which to think about the differing side of what you are doing, and how to address questions about it to support why you have chosen to do what you have, when you have.
It’s all about understanding, what the concerns are, and how you can provide assurance to the stakeholder who raised it, that you will be able to provide them with proof/information/demonstration of that area so they can make a judgement on how happy they are with it, for example, in my current project the speed of order entry for the trade sales team is very important, they need to be able to work through an order flow, including placing individual lines on an order at the speed of speach. We are addressing this through demonstartaions and timings of screen loading, so the Trade sales manager can see how fast it is and make a judgement of if they are happy with that.

Tests, scripted, and taken

So I was watching some short videos on cognitive biases the other day when my mind wandered on to the topic of tests and testing. The things that we do to investigate the quality of software, and the thing most people do in large rooms under time pressure, and I wondered if the most commonly understood meaning of the word testing, as in formal highly structured, controlled and scripted process of answering questions on a specific topic under time pressure to receive a grade has poisoned, to use a dog training term, the ability to get people to understand testing as a process of exploring, learning, evaluating, modeling etc software to help make a value judgement on its quality.
So what do I mean by poisoned, in dog training terms if you have a cue you have taught your dog that elicits a specific behaviour, such as down, to lay on the floor, and then other people repeatedly, and constantly overuse the term, ie more than once per requested behaviour, and also use it to mean get off that thing/me/other person. The dog will stop having a cue down for laying on the floor, and the down cue will like not result in any particular behaviour.
So how am I applying this to the endless education issue around testing in software testing, we are bombarded with the word test and the school exam meaning for many of our formative years, and again if you enter an industry that has a high degree of continuous study and testing to maintain a level of knowledge and does this via formal testing. Rarely do any of these tests reflect our use of the word testing, they seem anathema to it, in fact, all formal, with a gravitas and pomp to give the appearance of great importance. 
Is this in fact the fight that we are having to get people to accept that testing software  can legitimately be exploratory and investigatory, rather than a highly formalised and scripted process, has the interpretation of test become an Alief in the minds of the general population?
What are your thoughts, why is it so difficult to shift the understanding of the word Test?

If it’s a journey…

As those of you who have read previous posts of mine will know, at work we are installing a new ERP system, and taking out the very old one.
One of the phrases that are being used is we are on a journey, this provokes an irrational response of wanting to strangle the individual uttering it.
So I thought I’d explore what about it drives me mad.
The way it is used implies that we are following some path that leads us to our chosen end goal, and if we travel it we will discover what we need to know along the way and get to this nirvana.
However, there is no path, we don’t know what we will encounter, we are drawing the map as we go, as what we require is unique to us, as is each major software installation. We don’t even know if our compass works here, the things we have used before to direct us no longer apply, the context they worked in, isn’t this context.
This journey would be more akin to some explorers landing on a new planet and having to map it all by hand, without knowing whats safe and whats not, let alone having a known destination to head towards, best we have is large geographical features, ie it needs to me able to manage stock.
It is this apparent gap between the reality and the phrase that causes my sanity to fray.

Passion in your job

So as you may know from earlier posts I’m quite new to testing as a full-time job, it’s something I’ve been involved in for a while. As I’ve progressed in my new role as a software tester, rather than just doing some testing on the side I have come to the realisation that testing, as I now understand it, is something I really enjoy. It speaks to many parts of my mind, it’s a constant challenge, with a great deal to learn about, and a huge variety. It turns out that I am very passionate about testing being done well, and that passion is translating to work listening to what I have to say to them.
So what does this meaning for me?
Work are more willing to accept when I tell them something about testing.
They are willing to send me on courses and to conferences.
They are willing to review what I do, as defined by my job title.
But more importantly, they are willing to give me more responsibility, areas of the business that were out of my original reach, yet really needed to review how they test software are becoming places I can influence, they are falling within my remit as a software tester. This hasn’t taken long either, my passion for high-quality testing totally changed how we are approaching testing the ERP we are installing, as a knock on from that they are willing to listen to me about minor software changes. letting me help the new testers we have, in terms of coaching, and getting them on courses to help them, inviting me to meetings with the senior developers so I can input early on projects.
All of this is happening because of my highly visible passion for what I’m doing.

If you want to go further where you work, show the passion you have for your role, bring ideas to your boss, push your self-development, let people know how much doing what you do, well, means to you, and how it helps them. Passion for your job does translate to progress.


Assessment of progress

So I want to be a great tester.
I’m building up a syllabus of material to learn, and a way of tracking my progress against that.
How though do I know how good I am at actual testing?
It’s not like there are formal assessments that can tell me how I’m doing, I have no colleagues that are more experienced than me, so their insights are going to be limited. So I can critically review work that I have done, with a view to what else I could have tried. What does that look like though, what are the actual steps I’d take?
I could apply the Socratic method and see in which piece of work I can see better ways to think about it, and approach it. I think this has a limited use to me currently as without broader and deeper experiences in testing, I may be unable to have an effective socratic conversation.
I think I have to build myself a self assessment model, definitely not a strong suit of mine.
I’d be reviewing heuristics used, where they the best, could better ones have been used, and what of the oracles, were they good enough, could alternative ones been found that would have given a better insight into the rightness of what I was testing.
Ideas from others who have tried a similar thing would be most welcome.

Testing mind set

I started writing this blog as a place to record my growth within software testing, as my understanding evolves I wanted somewhere I could go to to write about it, and a place to reflect back on where I have come from.
So a little recap, I work for a company that changes in-house software, and we need to make sure that it still works on its own and with the other software we have. I’ve been part of this for a number of years, to varying degrees of involvement. Recently I started full time in IT as a tester, my starting point was, if I’m getting paid to do this I’d better get good at it. And thus began my journey into real testing.
I recently finished the BBST foundation course, it was awesome, I’m now putting together a business case to get me on the others, that and the rapid software testing course. That might take a bit more doing.
All of this has been fantastic in helping me grow, it isn’t the epiphany, though. I’d recently read James Bach’s integration question and the many conversations that followed. Shortly after that, I was watching some lectures on youtube, and I watched one on the Socratic method as part of some work I’m doing on putting together a coaching/mentoring model. And there it was, I could see Jame’s use of the Socratic method in so much of what had been written, I can see how this can be applied to help me gain a much greater understanding in my own work. I can use this to challenge what I think I understand and grow from there.


Over the weekend I happened to read an article on assumptions and if we should be making them. The article talks about the writers progression from the assumptions are bad, to assumptions are okay if they are reasonable. It was interesting to read the progression of the writers thoughts over the use of assumptions. They went from, as a younger person following the adage about asses, to coming to realise that some assumptions are part and parcel of life. 
However, it struck me that  we could do with a better education when it comes to this type of reasoning within software testing. Too little time is spent talking about how you investigate something and the process that you go through to come up with theories to test, most sciences, both the more classical and social sciences spend time teaching how to investigate, and the use of assumptions.
It reads to me like the author is talking about beliefs, those things that drive our assumptions. If they had dug a little deeper and thought about these assumptions maybe they wouldn’t have held them in such low esteem.
We could rephrase the article, rather they are talking about justified beliefs, in the epistemological sense, or we are using them to form part of an ampliative argument. In either case, the negative connotations of the “assumptions” should be removed as you are no longer talking about the vague process of making a guess at something, but it is a considered idea that you believe is supported by the available evidence.
Both of these play a large part in the process of assessing a situation and forming a hypothesis that you are going to investigate further and are held in much higher regard than the simple assumption.
I think that if we could move to accepting that this is the normal process that is gone through, and start using the techniques that are available in other disciplines that rely on investigations we would be able to share in the developments in ways that you can investigate.

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:
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.
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.
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.
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.