QA, Testing and Testers


I saw a very thought-provoking question on StackOverflow about QA and testing.  Thought-provoking because it reflects a limiting view of QA.


Posted at 05:43 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Unit Test Coverage


What is the right level of coverage?  100% Logic Paths?  100% Code?


Posted at 03:22 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Conflating Test and Debug


One of the problems people have with TDD (or test-driven reverse engineering) is conflating testing and debugging.  In the olden days, they were the same thing -- you debugged by running tests or you debugging during the testing phase of the project.  

They're separate things.


Posted at 01:06 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Tooling to Build Test Cases


For many business applications you'll have piles of examples.  Once I had four spreadsheets, eight to a dozen tabs per sheet, two to a dozen examples per tab.  This was 90+ individual examples, each showing some unique combination of obscure special cases.

In data warehousing, the ETL processing will include lots of examples of transformations from the source application to the final warehouse dimension and fact definitions.  In health insurance processing, similarly, there will be a pile of exceptions, extensions, amendments and special cases.

When confronted with lots of test cases, I can't be trusted to write unittest TestCases by hand.  Python to the rescue.


Posted at 09:11 AM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

The Joy of Unit Testing


The customer says "This case doesn't work."  I say, "Really?" And add it to the unit tests.  Guess what I discovered?


Posted at 05:46 AM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Risk-Based Testing


I don't like the word "risk", it makes things sound random.  Risk-Based Testing really a strategy for setting priorities based on "importance"; usually the costs associated with the problems that are found.  There's no "risk" -- as in random event -- involved.  It's all about priorities.  

Indeed, the priorities are just the same priorities that drive the Scrum process backlog.  I don't think Risk-Based Testing offers us anything above and beyond basic Agile practices.


Posted at 06:29 AM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Consequences of Reverse Engineering


If you need to have your icky old software reverse engineered, we're going to find "things" and "situations" you can't explain.  The code is clearly bad, but is in production.  What do we do?  Fix it?  Preserve it?  Try to figure out if it doesn't really matter?


Posted at 07:43 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

I Thought It Was Just Me


In talking about TDD, I've been making little tweaks and adjustments. Recently, I read an article in DDJ with some additional suggestions for improvement.


Posted at 09:52 AM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Not Quite Following the Book


Sticky Minds sends me their Better Software Magazine.  Good stuff on how to do Test Driven Development well.  Stuff I was doing unconsciously.  The article helped me see what I was doing and why.


Posted at 04:23 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Lenses that Distort our Software: Flat Files, Relational Databases, Batch Processing


A procedural program tied to a database presents some reverse engineering challenges. I'm growing more reluctant to use the neutral-sounding "procedural programming" and think I'll switch to "procedure-only" programming.


Posted at 08:49 AM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Is it really test driven reverse engineering?


When embarking on reverse engineering something big (over 10,000 lines of code) can you really call it test driven?  Or is it just test aware?  Or test friendly?


Posted at 05:28 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Obscure C-isms and How To Find Them


Reverse engineering C is bad enough even when the C is gloriously well-written.  When obscurity prevails, however...


Posted at 10:05 AM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to:        

Deconstructing Programs from C; or Finding The Objects™


As long as it's reasonably well-written C, it's not so bad.  You can rewrite it as Java or Python.  Sometimes you can almost find the object classes.  Other times, you really have to dig.  Python gives you a lot of intellectual leverage, even if the final product is Java.


Posted at 09:26 PM     Read More  
Author: Steven Lott
Technorati Tags:
Technorati Cosmos: Technorati Cosmos
Technorati Watchlist: Technorati Watchlist
Add this entry to: