More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Musing about Software Te...PhotosProfileFriendsMore Tools Explore the Spaces community

Musing about Software Testing

TestMuse

View spaceSend a message
Keith Stobie is a Test Architect at Microsoft where he plans, designs, and reviews software architecture, process, and tests for Protocol Engineering. Prior work included Live Search and Windows Communication Foundation. Over the past 25 years he has focused on software testing distributed systems including Tandem Fault Tolerant systems, Informix Parallel database, and transactional and collaborative software at BEA Systems. Keith provides training on inspections and quality process, and test training, strategy, methodology, design, tools, and automation. Keith has mentored and coached hundreds of professionals in the field. He writes and speaks to conferences around the world on software engineering, SQA, and testing.
July 26

International Symposium on Software Testing and Analysis (ISSTA) trip report

I’ve spent the last 3 days at International Symposium on Software Testing and Analysis (ISSTA).

Always interesting to catch up on the researchers of software testing.  The details of static analysis can be deep and beyond me, but most of it is quite approachable.  For example, A Metric for Software Readability abstract is only at the junior college level of readability J .

My own groups work was summarized in the keynote (The Real Value of Testing) as the only bright light in the failure of specification based development including models.   As I suspected, electronic voting for elections is still a hoax (details: Are Your Votes Really Counted? Testing the Security of Real-world Electronic Voting Systems). 

The big new term I learned that I’m behind the times on is “Concolic Testing”.   From Concolic Testing tutorial (2007):

Concolic testing automates test input generation by combining the concrete and symbolic (concolic) execution of the code under test. Traditional test input generation techniques use either (1) concrete execution or (2) symbolic execution that builds constraints and is followed by a generation of concrete test inputs from these constraints. In contrast, concolic testing tightly couples both concrete and symbolic executions: they run simultaneously, and each gets feedback from the other.

Concolic appears to be the future for automated test input generation with numerous papers on this topic showing variations.  Concolic is a catchier name than Directed Assisted Random Testing (DART) or Dynamic Symbolic Execution (DSE).

 

An intern in our group, Xiao Qu, presented her paper Configuration-Aware Regression Testing: An Empirical Study of Sampling and Prioritization which use combinatorial interaction testing techniques to model and generate configuration samples for use in regression testing.   She has been helping to introduce combinatorial testing for parameters into Spec Explorer.   Configuration testing is my favorite use of PICT.   There result:

By running the same set of test cases using additional configurations, we were able to uncover faults previously undetected.

 

Several object oriented software measures for Java can be measured with varying outputs for the same measure from different tools.  Moral of Comparing Software Metrics Tools is you can’t trust a single tool as it may mis-guide you if you don’t fully and completely understand deep, detailed little assumptions.

 

Researchers hunger for real industrial data.  AFID: An Automated Fault Identification Tool was written to automatically gather test cases and bugs from evolving software for empirical study by researchers.  Many researchers compared based on the 7 programs in the standard “Siemens Benchmark Suite”.   Small programs listed in numerous papers at this and other conferences.

[See Infrastructure Support for Controlled Experimentation with Software Testing and Regression Testing Techniques for more details]

At the follow on State-space Exploration for Automated Testing (SSEAT) workshop

I spoke with Myra Cohen who works on combinatorics and would like information about typical application of pair-wise testing in industry.  What type of domain to you use pair-wise testing in?  (e.g. API, GUI, Configurations),   How many factors do you consider in a single pair-wise problem?   How many values for the factor with the most values?     How many constraints?   My own experience using it for configuration testing of Indigo configurations was about 20 factors with no more than 10 values per factor.

 

I found one article in the poster session of great interest.  I’m a big believer in test set minimization for regression testing.  Most methods up to now are heuristic (e.g. greedy algorithm).    MINTS: A General Framework and Tool for Supporting Test-suite Minimization (and paper) attempts to find the optimal solution (using constraint solving of binary Integer linear programming) including multiple weighted and prioritized criteria like code coverage, time to execute, defect finding history.   Their data indicates

MINTS was able to generate optimal test suites in only a few seconds, a time comparable to that of heuristic (i.e., suboptimal) approaches.

For small test suites (the Siemens 7) it works as fast as the heuristic techniques.

 

June 10

Info buying instead of bug buying; Simple MBT; conferences

Random musings:

Testing is getting paid by the bug?  http://www.utest.com/

“a unique pay-per-performance business model, to provide our customers with a cost effective solution to test any product,”
            pay you based on your approved bugs submitted.”

Attended Risk Based Testing talk by Paul Gerrard as part of MS internal Engineering Excellence and Trustworthy Computer Forum (EE&TwC – as the invited speaker Scott Berkun  said – this contorted name shows a turf fight between groups that compromised on “&” rather than a useful, catchy phrase or acronym for people to remember.  The EE&TwC theme was design!).

Most interesting thing to me was in a list of Risk Reduction Strategies:          Information Buying
What is “Information Buying”?     It’s testing!
What a great way to really hit home about what testing is really about.
We test to gain information about a system to reduce risk.  You pay for the testing to get that information.

Note that paying only for bugs, means you have no idea what parts of your system are good.  Does no bugs mean it is good, or just that nobody tried it?

The other nugget from Gerrard was we should measure not by deliverables, was the code checked in, but by test evidence.   What was the pass rate, coverage, etc. of the checked in code.    If you have test evidence, you can infer the item being tested has been delivered.


