Validate and Verify

There is always one more bug

Best Resource for Software Development. Read stories from real practitioners on various subjects around software development.


Archive for the ‘Testing Concepts’


SCM in Software Testing

Few days back, I tried to explain in my last post about SCM. If you are not a regular reader here, then I would encourage you to read that and then come back to this one. Click here to read about whats SCM.

Having understood SCM, the other key question for test practioners would be to dive into its relevance vis-a-vis software testing. Going back to basics, SCM is management of a configuration of various modules (which as a whole is user-facing software). For Software testing connection, lets try to figure out the ‘configurations’ and ‘modules’ which are related to software testing.

‘Test Plan’ is a good module to start with. A test plan is virtually like the bible or the constitution, its a set of rules, methods, priorities which help you to make day-to-day decisions. Well thats sounds very theorish. But it is. It may happen that you dont really go back to that document to confirm your action but its that way. To give you an example, a ‘Test Plan’ mentions that if you find a defect in a third-party component then you would follow a process and you follow it all the while. Or for that matter, a ‘Test Plan’ mentions the tools which you are going to utilize or whether you would have a ‘Bug Hunt’ for all major features or not. It also mentions some more key decisions like “what all you wont be testing”, whats your assumptions,

Read More

Understanding “Software Configuration Management”

Software Configuration Management or SCM in short is one of those terms which either you know or you dont. Most of the folks who know it would actually believe it to be a source code control system or just a set of processes and documents or worse a change control procedure. While all of this is true, I am not sure how many of us have actually tried to think about its true meaning, its need and why its called SCM.

The truth is that I never thought about SCM as well and in my all test plans, I would invariably have a section on SCM and that in turn would mean that how we would keep code, documents, how the revisions would be stored but it never bothered me to brood on why its called ‘Software Configuration Management”. So after reading about it at places like http://en.wikipedia.org/wiki/Software_configuration_management and thinking about it for a while, here’s my take on this.

Lets separate the words, so we have “Software”, then we have “Configuration” and finally “Mangement”. I thought that if I could somehow understand “Configuration” well enough and then if I could link that with first and last word, then I am done.

Read More

Test Cases - How much to document

Software testing is about executing a set of test cases which are well documented and probably anyone after a few rounds of rehearsal can do it well. While practitioners would not agree with this since in practice, you dont find all the bugs from documented test cases. At most you document the basic workflows or the core cases but its not realistic to assume that one would be able to document all the test cases. Typically you would document the ones which are most important, so the big questions is that ‘how much to document’.

I am sure all of us have been into a situation where we found a bug at some crucial time and then everyone would want to look at test cases and while the witch hunting is going on, you as a test manager wonder that we never document everything. So after testing for many years and then managing a small team and complete products, here are some tips on test-case documentation. Read More

Demystiyfing Performance, Load and Stress testing

Software development is evolving, its not too old a science where practitioner have found the magic bullet and converted that into neat and working processes and manuals. Its not yet reached to the level of predictability as that of an automobile manufacturing plant and it would take so much more time to get it as defined as “Tax” or ‘Accounts’, both of which Indian Software Engineers dont love too much.

While anything is evolving fast, new and new definition are added, new acronyms gets introduced and virtually anyone who is someone gets active. Such is the state of Software Development currently.

OK, so far so good, whats the context and why such a title if we are going to talk about the evolution of Software Development. Well, I wanted to briefly touch upon this before we go about de-mystifying three kinds of testing which is so often interchangeably used, more so because we try to generalize things. So to be short, let me start with the first.

1. Performance Testing - Measure the performance (startup time, time to save a db commit, time to get results from db etc) under controlled conditions. Repeat. Read More

A Good Bug Report Format

As part of our testing, maximum time is spent around bugs, whether its writing a new bug, verifying a fix, giving more information, contesting the validity, linking similar bugs and so on. All these times we are looking at various pieces of information which are in the bug report.

My experience in testing has made me firmly believe that a good Bug Report is key to high quality software. My personal hypothesis is that if we can tackled this activity well then we are bringing in more efficiency. So lets look at a good bug report format.

Contents of a good bug report

Read More

Bug Life Cycle

Whats the life cycle of a bug or a defect ?

Even though this seems like a simple problem and may not need lot of thinking but its very important to understand it well. Most of the tester spend lots of time around bugs. They report bugs, regress bugs, verify bug fixes, bounce them and so on. From the same yard stick a developer spends lots of them on and around bugs as well, tries to reproduce them, asks and gets more info to repro them, fixes them, tests the fix, comments on the bug for testing recommendation and so on.

Amid all this, dev and tester also fights a lot over bugs :) and possibly all for a good cause viz. Quality. Lot of this fight can be saved or better understood if we really understand the life cycle of a bug. That way if a bug gets marked back to tester for adding more information, that would then look like routine or normal to him rather then taking that as an offensive.

Read More

Die Hard 4.0 and Software Testing

Some days back I went to watch Die Hard 4.0, please notice that its 4.0 and not 4. The movie is about our old cop Bruce and the bad boys who want to destroy the world, in this case they were more interested to demo or show a POC (Proof Of Concept) that given the right funding they can save the world from destruction. They actually did some destruction to drive home the point that destruction is possible.

The movie moves very smoothly with few people getting killed every now and then. Special effects are awesome and good wins over bad, albeit the good (in this case our very own Bruce) also wins over a F16 bomber, in-numerable bullets, n kill attempts, speeding oncoming cars and what not. Read More

Software Test Automation - When not to do

If you are software test engineer like me then almost every one in your office would have at least told you once that we must do automation and more if we are already doing it. Most of these people would be from non-testing function and probably they dont know enough and hence their feedback on doing-automation or doing-more-automation makes lot of sense, these guys are not biased and must be genuinely interested in seeing more automation.

To most of them, you would have replied with a sort of sheepish smile (like the one you just did), or with a mono-syllable answer, mostly Yes, or may be few lines, incase its an executive who is asking/suggesting.

Read More

Black Box Vis-a-vis White Box Testing

Black Box Vis-a-vis White Box Testing

Like most of the other developing streams of wisdom, testing also can boast of a long list of terminologies and a good hell of them makes no sense to out side world. There is no good way to really dissect various kinds of testing using a particular method because none of them is complete . One way which most of the practioners have sort of agreed upon is to divide them in two colors so as to put everything in Black and White and these are

- White Box Testing
- Black Box Testing

Read More