SCOUG-Programming Mailing List Archives
Return to [ 20 |
April |
2004 ]
<< Previous Message <<
>> Next Message >>
Content Type: text/plain
Zdenek Jizba has offered to demonstrate his means of testing
his APL programs. I have offered him a suitable machine to
present his process in our May meeting.
In the SDP testing is the fifth stage. In theory, in software
project management and scheduling, commonly we allocated
time for testing equal to twice that for the four stages
preceding it, i.e. testing gets half the total time. In practice
due to the first four stages, particularly construction,
exceeding their estimates and a general unwillingness to
extend the total time, testing gets short changed.
We can decompose testing into a set of test cases, the test
cases themselves into a set of test scripts, and the test scripts
individually into required test data. Ideally each test case has
one test script with data for one test. In such an ideal world
we could in theory perform all test cases in parallel instead of
sequentially. That would reduce the total test time required
for a single comprehensive test to that of time for the longest
test case.
Each test case assumes a set environment, i.e. an initial state,
for each test case. Parallel execution then requires a set of
environments equal to the number of test cases. Sequential
execution requires setting or resetting the environment for
each test case. In either instance you have an initial
environment into which you introduce the test data values,
execute the test, and a resulting environment of changed
data values. The test case itself requires that both initial
values and test results be known prior to execution of the
test, i.e. that this set of input values produces this set of
outputs, in order for verification of test results to occur.
Notice that you manually have to determine the test cases,
write the test scripts, write the initial test data values, and
write the resulting data values. You can begin to write test
cases for the specifications, providing they are complete
enough with respect to the programs, or you can wait until
you have the programs. Depending on when you can start
such writing determines the amount of overlap of test case
preparation with respect to the first four stages.
Now during software development itself changes occur,
planned changes to specifications and changes to program
logic. Such changes require an examination of and
modification to test cases, their scripts, and test data. Just as
those changes take time to ripple through the first four
stages. They take similar time to reflect in test cases.
In point of fact the previous does not occur in practice. The
previous outlines a complete, deliberate, detailed testing
process with no randomness. If that occurred, then beta
testing and the need for beta testers would not. Beta testing
only occurs because complete testing as outlined cannot due
to either cost or time considerations.
In almost every instance of enterprise-developed software
the enterprise releases a "production" version, knowing full
well that errors exist. Thus they employ their users as beta
testers. Experience indicates that vendor-developed software
employs their users in the same manner, following any formal
period of beta testing with a production version providing an
informal (and indefinite) period of further beta testing.
Now software based on logic programming and the use of a
two-stage proof engine, a completeness proof and an
exhaustive true/false proof offers a means of automatic
testing complete in every sense in terms of test cases, test
scripts, and test data with minimal manual writing involved.
This occurs because logic programming offers two basic forms
of logic, clausal and predicate. They differ in that the clausal
logic form, e.g. SQL and Prolog, require external creation of
data while the predicate logic form, e.g. Trilogy, will create,
i.e. enumerate, all possible sets of test data based upon the
rules given for that data, i.e. the range of input values.
This doesn't change the fact that verification must still occur
manually. We do not violate any proof that software cannot
prove its own correctness. We do, however, have a means of
generating test data dynamically that completely tests the
logic of any program regardless of any change to that logic
over the course of the software's life cycle.
This results in logic programming not only automating the
stages of analysis, design, and construction, leaving only
specification as a manual writing function, but also extending
this automation to software testing as well.
=====================================================
To unsubscribe from this list, send an email message
to "steward@scoug.com". In the body of the message,
put the command "unsubscribe scoug-programming".
For problems, contact the list owner at
"rollin@scoug.com".
=====================================================
<< Previous Message <<
>> Next Message >>
Return to [ 20 |
April |
2004 ]
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Copyright 2001 the Southern California OS/2 User Group. ALL RIGHTS
RESERVED.
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
|