Thursday, August 02, 2007

Want to help me regression test the PL/SQL language?

As I hope many readers of my blog know, I have gotten rather obsessed with helping PL/SQL developers test their programs more effectively.

Back in 2000, I released utPLSQL, the Junit analogue for PL/SQL. It was (and is) a big advance over 100% hand-coding tests, but it still requires you to write hundreds, even thousands of lines of code. That fact will always greatly limit who will use that open source utility.

So in 2005, I decided to try again and with the help of many at Quest, we have produced Quest Code Tester for Oracle, a truly amazing automated testing tool that generates almost all of your test code.

Well, I had a brainstorm rumbling around in my head when I woke up this morning:

Wouldn't it be cool beyond cool to build a regression test in Code Tester for the built-ins of the PL/SQL language themselves?

Sure, Oracle has their own extensive regression tests, but we could all have our own! Want to ensure that SUBSTR really does all it is supposed to do? Run the test. Want to make sure that a new version of PL/SQL doesn't have any obvious or critical bugs? Run the test.

I have already "thrown together" a PL/SQL package that will work as a pass through to the programs in STANDARD. We can use Quest Code Tester to specify tests against this API, which will in turn exercise the underlying PL/SQL code.

Well....I am just turning this idea over in my head for now, but thought I would share it with the world....I certainly couldn't do this by myself, but as a community, hundreds of PL/SQL developers certainly could pull this off.

It would be like SETI@home. We could call it testPLSQL@home.

So what do you think? Interested in participating? Feel free to drop me a note and let me know:


Patrick Barel said...

Do you have a list of programs that should be tested? I'm sure we can generate the code using CodeGen. Looks like a fairly easy script that should be created to generate all the code.

Steven Feuerstein said...

Thanks, Patrick. In fact, I did use CodeGen to gen the package body from the spec that I cut and pasted from the standard package.