IP Library Granted Patent US 9,141,519
Granted Patent B2
US 9,141,519 · App. 12/897,790 · Granted Sep 22, 2015

Accurate identification of software tests based on changes to computer software code

Inventors: Sriram Subramanian (Bangalore, IN); Rajasekar Venkatesan (Bangalore, IN); Manjunath Bandi (Bangalore, IN); Varatharajan Irusappan (Tamil Nadu, IN); Anand Pritam (Bhagalpur, IN)
Assignee: Infinera Corporation
G06F11/3676G06F11/368G06F11/3672
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,141,519
App. No.
12/897,790
Granted
Sep 22, 2015
Kind
B2
Abstract

Consistent with the present disclosure, a block of software code or “software code block” that is executed while particular tests are carried out is assigned a software code block identifier, which is associated with test identifiers, which, in turn, identify the tests that were performed. The software code block identifiers and corresponding test identifiers are then stored in a database. When a portion of the software code block is later modified, either by a change to one or more lines of the code or by deleting or adding code, the corresponding software code block identifier is determined or selected, and then used to access the corresponding test identifiers from the database. The test identifiers are then used to generate a report, for example, that lists each test to be performed in order to determine whether the modified software code block operates properly. The above processes of assigning and storing software code block identifiers and test identifiers may be automated, thereby increasing the likelihood that a complete set of correct tests are performed on the modified software code block. As a result, reliability of the software is improved.

Claims (48)

1. A method, comprising:

storing a plurality of test identifiers and a plurality of software code block identifiers in a first data base, such that each of the plurality of test identifiers identifies a corresponding one of a plurality of tests and each of the plurality of software code block identifiers being associated with at least one of the plurality of test identifiers, each of the plurality of tests being associated with supplying a plurality of electrical inputs to a processor circuit and detecting a plurality of electrical outputs from the processor circuit when the processor circuit executes a corresponding one of the plurality of software code blocks, each of the plurality of software code block identifiers identifying a corresponding one of a plurality of software code blocks;

changing a portion of one of the plurality of software code blocks;

storing the changed portion of said one of the plurality of software code blocks in one of the first data base and a second data base;

storing information identifying a location of the changed portion in said one of the plurality of software code blocks in one of the first data base and a second data base, the information being a line number corresponding to the location of the changed portion in said one of the plurality of software code blocks;

determining one of the plurality of software code block identifiers associated with said one of the plurality of software code blocks based on the line number;

selecting a group of the plurality of test identifiers based on said one of the plurality of software code block identifiers, the group of the plurality of test identifiers including more than one of the plurality of test identifiers; and

identifying a group of the plurality of tests associated with the selected group of the plurality of test identifiers, the group of the plurality of tests including more than one of the plurality of tests.

2. A method in accordance with claim 1 , further including performing each test of the group of the plurality of tests.

3. A method in accordance with claim 1 , further including:

generating a report that lists the identified group of the plurality of tests.

4. A method in accordance with claim 1 , further including storing, in the data base, data associated with the detected plurality of electrical outputs associated with said each of the plurality of tests.

5. A method in accordance with claim 1 , wherein the software code blocks include network element software.

6. A method in accordance with claim 1 , wherein the software code blocks include network management software.

7. A method in accordance with claim 1 , wherein one of the plurality of tests generates data that includes monitoring information associated with an optical communication system.

8. A method in accordance with claim 1 , wherein said one of the plurality of software code blocks includes a plurality of lines of code, said changing the portion of one of the plurality of software code blocks includes changing at least one of the plurality of lines of code.

9. A non-transitory computer-readable medium storing a computer program for instructing a programmable computer to implement a method of:

storing a plurality of test identifiers and a plurality of software code block identifiers in a data base, such that each of the plurality of test identifiers identifies a corresponding one of a plurality of tests and each of the plurality of software code block identifiers being associated with at least one of the plurality of test identifiers, each of the plurality of tests being associated with supplying a plurality of electrical inputs to a processor circuit and detecting a plurality of electrical outputs from the processor circuit when the processor circuit executes a corresponding one of the plurality of software code blocks, each of the plurality of software code block identifiers identifying a corresponding one of a plurality of software code blocks;

changing a portion of one of the plurality of software code blocks;

storing the changed portion of said one of the plurality of software code blocks in one of the first data base and a second data base;

storing information identifying a location of the changed portion in said one of the plurality of software code blocks in one of the first data base and a second data base, the information being a line number corresponding to the location of the changed portion in said one of the plurality of software code blocks;

determining one of the plurality of software code block identifiers associated with said one of the plurality of software code blocks based on the line number;

