software testing services
Rex Black Consulting Services | software testing experts providing consulting, outsourcing, and software training
CALL US TODAY
(866) 438-4830
ISTQB certification testingISTQB certification testing ISTQB certification testing
PMI

Archive for the ‘best practices’ Category

The Value of Testing

I received the following message from Helen Huang.  My comments are found below, inline…

Dear Rex ,

 You are my idol, I am your fan

Thanks, Helen.  I appreciate your trust.

 I am tester .I has work this job of 5 years on China. Now I meet some problem in my working.

 1. In china , I find many company always talk the tester value ,what is the tester value ? . eg: Find the number of bug Or find a bug problem ?

 This is a common problem.  Test organizations often do not have clearly defined objectives.  This makes it very hard to demonstrate value.  The first step to demonstrating the value of testing is to work with stakeholders to define what testing should contribute.  I wrote about this in Chapter 2 of Beautiful Testing, which I’d encourage you to use as a way to making the value of testing measurable.

2. In China, many companies will consider automation and performance testing as a standard test KPI?

 Performance is often a key value for testing.  It’s important to understand the need for performance testing, as it is quite expensive to do well.  I’d encourage you to check the RBCS Library, especially the Digital Library, for my thoughts on performance testing.

Automated regression testing is also a major potential source of value.  It’s very hard to do this well, so you need to understand how to make this effort success. About half of automation efforts fail, often due to poor planning.

3. Now many Chinese tests were halfway decent, there is no specific test theories for the current lot of people think that the ability of the test failed. Test is not taken seriously in the project

 Again, I think this is a matter of not having clearly defined objectives.  I’d encourage you to work with stakeholders to understand what testing can contribute.

Please help me to work out this question.?

 I hope this is helpful, Helen.  Please feel free to respond to this post to continue the discussion.

Thanks

Helen .w. Huang

Alarming Network Design Bug

I recently flew to China on a 747.  The entertainment system was a complete failure, and no one in the upper deck cabin (where I sat) had any access to it.  They gave us all free frequent flier miles to make up for it.  When they gave me the voucher, I said, “I hope the avionics software is better tested than the entertainment system.” 

Yes, that was a somewhat rhetorical comment, as I know about the DO-178B standard and how that would affect testing of avionics software versus entertainment system software.  However, I have some concerns about that standard and what compliance to it really means.  For example, that standard, being white-box based, only requires that you test code that’s there to some degree.  What about code that shouldn’t be there, or code that should be there but isn’t (due to bad requirements or design)?

Shortly after I arrived, I received this link via e-mail: http://bit.ly/sNYQBa

Now, this is alarming.  Suppose, in all of the resetting of the entertainment systems that was done to try to restore working order, some bad signals had gotten sent to the avionics system through leakage over network?  How could that happen, you might say, as this link talks about deliberate hacking into the network?  Well, if it can be done deliberately, and you have dozens of in-seat computer systems booting over the network from the storage system, isn’t it possible that all of that network traffic could leak due to a bug in the way the entertainment system is implemented?  Even if the traffic doesn’t interfere with the avionics directly, if there’s a lot of it, you have the possibility of denial of service effects.

Of course, this can’t happen with newer planes, you might say.  Oh, really?  I believe I read articles when the A380 and the B787 were being built that both used a single network infrastructure.  I can only assume they use this same “virtual network” approach to try to keep traffic separated.

Another Software Tester with Agile Angst

Long time reader ML Gregory wrote me with the following concern:

Subject: To QA or not to QA, that is the question

I was looking for an article about QA in an agile world. I’m uneasy about a change our company is doing – eliminating QA. Testers who choose to stay must work in development as a developer writing tests. No test cases will be written, no bugs will be written. I’ve seen it before and was hoping to find some authoritative material on this type of change.

I’ve written about various ways Agile methodologies can challenge testing (most recently in the blog, but also in an article and a webinar). What you’re describing here, though, is a variant of the problem which is actually independent on Agile per se.

What you are describing is a problem I refer to as the Christmas Tree Ornament problem. I would be willing to bet that these three changes–no independent testers, no bug reports, no written tests cases–have been changes that people have wanted for some time. When the change to an Agile methodology came along, people hung these wishes onto Agile like a Christmas tree ornament.

It’s not unusual for these particular problems to occur with Agile, especially the “no bug reports” problem. Some Agile advocates do push for no tracking of bugs found during the iteration, which of course has the effect of making it impossible to gather metrics about the software process’s quality capability. However, I’ve seen other organizations that are definitely not using Agile have this same problem.

There’s not necessarily a lot you can do to resist these changes. They usually come with a lot of momentum. Standing in the way of an approaching train is not a good career move. Perhaps passing on the links I provided above, along with this blog post, can help.

I’d be interested in other thoughts from you and from other readers.

Where to Find Quick Tips on Software Testing Techniques?

I received a request from Martin for help on how to apply orthogonal arrays.  He wrote:

Hello,

I am working on putting together testing at work using an orthogonal array. This is the first time I’ve used this method. I read about it in detail in Rex’s books. But I’m having difficulty remembering all the steps. I need a little help to jog my memory. Could you please send me the high-level, bulleted, steps for creating the orthogonal array with my test case data?Thank you.

Sincerely,

Martin

Sure, Martin, you can take a quick listen to the key parts of my webinar on pairwise testing techniques. This webinar addresses how to use orthogonal arrays and other pairwise tools.  After you listen to that, I’d suggest you go to www.pairwise.org to find a free downloadable tool. Last I heard, the US Department of Commerce had funded a project to create a pairwise tool (your tax dollars at work!) that will actually do classification trees as well, and I think you might find it there.

In general, Martin, if you are looking for a refresher on test design techniques, a good first stop is the RBCS Digital Library.

Why RBCS Chose the ISTQB Certification?

I had a recent e-mail from Eleni Chee, a listener to our webinars.  She wrote:

Hi,

Firstly, I just wanted to thank you for conducting awesome webinars, I’ve definitely learned a lot from it.

I noticed that you also provide training for people interested in pursuing the ISTQB certifications. I’m just wondering why ISTQB – why not QAI or ASQ? Is it because ISTQB is a better certification? Please advise. Thanks!

Regards,

Eleni Chee

First, Eleni, thanks for the kind words about out webinars.  We definitely aim to provide the best testing webinars in the business, with a focus on good content, not advertising pitches.  I’m glad to hear that we’re hitting that target with you.  I hope you will pass on our webinar invitations to other friends and collegues who could also benefit. 

Now, to answer the question about why we only follow the ISTQB software tester certification, yes, we do think it is better. I chose to get involved with the ISTQB program after careful study of the different options, including ASQ and QAI.  We not only offer accredited training, but I also chose to get involved in the program itself, to help improve it.  I’ve had the privilege of serving as ISTQB President, ASTQB President, and ISTQB Governance Officer, as well as being involved as an author for the Foundation syllabus, Advanced syllabus, and Expert syllabus. 

You can learn more about the ISTQB certification and what makes it the best by listening to this webinar (http://www.rbcs-us.com/software-testing-resources/155) and/or reading this article (http://www.rbcs-us.com/images/documents/ISTQB-Certification-Why-You-Need-It-and-How-to-Get-It.pdf). If you want to learn more about the Advanced certifications specifically, check out this webinar (http://www.rbcs-us.com/software-testing-resources/96) or this article (http://www.rbcs-us.com/images/documents/The-ISTQB-Advanced-Syllabus.pdf).

Bonus Bug of the Week

This week, I’m pleased to feature a bonus bug of the week, courtesy of long-time reader John Singleton. He wrote to tell us:

Rex,

I was posting some comments in response to your blog post, entitled “Bad Agile Implementation Causes Software Test Challenges”.  For whatever reason, the Submit button was entirely non-responsive in Firefox. Thankfully, switching over to IE resolved it.

Not griping, just thought you’d want to know. Good, thoughtful response you gave.

Cheers,

John

I responded:

Hi John–

That’s weird. It’s usually the other way around with WordPress (the software we use for our blog): Firefox works when IE doesn’t. I guess we have a bonus bug of the week. ;-)

Glad you liked the post. I’m looking forward to your comments.

Regards,

Rex

