Claims
- 1. A method for assessing adequacy of message flow testing, comprising:
defining coverage criteria for testing a message flow through a set of message flow elements; determining a message-flow-coverage-goal for the message flow with respect to the coverage criteria; designing a test suite responsive to the message-flow-coverage-goal; applying the test suite to the message flow to generate a coverage result for the set of message flow elements; and comparing the coverage result with the message-flow-coverage-goal.
- 2. A method according to claim 1, wherein the message flow comprises a message-oriented software program wherein a message is a primary architectural element.
- 3. A method according to claim 1, wherein the message flow is comprised in a message-oriented middleware application.
- 4. A method according to claim 1, wherein the message flow comprises a visual program describing processing logic as a directed graph and wherein the message flow comprises an independent function, outside of a messsage sender or message receiver.
- 5. A method according to claim 1, wherein the message flow comprises a program processing a message produced by an application chosen from one of a group of applications comprising a client application and a server application.
- 6. A method according to claim 5, wherein the application comprises a message-sending-application and a message-receiving-application executing on different hardware platforms.
- 7. A method according to claim 6, wherein the message-sending-application and the message-receiving-application are implemented using different software and architectural paradigms.
- 8. A method according to claim 1, wherein the message flow elements comprise at least one element chosen from messages, nodes, connections, terminals, statements, conditions, external resources, and exceptions.
- 9. A method according to claim 1, wherein defining the coverage criteria comprises selecting a coverage model from at least one of processing node coverage, terminal coverage, connection coverage, path coverage, N-node coverage, statement coverage, multiple condition coverage, exception coverage, external resources coverage, and message content coverage.
- 10. A method according to claim 1, wherein determining the message-flow-coverage-goal comprises establishing a required coverage level for at least one of the coverage criteria.
- 11. A method according to claim 1, wherein applying the test suite to the message flow comprises:
performing an execution of at least a part of the test suite; and evaluating an attained coverage level resulting from the execution.
- 12. A method according to claim 11, wherein evaluating the attained coverage level comprises:
visiting one or more nodes during the execution of the at least part of the test suite; comparing a number of processing nodes visited to a total number of all processing nodes in the message flow; and computing a processing node coverage metric responsive to the comparison.
- 13. A method according to claim 12, wherein visiting the one or more nodes comprises entering a simple node.
- 14. A method according to claim 12, wherein visiting the one or more nodes comprises entering a compound node and visiting zero or more nodes in a constituent sub-flow.
- 15. A method according to claim 11, wherein evaluating the attained coverage level comprises:
traversing one or more terminals during the execution of the at least part of the test suite; comparing a number of processing node terminals traversed to a total number of processing node terminals in the message flow; and computing a terminal coverage metric responsive to the comparison.
- 16. A method according to claim 11, wherein evaluating the attained coverage level comprises:
traversing one or more connections during the execution of the at least part of the test suite; comparing a number of connections traversed to a total number of connections in the message flow; and computing a connection coverage metric responsive to the comparison.
- 17. A method according to claim 11, wherein evaluating the attained coverage level comprises:
selecting a group of one or more sets of N-nodes from the message flow, wherein N comprises any whole number less than or equal to a total number of nodes in the message flow; performing at least one execution of the message flow so as to determine a number of nodes visited in each of the one or more sets during the at least one execution; generating a respective set coverage result for each of the one or more sets, responsive to the number of nodes visited; determining a number of covered-sets, responsive to the set coverage results; comparing the number of covered-sets to a total number of sets in the group; and computing an N-node coverage metric responsive to the comparison.
- 18. A method according to claim 11, wherein evaluating the attained coverage level comprises:
performing zero or more runtime exceptions during the execution of the at least part of the test suite; comparing a number of runtime exceptions performed to a total number of all runtime exceptions in the message flow; and computing an exception coverage metric responsive to the comparison.
- 19. A method according to claim 11, wherein evaluating the attained coverage level comprises:
visiting zero or more failure terminals during the execution of the at least part of the test suite; comparing a number of failure terminals visited to a total number of all failure terminals in the message flow; and computing an exception coverage metric responsive to the comparison.
- 20. A method according to claim 11, wherein evaluating the attained coverage level comprises:
executing zero or more node statements at least once during the execution of the at least part of the test suite; comparing a number of node statements executed to a total number of node statements in the message flow; and computing a statement coverage metric responsive to the comparison.
- 21. A method according to claim 20, wherein computing the statement coverage metric comprises comparing a number of node statements executed in a single node to a total number of node statements in the single node.
- 22. A method according to claim 20, wherein computing the statement coverage metric comprises comparing a number of node statements executed in a compound node's constituent sub-flows to a total number of node statements in the compound node's constituent sub-flows.
- 23. A method according to claim 11, wherein evaluating the attained coverage level comprises:
assessing an achievement of true and false values for each of zero or more boolean sub-expressions independently during the execution of the at least part of the test suite; comparing the achievement for the one or more boolean sub-expressions to a total number of boolean sub-expression values possible in the message flow; and computing a multiple condition coverage metric responsive to the comparison.
- 24. A method according to claim 23, wherein computing the multiple condition coverage metric comprises comparing a number of achieved true and false values for zero or more boolean sub-expressions in a node to a total number of boolean sub-expression values possible in the node.
- 25. A method according to claim 23, wherein computing the multiple condition coverage metric comprises comparing a number of achieved true and false values for zero or more boolean sub-expressions in a compound node's constituent sub-flows to a total number of boolean sub-expression values possible in the compound node's constituent sub-flows.
- 26. A method according to claim 11, wherein evaluating the attained coverage level comprises:
assessing a number of values assumed by each of one or more fields in a message during the execution of the at least part of the test suite; comparing the number of values assumed to a total number of possible values for each field in the message; and computing a message content coverage metric responsive to the comparison.
- 27. A method according to claim 26, and comprising computing a strong message content coverage metric wherein the total number of values possible for each field in the message comprises a cross product of the message fields with their possible values.
- 28. A method according to claim 26, and comprising computing a weak message content coverage metric wherein the total number of values possible for each field in the message comprises a sum of the number of possible values for each message field independently.
- 29. A method according to claim 11 wherein evaluating the attained coverage level comprises:
traversing one or more paths during the execution of the at least part of the test suite; comparing a number of paths traversed to a total number of paths in the message flow; and computing a path coverage metric responsive to the comparison.
- 30. A method according to claim 11, wherein evaluating the attained coverage level comprises:
performing zero or more types of accesses to an external resource during the execution of the at least part of the test suite; comparing a number of types of accesses performed to a total number of types of accesses in the message flow; and computing a external resources coverage metric responsive to the comparison.
- 31. A method according to claim 1, wherein designing the test suite responsive to the message-flow-coverage-goal comprises:
identifying an initial test suite for the message flow; assessing a coverage level achieved by the initial test suite; and adding additional tests to the initial test suite so as to increase the coverage level.
- 32. A method according to claim 1, wherein applying the test suite comprises generating message-flow-coverage-reports.
- 33. A method according to claim 29, and comprising integrating the message-flow-coverage-reports into a visual message flow development environment.
- 34. A method according to claim 1, and comprising reporting coverage graphically using at least one graphical element chosen from a set of color, shading, highlighting, graphing, fonts, line styles, icons, and labels.
- 35. A method according to claim 1, and comprising reporting coverage via at least one medium chosen from hard-copy media and electronic media.
- 36. A method according to claim 1, wherein generating the coverage result comprises collecting coverage data using at least one method of data collection chosen from message flow instrumentation and data logging.
- 37. Apparatus for assessing adequacy of message flow testing, comprising a computer system which is adapted to define coverage criteria for testing a message flow through a set of message flow elements, determine a message-flow-coverage-goal for the message flow with respect to the coverage criteria, design a test suite responsive to the message-flow-coverage-goal, apply the test suite to the message flow to generate a coverage result for the set of message flow elements, and compare the coverage result with the message-flow-coverage-goal.
- 38. A computer software product for assessing adequacy of message flow testing, comprising a computer-readable medium having computer program instructions recorded therein, which instructions, when read by a computer, cause the computer to define coverage criteria for testing a message flow through a set of message flow elements, determine a message-flow-coverage-goal for the message flow with respect to the coverage criteria, design a test suite responsive to the message-flow-coverage-goal, apply the test suite to the message flow to generate a coverage result for the set of message flow elements, and compare the coverage result with the message-flow-coverage-goal.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/274,320, filed Mar. 8, 2001, which is assigned to the assignee of the present invention and which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60274320 |
Mar 2001 |
US |