selecting a group of the plurality of test identifiers based on said one of the plurality of software code block identifiers, the group of the plurality of test identifiers including more than one of the plurality of test identifiers; and

identifying a group of the plurality of tests associated with the group of the plurality of test identifiers, the group of the plurality of tests including more than one of the plurality of tests.

10. A non-transitory computer-readable medium in accordance with claim 9 , wherein the method further includes performing each test of the group of the plurality of tests.

11. A non-transitory computer-readable medium in accordance with claim 9 , wherein the method further includes:

generating a report that lists the identified group of the plurality of tests.

12. A non-transitory computer-readable medium in accordance with claim 9 , wherein the method further includes storing, in the data base, data associated with the detected plurality of electrical outputs associated with said each of the plurality of tests.

13. A non-transitory computer-readable medium in accordance with claim 9 , wherein one of the plurality of tests generates data that identifies a characteristic of an optical amplifier.

14. A non-transitory computer-readable medium in accordance with claim 13 , wherein the characteristic is a gain of the optical amplifier.

15. A non-transitory computer-readable medium in accordance with claim 9 , wherein one of the plurality of tests generates data that includes monitoring information associated with an optical communication system.

16. A non-transitory computer-readable medium in accordance with claim 9 , wherein said one of the plurality of software code blocks includes a plurality of lines of code, said changing the portion of one of the plurality of software code blocks includes changing at least one of the plurality of lines of code.

17. An apparatus, comprising:

a first database that stores a plurality of test identifiers and a plurality of software code block identifiers, such that each of the plurality of test identifiers identifies a corresponding one of a plurality of tests and each of the plurality of software code block identifiers being associated with at least one of the plurality of test identifiers, each of the plurality of tests being associated with supplying a plurality of electrical inputs to first processor circuitry and detecting a plurality of electrical outputs from the first processor circuitry when the first processor circuitry executes a corresponding one of the plurality of software code blocks, each of the plurality of software code block identifiers identifying a corresponding one of a plurality of software code blocks;

a second database that stores a changed portion of one of the plurality of software code blocks and information identifying a location of the changed portion in said one of the plurality of software code blocks, the information being a line number corresponding to the location of the changed portion in said one of the plurality of software code blocks; and

second processor circuitry that determines one of the plurality of software code block identifiers associated with said one of the plurality of software code blocks based on the line number, selects a group of the plurality of test identifiers said one of the plurality of software code block identifiers, identifies a group of the plurality of tests associated with the group of the plurality of test identifiers,

the group of the plurality of test identifiers including more than one of the plurality of test identifiers, and

the group of the plurality of tests including more than one of the plurality of tests.

18. An apparatus in accordance with claim 17 , wherein the first databases stores data associated with the detected plurality of electrical outputs associated with said each of the plurality of tests.

19. An apparatus, comprising:

a first database that stores a plurality of test identifiers and a plurality of software code block identifiers, such that each of the plurality of test identifiers identifies a corresponding one of a plurality of tests and each of the plurality of software code block identifiers being associated with at least one of the plurality of test identifiers,

a processor circuit, each of the plurality of tests being associated with supplying a plurality of electrical inputs to the processor circuit and detecting a plurality of electrical outputs from the processor circuit when the processor circuit executes a corresponding one of the plurality of software code blocks, each of the plurality of software code block identifiers identifying a corresponding one of a plurality of software code blocks; and

a second database that stores a changed portion of one of the plurality of software code blocks and information identifying a location of the changed portion in said one of the plurality of software code blocks, the information being a line number corresponding to the location of the changed portion in said one of the plurality of software code blocks,

wherein the processor circuit determines one of the plurality of software code block identifiers associated with said one of the plurality of software code blocks based on the line number, selects a group of the plurality of test identifiers based on said one of the plurality of software code block identifiers, and identifies a group of the plurality of tests associated with the group of the plurality of test identifiers,

the group of the plurality of test identifiers including more than one of the plurality of test identifiers, and

the group of the plurality of tests including more than one of the plurality of tests.

20. An apparatus in accordance with claim 19 , wherein the first database stores data associated with the detected plurality of electrical outputs associated with said each of the plurality of tests.

21. An apparatus in accordance with claim 19 , wherein the plurality of software code blocks include network management software that monitors an optical communication network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2011
From: SUBRAMANIAN, SRIRAM; VENKATESAN, RAJASEKAR; BANDI, MANJUNATH; IRUSAPPAN, VARATHARAJAN; PRITAM, ANAND
To: INFINERA CORPORATION
Reel/Frame 025675/0551 →
Continuity (1)
Related Publication 20120084756A1 · Apr 5, 2012