So, while this isn’t a very serious bug, it is part of a very serious pattern: Failure of major players in the web world to test browser compatibility.  See my previous posts http://bit.ly/mdBIRY and http://bit.ly/mPkD9z.  Is this a lack of understanding of basic test design techniques such as equivalence partitioning and (for particularly risky situations) pairwise testing?  Or just a lack of caring?

I have to say that this pattern is not universal.  Working with a major e-commerce client this week, I was pleased to see that they include testing of most of the major browsers, covering the equivalence partitions. 

What do you think about this pattern?  Are you in the web world, and, if so, do you test browser compatibility?  If not, why?

Bad Agile Implementation Causes Software Test Challenges

I recently received an e-mail from a software tester, which raises some interesting issues about testing in an Agile environment.  I’ve interspersed my comments with the original e-mail, using “RB:” to indicate my text.

Hi Rex,   I am a ISTQB Foundation Level certified software tester and your book on Foundation level helped me clear the exam. Thanks for that. I never knew you had a website and visited it recently, infact today only.

RB:  You’re welcome. I’m glad you found the book and the website useful.  I hope you like the blog, too.

There is somethign that I want to know and I thought you might help.   I am into manual testing and currently into a project which follows Agile methodology.  

RB:  Many people are in this situation these days, though you seem to be suffering from a bad implementation of Agile.

The problem that I face is, we are given new features to write test cases and test them once or twice every week but some of them do not have any specification at all. And when we raise our concern that we need some requirement or specification to identify our test cases etc , the functionality is explained  in one liners over chat windows and the excuse that we are following Scrum methodology and hence we do not have any written specification or requirement for this feature.

RB:  That’s not following Agile best practices, but we have run into situations with a signficant number of clients where not all of the Agile best practices are in place.  Ideally, there are user stories (lightweight requirements) which are documented and managed.  Techniques and tools for doing so differ, but what you describe is not sufficient for testing, and probably not for development either. 

This is a classic mistake of interpreting a situation as a Manichean choice (i.e., one hand good, other hand evil), rather than understanding that the question is one of degree.  In this case, the Manichean choice is being made with respect to the Agile principle that says to “value working software over complete specifications.”  Notice that this does not say, “Don’t bother to write any specifications whatsoever,” but plenty of companies following Agile have interpreted it that way.

Another concern is, we do not have any  test reporting template. We are just given features to test over email and we test and report them over email as well. But I would like to maintain at least some bare minimum documentation so that I have at least some record of what I have done which should also help me in keeping everybody on the same page.  

RB:  Yes, this is another challenge that happens in testing, and not only in Agile.  The failure to record what was tested (both in terms of tests themselves as well as traceability back to the test basis) is common.  As you point out, this leads to test results that are completely subjective and undocumented.  Not only is this inadequate for release decisions, it’s completely useless in terms of process assessment.

What do you think should be my approach in such a scenario? Please advice.

