Patentable/Patents/US-8799868
US-8799868

Method and apparatus for the performing unit testing of software modules in software systems

PublishedAugust 5, 2014
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

In a method and apparatus of performing unit testing of a software module, the method provides for reading, by a computer, target data and discovering of functional aspects of a piece of software code, dividing the target data into chunks, estimating a plurality of decision/condition statements of the software code, estimating an amount of possible test cases based on the program inputs, defining a data set over the plurality of identified decisions/conditions, finding subset relationships between all the defined data sets, defining a plurality of optimal data sets, classifying the condition of the plurality of optimal data sets by category, refining the plurality of optimal data sets, and calculating the best amount of data sets.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of performing unit testing of a software module, comprising: identifying, by a computer, functional aspects of a piece of software code; identifying a plurality of decision/condition statements of the piece of software code; estimating an amount of possible test cases based on the plurality of identified decision/condition statements; defining a data set over the plurality of identified decision/condition statements; finding subset relationships between all the defined data sets; defining a plurality of optimal data sets, the defining a plurality of optimal data sets including defining at least two data sets for each of said identified decision/condition statements, a first data set characterized as true and a second data set characterized as false; classifying each decision/condition statement into one of a plurality of decision/condition categories including at least a sequential decision/condition category and a nested decision/condition category; refining the plurality of optimal data sets by overlapping at least a subset of the plurality of decision/condition statements based on the decision/condition category classifications of the decision/condition statements, and calculating a reduced amount of data sets as compared with the plurality of optimal data sets based on the refined optical data sets, the reduced amount comprising an amount that provides optimal coverage with a minimal number of test cases.

2

2. The method according to claim 1 , further comprising receiving programming code having a condition expressed therein.

3

3. The method according to claim 1 , further comprising transforming the code to be tested, either partially or integrally.

4

4. The method according to claim 1 , further comprising iteratively repeating steps of: finding subset relationships between all the defined data sets; defining a plurality of optimal data sets; classifying each decision/condition statement into one of the plurality of decision/condition categories; refining the plurality of optimal data sets, and calculating the reduced amount of data sets of said method until a diminished amount of data sets is obtained that provides optimum test coverage.

5

5. The method according to claim 1 , further comprises generating a document that includes one or more identified classes, functions, parameter types, and parameters of said piece of software code to be unit tested.

6

6. The method according to claim 5 , wherein the document comprises an XML document.

7

7. The method according to claim 1 , further comprising generating at least one report regarding the results of the one or more unit tests.

8

8. The method according to claim 7 , wherein the at least one report includes pass/fail information regarding at least one of the one or more unit tests.

9

9. The method according to claim 8 , wherein pass/fail information regarding at least one of the one or more unit tests further includes information regarding one or more of the identified functions.

10

10. The method according to claim 1 , wherein the method is performed either manually or semi-automatically.

11

11. An apparatus in communication with a computer readable recording medium, comprising: a processor; and a memory, the processor coupled to the memory, the memory comprising therein a software program to be executed on said processor, the software program for performing unit testing of a software module, the software module comprising an external interface comprising one or more input variables having unknown values, a plurality of possible program execution paths which may result from an execution of said software module, each of said program execution paths comprising one or more outcomes of one or more of said conditional expressions comprised in said software module, the software program implementing program steps of: identifying functional aspects of a piece of software code; identifying a plurality of decision/condition statements of the piece of software code; estimating an amount of possible test cases based on the plurality of identified decision/condition statements; defining a data set over the plurality of identified decision/condition statements; defining data sets over the plurality of decision/condition statements, the defining data sets including defining at least two data sets for each of said identified decision/condition statements, a first data set characterized as true and a second data set characterized as false; finding subset relationships between all the defined data sets; defining a plurality of optimal data sets; classifying each decision/condition statement into one of a plurality of decision/condition categories including at least a sequential decision/condition category and a nested decision/condition category; refining the plurality of optimal data sets by overlapping, at least a subset of the plurality of decision/condition statements based on the decision/condition category classifications of the decision/condition statements, and calculating a reduced amount of data sets as compared with the plurality of optimal data sets based on the refined optical data sets, the reduced amount comprising an amount that provides optimal coverage with a minimal number of test cases.

12

12. The apparatus according to claim 11 , further comprising at least one of a display, a user input interface, and a network interface.

13

13. The apparatus according to claim 11 , wherein said software module to be tested is inputted to said processor via said user input interface.

14

14. The apparatus according to claim 11 , wherein said processor runs a unit testing application module comprising at least one of a parsing module, a unit testing module, a test case document generator, a report generating module.

15

15. The apparatus according to claim 11 , wherein the apparatus may interact with subject software, may produce test case documents, may report unit testing results, and/or may include other interaction or output.

16

16. A computer program product comprising a non-transitory computer-readable medium having recorded thereon a software program to be executed on a computer, the non-transitory computer readable medium being able to prompt a server in the computer network to perform unit testing of a software module, the software module comprising an external interface comprising one or more input variables having unknown values, a plurality of possible program execution paths which may result from an execution of said software module, each of said program execution paths comprising one or more outcomes of one or more of said conditional expressions comprised in said software module, the software program implementing program steps of: identifying functional aspects of a piece of software code; identifying a plurality of decision/condition statements of the piece of software code; estimating an amount of possible test cases based on the plurality of identified decision/condition statements; defining a data set over the plurality of identified decision/condition statements; defining data sets over the plurality of decision/condition statements, the defining data sets including defining at least two data sets for each of said identified decision/condition statements, a first data set characterized as true and a second data set characterized as false; finding subset relationships between all the defined data sets; defining a plurality of optimal data sets; classifying each decision/condition statement into one of a plurality of decision/condition categories including at least a sequential decision/condition category and a nested decision/condition category; refining the plurality of optimal data sets by overlapping at least a subset of the plurality of decision/condition statements based on the decision/condition category classifications of the decision/condition statements, and calculating a reduced amount of data sets as compared with the plurality of optimal data sets based on the refined optical data sets the reduced amount comprising an amount that provides optimal coverage with a minimal number of test cases.

17

17. The computer program product according to claim 16 , further comprising receiving programming code having a condition expressed therein.

18

18. The computer program product according to claim 16 , further comprising transforming the code to be tested, either partially or integrally.

19

19. The computer program product according to claim 16 , further comprising iteratively repeating steps of: finding subset relationships between all the defined data sets; defining a plurality of optimal data sets; classifying each decision/condition statement into one of the plurality of decision/condition categories; refining the plurality of optimal data sets, and calculating the reduced amount of data sets until the a diminished amount of data sets is obtained that provides optimum test coverage.

20

20. The computer program product according to claim 17 , further comprises generating a document that includes one or more identified classes, functions, parameter types, and parameters of said piece of software code to be unit tested.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

April 18, 2011

Publication Date

August 5, 2014

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Method and apparatus for the performing unit testing of software modules in software systems” (US-8799868). https://patentable.app/patents/US-8799868

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.