I just gave a basic Model Based Testing (MBT) introductory talk to the VSTS (Visual Studio Team System) Test SIG (Special Interest Group).  Always amazed how few people have heard of MBT before.  I was asked how big a model you need to discover bugs.  The questioner had seen his own simple example of just 2 states.  I related the 2 state model I saw find bugs.  It was used by a tester on Indigo we had just taught MBT.  They were testing the .Net asynchronous calling pattern for several APIs.  Their simple model was:

TwoStateAsyncInvokeModel

This has just 2 states (invoked or not) and 2 actions (Begin or End).   Each action can conceptually occur from each state (4 transitions).   The ones in red should result in an error without changing state.    The tester then ran this simple model over about 50 APIs and found about 1/3 of them failed doing NotInvoked – EndInvoke ->

You can also see my article on Testing For Exceptions for why a sequence of more than one transitions might be useful.


I’ll be moderating a panel about Collaborative Quality at PNSQC and presenting Thursday, 9:45 “Patterns and Practices for Model-Based Testing” at StarWest.   Maybe I’ll see you at ISSTA in Seattle?

More conferences past and present about the MBT work of my Protocols Team.

Wolfgang Grieskamp : ETAPS MBT 2008 - Using Model-Based Testing for Quality Assurance of Protocol Documentation
Wolfgang Grieskamp : ICST 2008 Model-Based Quality Assurance of Windows Protocol Documentation
Nico Kicillof : QSIC 2008Model-Based Quality Assurance of the SMB2 Protocol Documentation

May 11

Suprising Fit for Software Testing?

From http://hbswk.hbs.edu/item/5869.html  (Harvard Business school - Published: April 14, 2008, Author: Martha Lagace)

Software analysts and programmers live to innovate—but hate to run tests. Yet top-notch testing saves many a company money when bugs are caught early.

The majority of a Danish consultancy's testers have Asperger syndrome or a form of autism spectrum disorder.
• Software testing requires superb powers of concentration combined with tolerance (even preference) for routine tasks.

I hear complaints all the time from testers who have to run routine tests over and over again.  If that is the task a company gives testers then the testers need to change something.  

 

If the tests are repetitive and needed -- automate them.  Humans shouldn't repeat what computers can do.

If the tests are repetitive and not needed -- convince management that they are not needed and stop running them!

If management can't be convinced to avoid repetitive, unnecessary, and especially difficult to automate tests -- suggest they use the Danish consultancy in the article.

 

Testers should be creative - either in their automation or in their exploration of the system under test.  Repeatedly run tests typically have low bug finding ability.  Management likes the idea of avoiding regressions by repeatedly running the same tests.  Regression tests should be automated.  

 

Many products get released with low regressions (from running the same tests), but still with high bug rates!  Because they spend too much time avoiding regressions and not enough time finding bugs.

 

 

 

March 06

Microsoft Geek Secrets Finally Revealed

Click here for the bestOpen-mouthed of 30,000 pages of never-before-seen insight into the Redmond lifestyle.

February 28

ICST 2008 - Model-based quality assurance of windows protocol documentation

At  ICST 2008 : First International Conference On Software Testing, Verification And Validation
Lillehammer, Norway April 9-11, 2008

My colleague, Wolfgang will be presenting our paper:

259: Model-based quality assurance of windows protocol documentation
Wolfgang Grieskamp, Microsoft Research; Dave MacDonald, Nico Kicillof, Alok Nandan, Keith Stobie, and Fred Wurden, Microsoft, USA

ICST includes four sessions on Model-based testing each with 4 or more talks among many other things.  Book now!

Preceeding the conference is the 4th Workshop on Advances in Model Based Testing (A-MOST 2008) which includes Robert Binder of MVerify on the Programme Committee.  I've been working with Bob (whom I first met while we were on the board of Quality Week) recently on projects related to our protocol testing.

Testing Service Compatibility - updating services in a set of connected services.

Last summer in my Conference of the Association for Software Testing (CAST) keynote "Testing Web Services" and again with my Pacific Northwest Quality Conference (PNSQC) presentation (70-Stobie-esting Web Services.doc inside the proceedings.zip) you will see a reference

[6]     Keith Stobie, Service Compatibility
<to appear on msdn Tester Center site>
Well it took longer than I thought, but it is finally there in the TesterCenter Library:

Service Compatibility    This article describes what a tester should consider when updating services in a set of connected services.

The new paper just adds a little more detail and reference to that section of the conference papers about rolling out new services.

February 21

Open Protocol Specifications

News Flash -- my semi-secret project has just been outed!    You can read the press announcement etc.
I work at verifying the usability and accuracy of protocol documents which are now all publicly available on MSDN.
Some of the things my team facilitates:

It's an exciting time.  Interoperability and protocols are really catching fire and my team's Model-Based Testing (MBT) approach based on Spec Explorer is going well also.  Finally, the long awaited, "Model-Based Software Testing and Analysis with C#", is out in stores!   Pick up your copy today (mine is autographed by the authors).  You can get a feel for my brand of MBT reading the book and using the free, open source, Nmodel toolkit.   Spec Explorer is essentially just a more advanced version of NModel.

We've built numerous model-based test suites for verifying the published protocol documents.  

By the way, if all this sounds exciting to you, my team is looking to hire my peer.  That is, we have an opening for a Software Test Architect.
http://members.microsoft.com/careers/search/details.aspx?JobID=E925F2F5-2AD5-46BA-886F-E391BBC662BC
If you're curious about Test Architects at Microsoft you can read about another great peer of mine, David.  We worked on refining each other's notion of Testability.

Finally, check out the ever popular "Book Bytes" on the Tester Center site.

View more entries
 
Updated 10/27/2005
Updated 10/18/2005
Updated 6/11/2008
Thanks for visiting!
View space
Scott Barber