RB:  You are facing a lot of the challenges I first discussed over three years ago in a presentation on Agile testing challenges, which later became a webinar (http://www.rbcs-us.com/software-testing-resources/92) and also an article (http://www.rbcs-us.com/images/documents/agile-testing-challenges-english.pdf).  I’d recommend you take a listen/look at those.

Thanks and Regards Neha Srivastava

RB:  You’re welcome.  Good luck.  You might need to find a place where you can practice more effective and enlightened testing, because you’re unlikely to learn much other than bad habits from working in an environment like this one.

Cumulative Effect of Software Reviews on Testing

Long-time reader Patricia Osorio asks about some material from our Advanced Test Manager e-learning course (and also from Advanced Software Testing: Volume 2):

1. In the section 6.4.1 Defect Removal Effectiveness of Reviews, I founded the following paragraph, Could you please explain me how to get the numbers [of remaining defects]?

First, imagine that you started with 1, 000 defects. You follow worst practices in reviews, but at least you review all types of items. In this case, you would enter testing with about 166 defects. Now, imagine that you started with 1, 000 defects again. However, this time you follow best practices (and again you review all types of items). This time, you go into testing with 3 defects.

The question refers to the following table:

 

Least

Average

Most

Requirements review

20%

30%

50%

High-level design review

30%

40%

60%

Functional design review

30%

45%

65%

Detailed design review

35%

55%

75%

Code review

35%

60%

85%

So, if you follow the “least” column, after the requirements review, there are 800 defects remaining (20% removed), after the high level design review there are 560 defects remaining (30% removed), and so forth, with 166 the final figure for defects remaining.  If you follow the “most” column, after the requirements review, there are only 500 defects remaining (50% removed), after the high level design review there are 200 defects remaining (60% removed), and so forth, with 3 the final figure for defects remaining.

Now, admittedly the real situation is a bit more complex than this.  Defects are not introduced only in the requirements, but indeed in every work product.  However, the basic point remains: the more defects are removed earlier in the lifecycle, the easier the job of testing.

Document Software Test Cases or Procedures

I received the following question from a reader of this blog, Kathleen Marrs.  She wrote:

Rex,

I have a colleague who swears up and down about a standard test case and process document style guide that is supposedly endorsed by you and the ISTQB and ASTQB. The style that he has introduced makes extensive use of quotation marks to denote controls, fields, and form names.

E.g. Click on the “Orders” form, then click on the “Current Orders” tab, enter “Bob Smith” in the “Customer Name” field and click on the “Find” button.

To me this is not grammatically correct as quotation marks should be used for actual quotes, user entered text, single character entries or familiar words that are used in an unfamiliar context. Have you seen this writing style and do you endorse its use or has my colleague been misled?

I am a proponent of the standard that is used by MIT and Microsoft and others which looks like:

Go to Orders -> Current Orders tab -> Customer Name and enter “Bob Smith” and click OK

Your input on this matter would be greatly appreciated.

In my book, Managing the Testing Process, I discuss various styles and templates for documenting test cases or procedures.  The ISTQB, in the Foundation and current Advanced syllabus, discusses the use of the IEEE 829 templates.  However, I don’t recall addressing the stylistic point raised above in any of these documents.  To me, it’s really a matter of choice.  The test organization should standardize on a single approach and everyone should follow it.  Otherwise, you get into the “Tower of Babel” problem.

What I would comment on is that the example given above is what is called a concrete test case, in the sense that all of the inputs and outputs are explicitly specified.  This is certainly necessary for automated tests.  For manual tests, you can consider what degree of detail must be captured in the test cases.  In some situations, using logical test cases–where the type of input and output are described generally and the tester is allowed to use discretion, white-box and black-box test design techniques, and exploratory testing to select the specific inputs and to evaluate the results–is often more lightweight, effective, and maintainable.  This issue of the degree of specificity in test cases is something covered in Managing the Testing Process.

Agile Risk Based Testing and Test Automation

Regular reader Gianni Pucciani wrote me recently to discuss risk based testing in an Agile world:

Dear Rex,

Risk based testing has been discussed in several places, and from different perspective, including in your books and online resources. There are almost no doubts about the benefits it can bring. What is still missing in my opinion is a good discussion about adopting risk based testing in an agile environment.

In this case risk identification and assessment should be performed at the beginning of each sprint, analyzing the risks connected to the features that will be developed in the coming sprint. Another point worth mentioning is the importance of test automation for regression testing, but what about a situation where most of the tests are manual? I would like to hear from you and the readers of your blogs if you have any experience/suggestions to share.

Thank you.

Best regards,

Gianni Pucciani

Yes, Gianni, this is exactly how risk based testing works in an Agile environment.  Here’s  summary of a risk based testing process document we created for a client who uses the Scrum methodology:

1. At the beginning of the planning period for a release, identify project risk based analysis team participants.
2. Schedule risk meetings (90-120 minutes each).
3. Prepare interview documents.
4. Hold interviews with all risk identification participants.
5. Analyze risk items.
6. Normalize risks.
7. Review project Quality Risk Analysis with stakeholders.
8. Apply RPN values to test planning and test case development.
9. When release backlogs are being determined and when sprint backlogs are being revised, At major project milestones, review and revise the risk analysis.

In terms of manual regression testing, given all the great tool support for test automation in Agile environments, I’m not sure why an organization would choose to do this. It’s the best way to manage regression risk in an Agile environment.



 
`