Saturday 30 January 2016

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.

Wednesday 27 January 2016

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.

Tuesday 26 January 2016

Assumptions


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.

Friday 15 January 2016

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.

Thursday 7 January 2016

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.