The disclosed herein relates to a method for failure rate prediction of a feature of a system under development. The method is executed by a processor coupled to a memory. The method includes defining a feature state of the feature during a predetermined time interval, the predetermined time interval being associated with a development stage of the system. The method also includes assigning a first defect class value to the feature for the predetermined time interval, the first defect class value configured to indicate a first condition and selecting, when a defect is reported for the feature, a second defect class value indicating a second condition, the second condition being associated with a higher failure rate than the first condition. The method can be embodied in system and a computer program product.
|
11. A system, comprising a processor and a memory storing program instructions for creating a training set for failure rate prediction of a feature of a system under, and in parallel with development thereon, the program instructions executable by a processor to cause the system to perform:
defining a feature state of the feature during a respective predetermined time interval of a plurality of predetermined time intervals, each predetermined time interval being associated with a respective development stage of the system;
assigning a first defect class value to the feature for a first predetermined time interval, the first defect class value configured to indicate a first condition; and
designating the finite state for the first predetermined to a first condition training set for a machine learning algorithm;
assigning, when a defect is reported for the feature during a second predetermined time interval of the plurality of predetermined time intervals, of at least one iteration, a second defect class value indicating a second condition, the second condition being associated with a higher failure rate than the first condition;
designating the finite state for the second predetermined to a second condition training set for a machine learning algorithm; and
training a machine learning algorithm using the first condition training set and the second condition training set and determining by the trained machine learning algorithm the failure rate prediction for the system within development iterations of the system and at the end of the development.
1. A method for creating training sets for failure rate prediction of a feature of a system under, and in parallel with development, the method executed by a
processor coupled to a memory, comprising:
defining, by the processor, a finite state of the feature during a respective predetermined time interval of a plurality of predetermined time intervals, each predetermined time interval being associated with a respective development stage of the system;
assigning, by the processor, a first defect class value to the feature for a first predetermined time interval of the plurality of predetermined time intervals, the first defect class value configured to indicate a first condition; and
designating the finite state for the first predetermined time interval to a first condition training set for a machine learning algorithm;
assigning, by the processor and when a defect is reported for the feature during a second predetermined time interval of the plurality of predetermined time interval, of at least one iteration, a second defect class value indicating a second condition, the second condition being associated with a higher failure rate than the first condition;
designating the finite state for the second predetermined time interval to a second condition training set; and
training a machine learning algorithm using the first condition training set and the second condition training set and determining by the trained machine learning algorithm the failure rate prediction for the system within development iterations of the system and at the end of the development.
6. A computer program product, the computer program product comprising a computer readable storage medium having program instructions for creating a training set for failure rate prediction of a feature of a system under, and in parallel with development embodied therewith, the program instructions executable by a processor to cause the processor to perform:
defining a finite state of the feature during a respective predetermined time interval of a plurality of time intervals, each predetermined time interval being associated with a respective development stage of the system;
assigning a first defect class value to the feature for a first predetermined time interval of the plurality of predetermined time intervals, the first defect class value configured to indicate a first condition; and
designating the finite state for the first predetermined to a first condition training set for a machine learning algorithm;
assigning, when a defect is reported for the feature during a second predetermined time interval of the plurality of predetermined time intervals, of at least one iteration, a second defect class value indicating a second condition, the second condition being associated
with a higher failure rate than the first condition;
designating the finite state for the second predetermined to a second condition training set for a machine learning algorithm;
training a machine learning algorithm using the first condition training set and the second condition training set and determining by the trained machine learning algorithm the failure rate prediction for the system within development iterations of the system and at the end of the development.
2. The method of
further comprising:
receiving, for a subsequent time interval where a change to the feature occurred, the second defect class value.
7. The computer program product of
the processor to cause:
receiving, for a subsequent time interval where a change to the feature occurred, the second defect class value.
8. The computer program product of
9. The computer program product of
10. The computer program product of
12. The system of
receiving, for a subsequent time interval where a change to the feature occurred, the second defect class value.
15. The system of
|
The disclosure relates generally to training set creation for classifying features of a system under agile development.
In general, contemporary implementations of software development include a feature analysis tool to select and identify top risk items. The feature analysis tool can use finite state of a project and features, which identify whether the project is done and whether a state of each feature is known (e.g., correct or incorrect). If a defect in a particular feature is found, that feature is assigned to a ‘BAD’ class. Otherwise, that feature is assigned to an ‘OK’ class. However, because the features analysis tool only monitors a completed project, the feature analysis tool cannot identify when internal feature iterations fail. This is not acceptable for software development under an agile development model, which requires constant testing in parallel to development.
According to one embodiment, the disclosed herein relates to a method for failure rate prediction of a feature of a system under development. The method is executed by a processor coupled to a memory. The method includes defining a feature state of the feature during a predetermined time interval, the predetermined time interval being associated with a development stage of the system. The method also includes assigning a first defect class value to the feature for the predetermined time interval, the first defect class value configured to indicate a first condition and selecting, when a defect is reported for the feature, a second defect class value indicating a second condition, the second condition being associated with a higher failure rate than the first condition. The method can be embodied in system and a computer program product.
Additional features and advantages are realized through the techniques. Other embodiments and aspects thereof are described in detail herein and are considered a part of embodiments herein. For a better understanding of the advantages and the features of embodiments herein, refer to the description and to the drawings.
The subject matter herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The forgoing and other features, and advantages of the embodiments herein are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
In view of the above, embodiments disclosed herein may include a system, a method, and/or a computer program product (herein the system) that correlates feature states to finite period of time (e.g., iteration, week of development, sprint, etc.).
A feature can be a product feature/component of the system. Each product feature/component system can be represented by a feature index (e.g., name) and a finite state (e.g., period in time). For instance, a feature can be represented as Feature [i, j], where ‘i’ is a name of feature (e.g., identifier) and ‘j’ is a finite state (e.g., age).
The system also creates a training set for infinite state features (e.g., features in progress, features in development, or features that are not complete) to support failure prediction within development iterations and at the end of development. The system further determines if a feature in current state (e.g., under development) requires testing or not, which reduces a testing backlog and increases a testing efficiency.
Turning now to
The process flow 100 begins at block 110, where a feature state of the feature is defined during a predetermined time interval. Examples of feature states include, but are not limited to, under development, completed, pending review, etc. The predetermined time interval can be associated with a development stage of the system (e.g., as the system is being created on a code level such that the sum of its parts are not fully completed). At block 120, a first defect class value is assigned to the feature for the predetermined time interval. A class value is an alphanumerical value that indicates a condition (e.g., OK, BAD, etc.) of the feature (but it can also be boolean: true, false or numerical values: 0, 1). The first defect class value can be configured to indicate a first condition. At block 130, a second defect class value is selected when a defect is reported for the feature. The second defect class value can be configured to indicate a second condition. The second condition being associated with a higher failure rate than the first condition. The second defect class value can also be selected for a subsequent time interval where a change to the feature occurred. The change to the feature can correspond to the reported defect.
In general, to classify features (e.g., assign a class value), a training set is created. Turning now to
For instance, the schematic flow 200 divides each feature into finite states (iterations, sprints (e.g., code sprint), weeks). Note that a code sprint is a set amount of time, such as one to two days, a developer is allocated to write code. The schematic flow includes feature 1 developed across 3 sprints (e.g., features 201, 202, and 203, respectively identified as Feature[1, 1], Feature[1, 2], and Feature[1, 3]). Note that in Feature[1, 1], Feature[1,2], and Feature[1,3] the second digit represent finite state (i.e., sprint). Further, the schematic flow 200 can utilize and/or multiply historical data to enable a feature 1 analysis immediately in sprint 2 (e.g., no need to wait for feature completion).
For example, to test features in progress (e.g., still developed) or determine if a feature in current state requires testing or not, finite states are introduced as described above (e.g., to test a Feature[i, j], a Feature[i, j] is created to determine if a defect exists). If feature 1 in sprint 1 (e.g., Feature[1,1]) contains changes in class A.java (e.g., introduced in sprint 1), if a defect in the feature 1 in sprint 1 was found in sprint 2 (e.g., [, 2]), and if the feature 1 in sprint 1 was introduced/committed in sprint 1 (e.g., [, 1]), then Feature[1,1] is marked as BAD (e.g., assigned to BAD class).
Further, if a current sprint is sprint 2, then a finite Feature[1,1] (e.g., feature 1 developed in sprint 1) and an in-progress Feature[1,2] (e.g., the same feature further implemented in sprint 2) exist. Feature[1,1] is assigned to one of two classes: OK, BAD. If there are defects reported to feature 1 and introduced in sprint 1 (e.g., Feature[1,1]), then Feature[1,1] is assigned to BAD class as noted above. Otherwise, the Feature[1,1] is assigned to OK class. If there are defects reported to feature 1 and introduced in sprint 2 (e.g., Feature[1,2]), then feature[1,2] is assigned to BAD class. Otherwise, the Feature[1,2] is assigned to OK class.
With respect to
At block 220, the schematic flow 200 determines if timeframe associated with the defect is related to sprint 1. As indicated by the ‘No’ arrow, if the timeframe associated with the defect is not related to sprint 1 then the schematic flow 200 assigns an ‘OK’ class to feature 201 at block 215. As indicated by the ‘Yes’ arrow, if the timeframe associated with the defect is related to sprint 1 then the schematic flow 200 assigns an ‘BAD’ class to feature 201 at block 225.
Similarly, the schematic flow 200 can start at decision block 230 while feature 203 is in progress to determine if a defect is reported in feature 202. As indicated by the ‘No’ arrow, if the defect is not reported then the schematic flow 200 assigns an ‘OK’ class to feature 202 at block 235. As indicated by the ‘Yes’ arrow, if the defect is reported then the schematic flow 200 proceed to block 240.
At block 240, the schematic flow 200 determines if timeframe associated with the defect is related to sprint 2. As indicated by the ‘No’ arrow, if the timeframe associated with the defect is not related to sprint 2 then the schematic flow 200 assigns an ‘OK’ class to feature 202 at block 235. As indicated by the ‘Yes’ arrow, if the timeframe associated with the defect is related to sprint 2 then the schematic flow 200 assigns an ‘BAD’ class to feature 202 at block 245. Note that if the timeframe associated with the defect is not related to sprint 2 but is related to sprint 1, then the schematic flow 200 can re-assign the ‘BAD’ class to feature 201 at block 225, as indicated by the dotted arrows of
Also, the schematic flow 200 can start at decision block 250 after the project is complete to determine if a defect is reported in feature 203. As indicated by the ‘No’ arrow, if the defect is not reported then the schematic flow 200 assigns an ‘OK’ class to feature 203 at block 255. As indicated by the ‘Yes’ arrow, if the defect is reported then the schematic flow 200 proceed to block 260.
At block 240, the schematic flow 200 determines if timeframe associated with the defect is related to sprint 3. As indicated by the ‘No’ arrow, if the timeframe associated with the defect is not related to sprint 3 then the schematic flow 200 assigns an ‘OK’ class to feature 203 at block 255. As indicated by the ‘Yes’ arrow, if the timeframe associated with the defect is related to sprint 3 then the schematic flow 200 assigns an ‘BAD’ class to feature 203 at block 265. Note that if the timeframe associated with the defect is not related to sprint 3 but is related to another sprint (e.g., 1 or 2), then the schematic flow 200 can re-assign the ‘BAD’ class to a corresponding feature. That is, the double-dotted and dashed arrow leads to block 270, where the timeframe is determined with respect to the defect. If the timeframe associated with the defect is related to sprint 1, then the schematic flow 200 can re-assign the ‘BAD’ class to feature 201 at block 225, as indicated by the dotted arrows of
Referring now to
Thus, as configured in
Technical effects and benefits providing failure prediction within development iterations and at the end of development by creating a training set for infinite state features and reducing a testing backlog and increasing a testing efficiency by determining if a feature in current state requires testing or not. Thus, embodiments described herein are necessarily rooted in the system to perform proactive operations to overcome problems specifically arising in the realm of software development under an agile development model (e.g., these problems include the not being able to identify whether an iteration is defective prior to completion of the product, resulting in unwanted costs and expenses). Thus, embodiments here can base predictions/classifications to determine if current feature state requires additional testing and/or contains hidden defects without waiting for feature implementation end or historical data population.
Embodiments herein may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the embodiments herein.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the embodiments herein may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the embodiments herein.
Aspects of the embodiments herein are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the embodiments herein. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one more other features, integers, steps, operations, element components, and/or groups thereof.
The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Cmielowski, Lukasz G., Wrobel, Andrzej J., Gedliczka, Tymoteusz, Franczyk, Marek
Patent | Priority | Assignee | Title |
10929268, | Sep 26 2018 | Accenture Global Solutions Limited | Learning based metrics prediction for software development |
Patent | Priority | Assignee | Title |
7856616, | Apr 17 2007 | National Central University | Action-based in-process software defect prediction software defect prediction techniques based on software development activities |
8296724, | Jan 15 2009 | Raytheon Company | Software defect forecasting system |
8352904, | Jun 24 2008 | International Business Machines Corporation | Early defect removal model |
9799007, | Aug 18 2014 | Drexel University | Method of collaborative software development |
20120079449, | |||
20130311968, | |||
20140053135, | |||
20140359555, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 16 2015 | CMIELOWSKI, LUKASZ G | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 037323 | /0959 | |
Dec 16 2015 | FRANCZYK, MAREK | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 037323 | /0959 | |
Dec 16 2015 | GEDLICZKA, TYMOTEUSZ | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 037323 | /0959 | |
Dec 16 2015 | WROBEL, ANDRZEJ J | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 037323 | /0959 | |
Dec 18 2015 | International Business Machines Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 17 2023 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Feb 04 2023 | 4 years fee payment window open |
Aug 04 2023 | 6 months grace period start (w surcharge) |
Feb 04 2024 | patent expiry (for year 4) |
Feb 04 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 04 2027 | 8 years fee payment window open |
Aug 04 2027 | 6 months grace period start (w surcharge) |
Feb 04 2028 | patent expiry (for year 8) |
Feb 04 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 04 2031 | 12 years fee payment window open |
Aug 04 2031 | 6 months grace period start (w surcharge) |
Feb 04 2032 | patent expiry (for year 12) |
Feb 04 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |