US20190057064A1 - Method and computing device for facilitating data sample testing - Google Patents
Method and computing device for facilitating data sample testing Download PDFInfo
- Publication number
- US20190057064A1 US20190057064A1 US15/681,960 US201715681960A US2019057064A1 US 20190057064 A1 US20190057064 A1 US 20190057064A1 US 201715681960 A US201715681960 A US 201715681960A US 2019057064 A1 US2019057064 A1 US 2019057064A1
- Authority
- US
- United States
- Prior art keywords
- computing device
- vertex
- attribute
- document
- vertex representing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G06F17/30958—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
Definitions
- the disclosure relates generally to data testing and, more particularly, to a method and computing device for facilitating data sample testing.
- Data testing techniques are used in many different applications, including scientific research, software development, and in business. For example, there are laws and regulations (such as Sarbanes-Oxley (“SOX”)) that require companies to test their financial controls periodically.
- SOX Sarbanes-Oxley
- One of the challenges in data testing is gathering and managing the data to be tested, particularly when the data is spread throughout an organization.
- FIG. 1 is a block diagram illustrating an example networking environment in which various embodiments of the disclosure may be employed.
- FIG. 2 is a block diagram of a computing device, according to an embodiment.
- FIG. 3 illustrates a user interface, according to an embodiment.
- FIG. 4A and FIG. 4B are block diagrams illustrating data structures within a graph database, according to an embodiment.
- FIGS. 5-9 illustrate user interfaces according to various embodiments.
- FIG. 10 illustrates a spreadsheet that may be used as an input to control testing process, according to an embodiment.
- FIG. 11 , FIG. 12A , FIG. 12B , FIG. 13A , FIG. 13B , FIG. 13C , FIG. 14 , FIG. 15 , FIG. 16 , FIG. 17 , FIG. 18A and FIG. 18B illustrate user interfaces according to various embodiments.
- the disclosure is generally directed to a method for facilitating data sample testing.
- the method involves a computing device carrying out the following actions: displaying a data sample on a user interface; receiving, via the user interface, a selection of a test to be performed on the data sample; receiving, via the user interface, an input of a result of the test; generating, in a graph database, a vertex representing a visual indicator corresponding to the input result; and creating, in the graph database, an association between the vertex representing the visual indicator and a vertex representing a file containing the displayed data sample.
- a method for facilitating data sample testing involves a computing device carrying out the following actions: receiving an input of a plurality of data samples, each of the plurality of samples having a plurality of attributes that are to be tested; generating a matrix of the plurality of samples and the plurality of attributes; displaying a visual representation of the matrix on a user interface; visually rendering a data sample of the plurality of samples on the user interface; detecting a user interaction with a data sample as rendered on the user interface, wherein the user interaction indicates a result of a test on the data sample; and, updating the graph database with a vertex representing the result, wherein the vertex representing the result is associated in the graph database with a vertex representing the data sample.
- a method for facilitating the testing of the content of a document involves a computing device carrying out the following actions: visually rendering a document; receiving, at a location on the visual rendition of the document, a user input indicating a result of a test; displaying a markup on the visual rendition at the location, wherein the markup visually indicates a result of the test; generating, in a graph database, a vertex representing the markup; associating the vertex representing the markup with a vertex representing the document; and associating the vertex representing the markup with a vertex representing the result of the test.
- a first computing device 100 e.g., a hardware server or a cluster of hardware servers
- a network 102 is communicatively linked to a network 102 .
- Possible implementations of the network 102 include a local-area network, a wide-area network, a private network, a public network (e.g., the Internet), or any combination of these.
- the network 102 may include both wired and wireless components.
- a second computing device 104 e.g., a client device
- a third computing device 106 e.g., a client device
- a fourth computing device 108 e.g., a hardware server or a cluster of hardware servers.
- first computing device 100 executes productivity software 100 a (e.g., a document editing application, a spreadsheet application, etc.) and the third computing device 108 executes software-as-a-service (“SaaS”) platform software 108 a.
- productivity software 100 a e.g., a document editing application, a spreadsheet application, etc.
- SaaS software-as-a-service
- the first computing device 100 and the third computing device 108 are communicatively linked to a media storage device 110 (e.g., a memory or a redundant array of independent disks).
- a media storage device 110 e.g., a memory or a redundant array of independent disks.
- FIG. 1 depicts the media storage device 110 as a single device, in fact, the media storage device 110 may be implemented as a single computing device or as multiple computing devices working together, and may represent a cloud storage service including multiple storage devices.
- the productivity software 100 a and the SaaS platform software 108 a execute on the same computing device (e.g., the first computing device 100 or the third computing device 108 ).
- the productivity software 100 a could reside on one partition of the first computing device 100 while the SaaS platform software 108 a could reside on another partition of the first computing device 100 .
- portions of the productivity software 100 a execute on both the first computing device 100 and the third computing device 106 , and/or portions of the SaaS platform software 108 a may be executed on both the first computing device 100 and the third computing device 108 .
- the second computing device 104 and the third computing device 106 are configured to access the computing device or devices on which the productivity software 100 a resides.
- the present disclosure will focus on a graph database 112 , which is maintained by the SaaS platform software 108 a, but whose operations are controlled by the productivity software 100 a , which issues instructions to read from, write to, and modify the contents of the graph database 112 via the SaaS platform software 108 a. Also discussed in this disclosure are a first task queue 114 and a second task queue 116 , whose functions will be described below in more detail.
- the computing device of FIG. 2 includes processor hardware 202 (e.g., a microprocessor, controller, or application-specific integrated circuit) (hereinafter “processor 202 ”), a primary memory 204 (e.g., volatile memory, random-access memory), a secondary memory 206 (e.g., non-volatile memory), user input devices 208 (e.g., a keyboard, mouse, or touchscreen), a display device 210 (e.g., an organic, light-emitting diode display), and a network interface 212 (which may be wired or wireless).
- processor hardware 202 e.g., a microprocessor, controller, or application-specific integrated circuit
- primary memory 204 e.g., volatile memory, random-access memory
- secondary memory 206 e.g., non-volatile memory
- user input devices 208 e.g., a keyboard, mouse, or touchscreen
- a display device 210 e.g., an organic, light-emitting diode
- the processor 202 is one of multiple processors in the computing device, each of which is capable of executing a separate thread. In an embodiment, the processor 202 communicates with other processors external to the computing device in order to initiate the execution of different threads on those other processors.
- the memories 204 and 206 store instructions executable by the processor 202 and data.
- the term “local memory” as used herein refers to one or both the memories 204 and 206 (i.e., memory accessible by the processor 202 within the computing device).
- the secondary memory 206 is implemented as, or supplemented by an external memory 206 A.
- the media storage device 108 is a possible implementation of the external memory 206 A.
- the processor 202 executes the instructions and uses the data to carry out various procedures including, in some embodiments, the methods described herein, including displaying a graphical user interface 219 .
- the graphical user interface 219 is, according to one embodiment, software that the processor 202 executes to display a report on the display device 210 , and which permits a user to make inputs into the report via the user input devices 208 .
- This disclosure will sometimes refer to one or more of the client program 104 a, the client program 106 a, and the productivity software 100 a as taking one or more actions. It is to be understood that such actions may involve only one of these software entities or may involve two or more. Possible ways that one or more of these programs could take an action include: (a) the client program transmitting hypertext transport protocol commands such as “Get” and “Post” in order to transmit to or receive information from the productivity software 100 a (e.g., via a web server), (b) the client program running a script (e.g., JavaScript) to send information to and retrieve information from the productivity software 100 a, and (c) the client program (e.g., a web browser) receiving an entry of a uniform resource locator (e.g., as result of a user selection of a link in a received email), being directed to a web-based portal, providing input to the productivity software 100 a via the portal, and receiving output from the productivity software 100 a via the portal.
- the productivity software 100 a is able to manage tasks for various users through the use of the queues 114 and 118 . Users are able to view and manage tasks in their respective queues through user interfaces.
- the productivity software 100 a provides a platform that allows an organization to carry out a test of controls for the purpose of complying with SOX rules.
- the user 104 b is acting in the role of a requester (and will also be referred to as the requester 104 b ), the user 106 b is acting in the role of a provider (and will also be referred to as the provider 106 b ), that the first queue 114 holds tasks for the requester 104 b, and the second queue 116 holds tasks for the provider 106 b .
- the actions are, in fact, carried out by the productivity software 100 a based on input from one or both of the client programs 104 a and 106 a (which may have received input from the requester 104 b and provider 106 b, respectively).
- the requester 104 b would typically be the tester and the provider 106 b would typically be the control owner. It should also be understood, that the various techniques described herein are applicable to many other use cases besides SOX testing.
- the primary user interface that the requester 104 b interacts with is in the form of a dashboard, an example of which is shown in FIG. 3 .
- the dashboard generally labeled 300 , acts as home screen for the requester 104 b .
- the dashboard 300 organizes the tasks of the first queue 114 (the task queue for the requester 104 b ) by task type, each of which can be accessed through tabs.
- the tabs include: (a) “To Send” tab 302 , which lists the requests that have been created but not sent, (b) “Requested” tab 304 , which lists the requests (both population requests and evidence requests) that have been sent out but for which no response has been received, (c) “To Review” tab 306 , which lists the requests (population and evidence) for which responses have been received and therefore need to be reviewed by the requester 104 b, (d) “To Sample” tab 308 , which lists the populations that the requester 104 b has reviewed and approved and are therefore ready to be sampled, and (e) “To Test” tab 310 , which lists evidence sets (received from the provider 106 b or delegatee of the provider 106 b ) waiting to be tested.
- the productivity software 100 a creates and updates vertices and edges in the graph database 112 to represent and organize the various requests, populations, data samples, tests, and supporting documents needed for an organization to carry out data tests. Examples of the data structures (vertices and edges) used in this capacity (in an embodiment) are depicted in FIG. 4A and FIG. 4B . Each vertex has at least one property, and the relationship between two given vertices (if there is a relationship) is defined in the graph database 112 by at least one edge. Vertices and edges may be created by the productivity software 100 a (such as during an onboarding process for a customer) or by a user of the productivity software 100 a. For example, the productivity software 100 a might receive a spreadsheet with a list of SOX controls (e.g., “Control C.AP01, Control C.AP03,” etc.)
- SOX controls e.g., “Control C.AP01, Control C.AP03,” etc.
- the vertices include one or more control vertices 402 , each of which includes properties that describe a control (e.g., in the SOX context), and one or more test of control vertices 404 , each of which includes properties that describe a test that may be performed on a particular control.
- a relationship between a test of control vertex 402 and the control vertex 404 representing the control that the test validates is defined in the database 112 by an edge 406 .
- the remaining vertices will be described as being created during example interactions between the first client program 104 a and the productivity software 100 a.
- the requester 104 b selects the “New Request” button 312 on the dashboard 300 .
- the productivity software 100 a provides a user interface through which the requester 104 b can enter basic information about the test for which the population is requested, such as identifying the relevant test being performed and the test phase to which the test applies.
- the productivity software 100 a creates a request vertex 408 ( FIG. 4B ) that includes properties regarding the population request, a task proxy vertex 410 to interface with a tasking function of the productivity software 100 a, and an edge 412 from the request vertex 408 to the task proxy vertex 410 .
- productivity software 100 a notifies the provider of the pending request.
- the requester may also provide the productivity software 100 a with a message that is to be sent to the provider along with the notification.
- the notification can take the form of, for example, a text message, an alert from a mobile app, or an email.
- the productivity software 100 a displays a user interface 500 that allows the requester 104 b to select a provider 106 b to fulfill the request and to compose an email to the provider 106 b.
- the productivity software 100 a responds by sending out the email to the provider 106 b (or providers if there are multiple) and adding a “population request” task to the provider's queue 116 .
- the email contains a link to a portal capable of interacting with the productivity software 100 a, so that when the provider 106 b receives the email, opens it, and activates the link, the client program 106 a is directed to the portal, a user interface of which is shown in FIG. 6 .
- the user interface 600 displays the requests (shown in FIG.
- the productivity software 100 a responds by transmitting a file upload interface 700 to the computing device 104 ( FIG. 7 ).
- the file upload interface 700 includes instructions from the requester 104 b, a description of the control being tested (which the productivity software 100 a pulls from the control vertex 402 ( FIG. 4A ) of the graph database 112 ), on-screen button 702 for initiating file uploads, and a text entry area 704 where the provider 106 b can add comments for the requester 104 b.
- the provider 106 b can delegate the task of providing the population (e.g., fulfilling the population request) to someone else via the “Delegate Task” button 706 , in which case the productivity software 100 a will generate an email to whomever the provider 106 b identifies and place the appropriate task in the delegatee's queue.
- the productivity software 100 a uploads the population (e.g., in the form of a spreadsheet or comma-separated value (“csv”) file) and selects the “Submit for Approval” button 708 , the productivity software 100 a adds the task (C.AP01 in this case) to the requester's queue 116 . Additionally, the productivity software 100 a creates a population vertex 414 ( FIG.
- the file vertex 418 includes one or more properties (such as a unique object identifier) sufficient for the productivity software 100 a to locate the file in the media storage device 110 .
- the requester 104 b selects the “To Review” tab 306 on the dashboard 300 ( FIG. 8 ) and selects the population (entry 802 , in this example).
- the productivity software 100 a provides a user interface 900 , as shown in FIG. 9 .
- the user interface 900 includes an attachment pane containing links to the file or files that the provider 106 b uploaded in response to the population request.
- the requester 104 b can select one or more files as needed in order to open them and make sure that received populations are appropriate.
- the productivity software 101 a responds by providing a user interface 1000 , which shows the contents of the csv file ( FIG. 10 ). If the requester 104 b finds the received populations appropriate, the requester 104 b can accept the population(s) (e.g., via the “Approve” button 904 ), or return the population(s) (via the “Return” button 906 ) back to the provider 106 b along with a note explaining the reasons for the return.
- the population(s) e.g., via the “Approve” button 904
- return the population(s) via the “Return” button 906
- the productivity software 100 a adds the tasks in the “To Sample” tab 308 , as shown in FIG. 11 .
- the requester 104 b selects the population that the requester 104 b would like to sample—C.AP01 in this example—and the productivity software 100 a reacts by displaying the interface 1200 shown in FIG. 12A , which depicts the contents of the csv file that the provider 106 b provided, along with an entry field 1202 that allows the requester 104 b to select how many randomly-chosen samples the requester 104 b wants to take and a button 1204 to initiate the sampling process.
- the requester 104 b wishes to take 5 random samples.
- the productivity software 100 a randomly selects the five samples and displays them on the user interface 1200 as shown in FIG. 12B .
- the requester 104 b is then given the option to finalize the selection.
- each sample has multiple attributes associated with it, which, in this embodiment, are described in the column headings of the spreadsheet.
- the grid that includes a given set of samples, attributes, and results is referred to as the “attribute matrix.”
- the sample vertex 422 includes the following properties: the name of the sample, a description of the sample, the location of the sample, and the batch from which the samples was taken.
- the productivity software 100 a also generates: an edge 424 from the sample vertex 422 to the population vertex 414 , an edge 426 from the sample vertex 422 to the file vertex 418 (i.e., the vertex corresponding to the separate document (e.g., spreadsheet) from which the sample was taken), an attribute matrix vertex 424 ( FIG. 4A ) (representing the attribute matrix), and an edge 432 from the sample vertex 422 to the attribute matrix vertex 424 .
- the productivity software 100 a For each attribute of a set of samples received from a provider (or delegatee thereof), the productivity software 100 a generates an attribute vertex 426 and an edge 430 from the attribute vertex 426 to the attribute matrix vertex 424 . For each attribute/sample combination (e.g., each entry in the matrix, the productivity software 100 a generates an attribute data vertex 433 (which has “result” as one of its properties), an edge 435 from the attribute data vertex 433 to the sample vertex 422 , and an edge 437 from the attribute data vertex 433 to the attribute vertex 426 ( FIG. 4A ).
- each step of a test to be performed on an evidence sample (also referred to herein as a “piece of evidence”) is also represented in the graph database 112 by both an attribute vertex 426 and a test step vertex 442 , with the attribute vertex being more representative of the display of the test step within the visual representation of the test matrix on the user interface and the test step vertex being more representative of the test step itself.
- a “step” of a test will also be referred to herein generally as a “test,” since each test “step” represents a test that is applied by to particular “attribute” of a piece of evidence.
- the productivity software 100 a For each attribute vertex representing a test step, the productivity software 100 a generates an edge 431 from the attribute vertex 426 (for that test step) to the test step vertex 442 , but does not generate an edge from the attribute vertex 426 to the attribute matrix vertex 442 for test step attributes.
- the requester 104 b may set up tests for the received samples by navigating to a test setup interface 1300 , shown in FIG. 13A .
- the interface 1300 includes a visual representation 1302 of certain properties of the attribute matrix vertex 424 .
- a test step and attributes entry interface 1304 shown in FIG. 13B (in a different portion of the interface 1300 ) allows the requester 104 b to create test steps and attributes (i.e., test steps and sub-steps).
- the productivity software 100 a In response to the entry of each test step, the productivity software 100 a generates a test step vertex 442 and an edge 443 between the test step vertex 442 and the test of control vertex 404 that represents the particular test of control being carried out.
- the productivity software 100 a In response to the entry of each attribute for a given test, the productivity software 100 a generates an attribute vertex 426 , an edge 430 between the attribute vertex 426 and the attribute matrix vertex 424 , and an edge 430 between the attribute vertex 426 and the test step vertex 442 (corresponding to the test step to which the attribute belongs). The productivity software 100 a adds the attribute tests to the visual representation 1302 of the attribute matrix, as shown in FIG. 13C .
- the productivity software 100 a interprets the graph database 112 such that the productivity software 100 a displays only those attributes (e.g., only those column headers in the incoming csv file) whose vertices have edges to the attribute matrix vertex 424 as part of the visual representation 1302 .
- attributes e.g., only those column headers in the incoming csv file
- the productivity software can ensure that only the relevant ones (e.g., the ones that need to be tested) are displayed.
- the requester 104 b may select (e.g., via a right-click menu on visual representation 1302 ) an option to create a request for the provider 106 b to provide evidence (e.g., the samples themselves—the five checks in this example).
- the productivity software 100 a responds by presenting a user interface 1400 (shown in FIG. 14 ), which includes fields 1402 , 1404 , and 1406 for the entry of the request title, due date, and provider (the provider 106 b in this example) respectively.
- the interface 1400 also includes a file upload button 1408 that opens a file upload interface to allow, for example, the requester 104 b to attach a sample file to give the provider 106 b an idea of what sort of evidence is needed.
- the productivity software 100 a reacts to this by creating a task proxy vertex 414 representing the request, creating a sample request vertex 450 representing the sample request, generating an edge 452 from the sample request vertex to the request vertex 408 , generating an edge 423 between the request vertex 408 and the task proxy vertex 410 ( FIG. 4A ) and adding the task to the provider's queue 116 .
- the productivity software 100 a also generates a notification (e.g., as shown in FIG.
- the productivity software 100 a displays a user interface 1500 that shows a more focused view of the task ( FIG. 15 ).
- the provider 106 b may then respond by locating files containing the requested evidence, uploading the files using an upload interface 1502 , delegating this task by selecting the “Delegate Task” button 1504 , or, once the files have been uploaded, submitting to the requester 104 b for approval by selecting the “Submit for Approval” button 1506 .
- files that could contain the requested evidence, include word processing documents, spreadsheets, image files, video files, email files, and audio files.
- the provider 106 b uploads an image of the front of each check listed and selects “Submit for Approval.”
- the productivity software 100 a responds by creating a file vertex 418 ( FIG.
- the productivity software 100 a creates five file vertices 418 .
- the productivity software 100 a also adds a task to the queue 114 of the requester 104 b (the task being to review the uploaded evidence).
- the requester 104 b when the requester 104 b opens the dashboard 300 , the requester 104 b will see the task on the “To Review Tab” 306 , as shown in FIG. 16 .
- the productivity software 100 a responds by providing an interface 1700 ( FIG. 17 ) that displays a list of the samples and the pieces of evidence provided in support thereof.
- the user interface 1700 includes a list 1702 of pieces of evidence (images of checks in this case) that have been received and are ready for testing.
- the requester 104 b then may review the pieces of evidence (via selecting one of the icons 1704 ) and mark them as approved or to be returned (e.g., in the column 1706 ) to the provider 106 b if, for example, the checks do not match what was requested).
- the productivity software 100 a when the requester 104 b selects one of the icons of column 1704 , the productivity software 100 a responds providing a user interface 1800 that includes an image 1802 of file (check, in this example) as shown in FIG. 18A , along with a list 1804 of test steps and attribute tests.
- the attribute tests are sub-steps of the overall test step.
- a given test step may have one or more attribute tests.
- Next to each attribute test is a check box, in which the requester 104 b may indicate whether the test of an attribute passed, failed, or is not applicable.
- the attributes in the list 1804 are the same ones shown on the visual representation 1302 of the attribute matrix and stored in the database 112 in the vertices discussed previously.
- the requester 104 b can interact with the user interface 1800 (e.g., drag and drop) to apply a step of a test to the appropriate part of the image 1802 so as to create a visual indicator such as a markup at a particular location on the image 1802 (as displayed on the user interface 1800 ) and indicate the result of the test step at that location via the visual indicator.
- a visual indicator such as a markup at a particular location on the image 1802 (as displayed on the user interface 1800 ) and indicate the result of the test step at that location via the visual indicator.
- the requester 104 b drags test step 1 A, “Verify Disbursement Date” over to the date on the check image 1802 and, through a pop-up menu (e.g., activated by a “right click” gesture), indicates that the particular attribute being tested (the disbursement date) has “passed.”
- the productivity software 100 a reacts by displaying a markup 1806 , as shown in FIG. 18B (a green rectangle, in this case), at the target area of the drag and drop gesture (e.g., on a portion of the image 1802 ).
- the user interface 1800 permits a user to select the shape (e.g., rectangle, square, teardrop) and/or color of the markup (e.g., green for pass, red for fail) that is to be applied to the evidence.
- shape e.g., rectangle, square, teardrop
- color of the markup e.g., green for pass, red for fail
- the productivity software 100 a reacts to this drag-and-drop gesture by creating the markup vertex 412 ( FIG. 4B ) and generating an edge 434 from the markup vertex 412 to the file vertex 418 representing the file containing the image 1802 .
- the productivity software 100 a also updates a visual representation 1810 of the matrix to indicate whether the evidence has passed the attribute test (e.g, green check mark for “pass” and red X for “fail”) as shown, for example, in FIG. 18B .
- the requester 104 b can repeat this process for other attributes so as to test, for example, the signature and memo fields resulting in a green rectangle markup 1808 (indicating that the signature “passes”) and a red rectangle markup 1812 (indicating that the memo field “fails”).
- the productivity software 100 a updates the graph database 112 by generating additional markup vertices 412 (e.g., one markup vertex per markup) and generating an edge 434 from it to the file vertex 418 of that image. markup vertex 412 that is connected to the file vertex 410 representing the file containing the image 1802 .
- the requester 104 b indicates whether the overall test step passes or fails by annotating the check box next to the attribute in the list 1804 .
- the productivity software 100 a indicates the pass or fail status even if not all of the tests of the individual attributes have the same result.
- the productivity software 100 a represents the overall pass or fail status in the “result” property of the attribute data vertex 433 .
- the requester 104 b can enter a footnote to, for example, explain the result of the test.
- the productivity software 100 a responds by creating a footnote vertex 458 in the graph database 112 and generating a vertex 460 from the attribute data vertex 433 to the footnote vertex 458 .
- the user interface 1800 of FIGS. 18A and 18B may, instead of check boxes, provide a button that visually indicates the current result but brings up a dropdown menu when a user selects the button.
- the dropdown menu can include choices like “pass,” “fail,” “not reviewed,” or “N/A.”
- the user interface 1800 may, instead of creating a rectangle when an attribute is dragged onto the displayed sample (the displayed evidence), display a different shape, such as a teardrop shape.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Algebra (AREA)
- Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- The disclosure relates generally to data testing and, more particularly, to a method and computing device for facilitating data sample testing.
- Data testing techniques are used in many different applications, including scientific research, software development, and in business. For example, there are laws and regulations (such as Sarbanes-Oxley (“SOX”)) that require companies to test their financial controls periodically. One of the challenges in data testing is gathering and managing the data to be tested, particularly when the data is spread throughout an organization.
- While the appended claims set forth the features of the present techniques with particularity, these techniques may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
-
FIG. 1 is a block diagram illustrating an example networking environment in which various embodiments of the disclosure may be employed. -
FIG. 2 is a block diagram of a computing device, according to an embodiment. -
FIG. 3 illustrates a user interface, according to an embodiment. -
FIG. 4A andFIG. 4B are block diagrams illustrating data structures within a graph database, according to an embodiment. -
FIGS. 5-9 illustrate user interfaces according to various embodiments. -
FIG. 10 illustrates a spreadsheet that may be used as an input to control testing process, according to an embodiment. -
FIG. 11 ,FIG. 12A ,FIG. 12B ,FIG. 13A ,FIG. 13B ,FIG. 13C ,FIG. 14 ,FIG. 15 ,FIG. 16 ,FIG. 17 ,FIG. 18A andFIG. 18B illustrate user interfaces according to various embodiments. - The disclosure is generally directed to a method for facilitating data sample testing. In an embodiment, the method involves a computing device carrying out the following actions: displaying a data sample on a user interface; receiving, via the user interface, a selection of a test to be performed on the data sample; receiving, via the user interface, an input of a result of the test; generating, in a graph database, a vertex representing a visual indicator corresponding to the input result; and creating, in the graph database, an association between the vertex representing the visual indicator and a vertex representing a file containing the displayed data sample.
- According an embodiment, a method for facilitating data sample testing involves a computing device carrying out the following actions: receiving an input of a plurality of data samples, each of the plurality of samples having a plurality of attributes that are to be tested; generating a matrix of the plurality of samples and the plurality of attributes; displaying a visual representation of the matrix on a user interface; visually rendering a data sample of the plurality of samples on the user interface; detecting a user interaction with a data sample as rendered on the user interface, wherein the user interaction indicates a result of a test on the data sample; and, updating the graph database with a vertex representing the result, wherein the vertex representing the result is associated in the graph database with a vertex representing the data sample.
- In an embodiment, a method for facilitating the testing of the content of a document involves a computing device carrying out the following actions: visually rendering a document; receiving, at a location on the visual rendition of the document, a user input indicating a result of a test; displaying a markup on the visual rendition at the location, wherein the markup visually indicates a result of the test; generating, in a graph database, a vertex representing the markup; associating the vertex representing the markup with a vertex representing the document; and associating the vertex representing the markup with a vertex representing the result of the test.
- Various embodiments of the disclosure are implemented in a computer networking environment. Turning to
FIG. 1 , an example of such an environment is shown. A first computing device 100 (e.g., a hardware server or a cluster of hardware servers) is communicatively linked to anetwork 102. Possible implementations of thenetwork 102 include a local-area network, a wide-area network, a private network, a public network (e.g., the Internet), or any combination of these. Thenetwork 102 may include both wired and wireless components. Also communicatively linked to thenetwork 102 are a second computing device 104 (e.g., a client device), a third computing device 106 (e.g., a client device), and a fourth computing device 108 (e.g., a hardware server or a cluster of hardware servers). - It is to be understood that various embodiments may be carried out on the
first computing device 100, thesecond computing device 104, thethird computing device 106, or other computing devices not depicted, with one or both thesecond computing device 104 and thethird computing device 106 accessing thefirst computing device 100 via client programs (labeled 104 a and 106 a, respectively), such as thin, web-based clients. In an embodiment, thefirst computing device 100 executesproductivity software 100 a (e.g., a document editing application, a spreadsheet application, etc.) and thethird computing device 108 executes software-as-a-service (“SaaS”)platform software 108 a. Thefirst computing device 100 and thethird computing device 108 are communicatively linked to a media storage device 110 (e.g., a memory or a redundant array of independent disks). AlthoughFIG. 1 depicts the media storage device 110 as a single device, in fact, the media storage device 110 may be implemented as a single computing device or as multiple computing devices working together, and may represent a cloud storage service including multiple storage devices. - In another embodiment, the
productivity software 100 a and the SaaSplatform software 108 a execute on the same computing device (e.g., thefirst computing device 100 or the third computing device 108). For example, theproductivity software 100 a could reside on one partition of thefirst computing device 100 while the SaaSplatform software 108 a could reside on another partition of thefirst computing device 100. In other embodiments, portions of theproductivity software 100 a execute on both thefirst computing device 100 and thethird computing device 106, and/or portions of the SaaSplatform software 108 a may be executed on both thefirst computing device 100 and thethird computing device 108. With such network configurations, thesecond computing device 104 and thethird computing device 106 are configured to access the computing device or devices on which theproductivity software 100 a resides. - Although there may be many types of data stored on the media storage device 110, the present disclosure will focus on a
graph database 112, which is maintained by the SaaSplatform software 108 a, but whose operations are controlled by theproductivity software 100 a, which issues instructions to read from, write to, and modify the contents of thegraph database 112 via the SaaSplatform software 108 a. Also discussed in this disclosure are afirst task queue 114 and asecond task queue 116, whose functions will be described below in more detail. - In one implementation, one or more of the computing devices of
FIG. 1 (including the media storage device 108) have the general architecture shown inFIG. 2 . The computing device ofFIG. 2 includes processor hardware 202 (e.g., a microprocessor, controller, or application-specific integrated circuit) (hereinafter “processor 202”), a primary memory 204 (e.g., volatile memory, random-access memory), a secondary memory 206 (e.g., non-volatile memory), user input devices 208 (e.g., a keyboard, mouse, or touchscreen), a display device 210 (e.g., an organic, light-emitting diode display), and a network interface 212 (which may be wired or wireless). Each of the elements ofFIG. 2 is communicatively linked to one or more other elements via one ormore data pathways 213. Possible implementations of thedata pathways 213 include wires, conductive pathways on a microchip, and wireless connections. In an embodiment, theprocessor 202 is one of multiple processors in the computing device, each of which is capable of executing a separate thread. In an embodiment, theprocessor 202 communicates with other processors external to the computing device in order to initiate the execution of different threads on those other processors. - The
memories processor 202 and data. The term “local memory” as used herein refers to one or both thememories 204 and 206 (i.e., memory accessible by theprocessor 202 within the computing device). In some embodiments, thesecondary memory 206 is implemented as, or supplemented by anexternal memory 206A. Themedia storage device 108 is a possible implementation of theexternal memory 206A. Theprocessor 202 executes the instructions and uses the data to carry out various procedures including, in some embodiments, the methods described herein, including displaying agraphical user interface 219. Thegraphical user interface 219 is, according to one embodiment, software that theprocessor 202 executes to display a report on thedisplay device 210, and which permits a user to make inputs into the report via theuser input devices 208. - This disclosure will sometimes refer to one or more of the
client program 104 a, theclient program 106 a, and theproductivity software 100 a as taking one or more actions. It is to be understood that such actions may involve only one of these software entities or may involve two or more. Possible ways that one or more of these programs could take an action include: (a) the client program transmitting hypertext transport protocol commands such as “Get” and “Post” in order to transmit to or receive information from theproductivity software 100 a (e.g., via a web server), (b) the client program running a script (e.g., JavaScript) to send information to and retrieve information from theproductivity software 100 a, and (c) the client program (e.g., a web browser) receiving an entry of a uniform resource locator (e.g., as result of a user selection of a link in a received email), being directed to a web-based portal, providing input to theproductivity software 100 a via the portal, and receiving output from theproductivity software 100 a via the portal. Theproductivity software 100 a may ultimately obtain information (e.g., web pages or data to feed into plugins used by the client programs) from thegraph database 112 or the SaaSplatform software 108 a). - According to an embodiment, the
productivity software 100 a is able to manage tasks for various users through the use of thequeues 114 and 118. Users are able to view and manage tasks in their respective queues through user interfaces. In one use case, theproductivity software 100 a provides a platform that allows an organization to carry out a test of controls for the purpose of complying with SOX rules. The examples that follow will incorporate this use case, and it will be assumed for the sake of illustration that: theuser 104 b is acting in the role of a requester (and will also be referred to as therequester 104 b), theuser 106 b is acting in the role of a provider (and will also be referred to as theprovider 106 b), that thefirst queue 114 holds tasks for therequester 104 b, and thesecond queue 116 holds tasks for theprovider 106 b. Furthermore, when the disclosure refers to the requester 104 b orprovider 106 b as carrying out an action, the actions are, in fact, carried out by theproductivity software 100 a based on input from one or both of theclient programs provider 106 b, respectively). In the SOX testing use case, therequester 104 b would typically be the tester and theprovider 106 b would typically be the control owner. It should also be understood, that the various techniques described herein are applicable to many other use cases besides SOX testing. - In an embodiment, the primary user interface that the requester 104 b interacts with (e.g., via the
client program 104 a) is in the form of a dashboard, an example of which is shown inFIG. 3 . The dashboard, generally labeled 300, acts as home screen for the requester 104 b. Thedashboard 300 organizes the tasks of the first queue 114 (the task queue for the requester 104 b) by task type, each of which can be accessed through tabs. The tabs include: (a) “To Send”tab 302, which lists the requests that have been created but not sent, (b) “Requested”tab 304, which lists the requests (both population requests and evidence requests) that have been sent out but for which no response has been received, (c) “To Review”tab 306, which lists the requests (population and evidence) for which responses have been received and therefore need to be reviewed by therequester 104 b, (d) “To Sample”tab 308, which lists the populations that the requester 104 b has reviewed and approved and are therefore ready to be sampled, and (e) “To Test”tab 310, which lists evidence sets (received from theprovider 106 b or delegatee of theprovider 106 b) waiting to be tested. - According to an embodiment, the
productivity software 100 a creates and updates vertices and edges in thegraph database 112 to represent and organize the various requests, populations, data samples, tests, and supporting documents needed for an organization to carry out data tests. Examples of the data structures (vertices and edges) used in this capacity (in an embodiment) are depicted inFIG. 4A andFIG. 4B . Each vertex has at least one property, and the relationship between two given vertices (if there is a relationship) is defined in thegraph database 112 by at least one edge. Vertices and edges may be created by theproductivity software 100 a (such as during an onboarding process for a customer) or by a user of theproductivity software 100 a. For example, theproductivity software 100 a might receive a spreadsheet with a list of SOX controls (e.g., “Control C.AP01, Control C.AP03,” etc.) - The vertices include one or
more control vertices 402, each of which includes properties that describe a control (e.g., in the SOX context), and one or more test ofcontrol vertices 404, each of which includes properties that describe a test that may be performed on a particular control. A relationship between a test ofcontrol vertex 402 and thecontrol vertex 404 representing the control that the test validates is defined in thedatabase 112 by anedge 406. The remaining vertices will be described as being created during example interactions between thefirst client program 104 a and theproductivity software 100 a. - For example, to create a new request for a population, the
requester 104 b selects the “New Request”button 312 on thedashboard 300. In response, theproductivity software 100 a provides a user interface through which therequester 104 b can enter basic information about the test for which the population is requested, such as identifying the relevant test being performed and the test phase to which the test applies. Once therequester 104 b has entered that data, theproductivity software 100 a creates a request vertex 408 (FIG. 4B ) that includes properties regarding the population request, atask proxy vertex 410 to interface with a tasking function of theproductivity software 100 a, and anedge 412 from therequest vertex 408 to thetask proxy vertex 410. - According to an embodiment,
productivity software 100 a notifies the provider of the pending request. The requester may also provide theproductivity software 100 a with a message that is to be sent to the provider along with the notification. The notification can take the form of, for example, a text message, an alert from a mobile app, or an email. For example, referring toFIG. 5 , in an embodiment, theproductivity software 100 a displays auser interface 500 that allows the requester 104 b to select aprovider 106 b to fulfill the request and to compose an email to theprovider 106 b. - In an embodiment, once the requester 104 b has finalized the text of the email (e.g., indicating this via a “send” button), the
productivity software 100 a responds by sending out the email to theprovider 106 b (or providers if there are multiple) and adding a “population request” task to the provider'squeue 116. The email contains a link to a portal capable of interacting with theproductivity software 100 a, so that when theprovider 106 b receives the email, opens it, and activates the link, theclient program 106 a is directed to the portal, a user interface of which is shown inFIG. 6 . Theuser interface 600 displays the requests (shown inFIG. 6 as part of a list 602) that are in currently in thequeue 116. When theprovider 106 b selects a request (therequest 604, in this example), theproductivity software 100 a responds by transmitting a file uploadinterface 700 to the computing device 104 (FIG. 7 ). The file uploadinterface 700 includes instructions from the requester 104 b, a description of the control being tested (which theproductivity software 100 a pulls from the control vertex 402 (FIG. 4A ) of the graph database 112), on-screen button 702 for initiating file uploads, and atext entry area 704 where theprovider 106 b can add comments for the requester 104 b. Additionally, theprovider 106 b can delegate the task of providing the population (e.g., fulfilling the population request) to someone else via the “Delegate Task”button 706, in which case theproductivity software 100 a will generate an email to whomever theprovider 106 b identifies and place the appropriate task in the delegatee's queue. Once theprovider 106 b uploads the population (e.g., in the form of a spreadsheet or comma-separated value (“csv”) file) and selects the “Submit for Approval”button 708, theproductivity software 100 a adds the task (C.AP01 in this case) to the requester'squeue 116. Additionally, theproductivity software 100 a creates a population vertex 414 (FIG. 4B ) in thedatabase 112, afile vertex 418 for each file (e.g., each csv file) that theprovider 106 b provides in response to the request, and anedge 420 from thepopulation vertex 414 to thefile vertex 418. Thefile vertex 418 includes one or more properties (such as a unique object identifier) sufficient for theproductivity software 100 a to locate the file in the media storage device 110. - According to an embodiment, to review a submitted population, the
requester 104 b selects the “To Review”tab 306 on the dashboard 300 (FIG. 8 ) and selects the population (entry 802, in this example). In response, theproductivity software 100 a provides auser interface 900, as shown inFIG. 9 . Theuser interface 900 includes an attachment pane containing links to the file or files that theprovider 106 b uploaded in response to the population request. The requester 104 b can select one or more files as needed in order to open them and make sure that received populations are appropriate. For example, if the received population is in the form of a csv file and the requester 104 b selects thefile 902 in the attachment pane, the productivity software 101 a responds by providing auser interface 1000, which shows the contents of the csv file (FIG. 10 ). If therequester 104 b finds the received populations appropriate, therequester 104 b can accept the population(s) (e.g., via the “Approve” button 904), or return the population(s) (via the “Return” button 906) back to theprovider 106 b along with a note explaining the reasons for the return. - In an embodiment, if the requester 104 b approves the population(s), then the
productivity software 100 a adds the tasks in the “To Sample”tab 308, as shown inFIG. 11 . The requester 104 b then selects the population that the requester 104 b would like to sample—C.AP01 in this example—and theproductivity software 100 a reacts by displaying theinterface 1200 shown inFIG. 12A , which depicts the contents of the csv file that theprovider 106 b provided, along with anentry field 1202 that allows the requester 104 b to select how many randomly-chosen samples the requester 104 b wants to take and abutton 1204 to initiate the sampling process. In this example, it will be assumed that the requester 104 b wishes to take 5 random samples. Upon initiating the sampling process (with the button 1204), theproductivity software 100 a randomly selects the five samples and displays them on theuser interface 1200 as shown inFIG. 12B . The requester 104 b is then given the option to finalize the selection. - According to an embodiment, each sample has multiple attributes associated with it, which, in this embodiment, are described in the column headings of the spreadsheet. For each given attribute of each given sample, there is a piece of data referred to as the “result.” The grid that includes a given set of samples, attributes, and results is referred to as the “attribute matrix.” Once it receives an entry of samples and attributes (or, alternatively, when the requester submits a request for the samples), the
productivity software 100 a generates a sample vertex 422 (FIG. 4B ) for each sample (i.e., each row of the sampled subset of the spreadsheet received from theprovider 106 b). Thesample vertex 422 includes the following properties: the name of the sample, a description of the sample, the location of the sample, and the batch from which the samples was taken. Theproductivity software 100 a also generates: anedge 424 from thesample vertex 422 to thepopulation vertex 414, anedge 426 from thesample vertex 422 to the file vertex 418 (i.e., the vertex corresponding to the separate document (e.g., spreadsheet) from which the sample was taken), an attribute matrix vertex 424 (FIG. 4A ) (representing the attribute matrix), and anedge 432 from thesample vertex 422 to theattribute matrix vertex 424. - For each attribute of a set of samples received from a provider (or delegatee thereof), the
productivity software 100 a generates anattribute vertex 426 and anedge 430 from theattribute vertex 426 to theattribute matrix vertex 424. For each attribute/sample combination (e.g., each entry in the matrix, theproductivity software 100 a generates an attribute data vertex 433 (which has “result” as one of its properties), anedge 435 from theattribute data vertex 433 to thesample vertex 422, and anedge 437 from theattribute data vertex 433 to the attribute vertex 426 (FIG. 4A ). - According to an embodiment, each step of a test to be performed on an evidence sample (also referred to herein as a “piece of evidence”) is also represented in the
graph database 112 by both anattribute vertex 426 and atest step vertex 442, with the attribute vertex being more representative of the display of the test step within the visual representation of the test matrix on the user interface and the test step vertex being more representative of the test step itself. Note that a “step” of a test will also be referred to herein generally as a “test,” since each test “step” represents a test that is applied by to particular “attribute” of a piece of evidence. For each attribute vertex representing a test step, theproductivity software 100 a generates anedge 431 from the attribute vertex 426 (for that test step) to thetest step vertex 442, but does not generate an edge from theattribute vertex 426 to theattribute matrix vertex 442 for test step attributes. - In an embodiment, the
requester 104 b may set up tests for the received samples by navigating to atest setup interface 1300, shown inFIG. 13A . Theinterface 1300 includes avisual representation 1302 of certain properties of theattribute matrix vertex 424. A test step and attributesentry interface 1304, shown inFIG. 13B (in a different portion of the interface 1300) allows the requester 104 b to create test steps and attributes (i.e., test steps and sub-steps). In response to the entry of each test step, theproductivity software 100 a generates atest step vertex 442 and anedge 443 between thetest step vertex 442 and the test ofcontrol vertex 404 that represents the particular test of control being carried out. In response to the entry of each attribute for a given test, theproductivity software 100 a generates anattribute vertex 426, anedge 430 between theattribute vertex 426 and theattribute matrix vertex 424, and anedge 430 between theattribute vertex 426 and the test step vertex 442 (corresponding to the test step to which the attribute belongs). Theproductivity software 100 a adds the attribute tests to thevisual representation 1302 of the attribute matrix, as shown inFIG. 13C . - In an embodiment, the
productivity software 100 a interprets thegraph database 112 such that theproductivity software 100 a displays only those attributes (e.g., only those column headers in the incoming csv file) whose vertices have edges to theattribute matrix vertex 424 as part of thevisual representation 1302. This allows for flexibility in the format and content of files provided by the provider. For example, three different providers might upload files having additional columns (i.e., additional to those columns that are needed to be displayed as part of the visual representation 1302). By restricting which attributes (e.g., which column headers) get edges generated to theattribute matrix vertex 424, the productivity software can ensure that only the relevant ones (e.g., the ones that need to be tested) are displayed. - According to an embodiment, the
requester 104 b may select (e.g., via a right-click menu on visual representation 1302) an option to create a request for theprovider 106 b to provide evidence (e.g., the samples themselves—the five checks in this example). Theproductivity software 100 a responds by presenting a user interface 1400 (shown inFIG. 14 ), which includesfields provider 106 b in this example) respectively. Theinterface 1400 also includes a file uploadbutton 1408 that opens a file upload interface to allow, for example, therequester 104 b to attach a sample file to give theprovider 106 b an idea of what sort of evidence is needed. Once therequester 104 b is finished entering the information, therequester 104 b selects the “Confirm Request”button 1410. Theproductivity software 100 a reacts to this by creating atask proxy vertex 414 representing the request, creating asample request vertex 450 representing the sample request, generating anedge 452 from the sample request vertex to therequest vertex 408, generating anedge 423 between therequest vertex 408 and the task proxy vertex 410 (FIG. 4A ) and adding the task to the provider'squeue 116. Theproductivity software 100 a also generates a notification (e.g., as shown inFIG. 14 ) regarding the request (including the message entered by therequester 104 b and a link to a portal such discussed above) and sends the notification (e.g., sends an email) to theprovider 106 b, which theprovider 106 b sees (on the third computing device 106). In response to theprovider 106 b selecting the link (once the portal opens) and the task representing the population request, theproductivity software 100 a displays auser interface 1500 that shows a more focused view of the task (FIG. 15 ). - In an embodiment, the
provider 106 b may then respond by locating files containing the requested evidence, uploading the files using an uploadinterface 1502, delegating this task by selecting the “Delegate Task”button 1504, or, once the files have been uploaded, submitting to the requester 104 b for approval by selecting the “Submit for Approval”button 1506. There are many possible types of files that could contain the requested evidence, include word processing documents, spreadsheets, image files, video files, email files, and audio files. In this example, theprovider 106 b uploads an image of the front of each check listed and selects “Submit for Approval.” Theproductivity software 100 a responds by creating a file vertex 418 (FIG. 4B ) for each image and generating anedge 454 from thesample request vertex 450 to the sample vertex 422 (i.e., the sample vertex corresponding to the entry for that check in the attribute matrix) and anedge 456 from thesample request vertex 450 to thefile vertex 418. Thus, if theprovider 106 b uploads five image files (each with an image of a respective check), theproductivity software 100 a creates fivefile vertices 418. Theproductivity software 100 a also adds a task to thequeue 114 of the requester 104 b (the task being to review the uploaded evidence). - According to an embodiment, when the requester 104 b opens the
dashboard 300, therequester 104 b will see the task on the “To Review Tab” 306, as shown inFIG. 16 . When the requester 104 b selects the task corresponding to the submission of evidence previously described (task 1602 ofFIG. 16 ), theproductivity software 100 a responds by providing an interface 1700 (FIG. 17 ) that displays a list of the samples and the pieces of evidence provided in support thereof. Theuser interface 1700 includes alist 1702 of pieces of evidence (images of checks in this case) that have been received and are ready for testing. The requester 104 b then may review the pieces of evidence (via selecting one of the icons 1704) and mark them as approved or to be returned (e.g., in the column 1706) to theprovider 106 b if, for example, the checks do not match what was requested). - In an embodiment, when the requester 104 b selects one of the icons of
column 1704, theproductivity software 100 a responds providing auser interface 1800 that includes animage 1802 of file (check, in this example) as shown inFIG. 18A , along with alist 1804 of test steps and attribute tests. In this context, the attribute tests are sub-steps of the overall test step. A given test step may have one or more attribute tests. Next to each attribute test is a check box, in which therequester 104 b may indicate whether the test of an attribute passed, failed, or is not applicable. The attributes in thelist 1804 are the same ones shown on thevisual representation 1302 of the attribute matrix and stored in thedatabase 112 in the vertices discussed previously. - In an embodiment, the
requester 104 b can interact with the user interface 1800 (e.g., drag and drop) to apply a step of a test to the appropriate part of theimage 1802 so as to create a visual indicator such as a markup at a particular location on the image 1802 (as displayed on the user interface 1800) and indicate the result of the test step at that location via the visual indicator. For example, assume that the requester 104 b drags test step 1A, “Verify Disbursement Date” over to the date on thecheck image 1802 and, through a pop-up menu (e.g., activated by a “right click” gesture), indicates that the particular attribute being tested (the disbursement date) has “passed.” Theproductivity software 100 a reacts by displaying amarkup 1806, as shown inFIG. 18B (a green rectangle, in this case), at the target area of the drag and drop gesture (e.g., on a portion of the image 1802). In some embodiments, theuser interface 1800 permits a user to select the shape (e.g., rectangle, square, teardrop) and/or color of the markup (e.g., green for pass, red for fail) that is to be applied to the evidence. In others, there are no choices for the shape or the color (e.g., the color is dictated by the representative icon or markup to be used such as pass=green, fail=red). Furthermore, theproductivity software 100 a reacts to this drag-and-drop gesture by creating the markup vertex 412 (FIG. 4B ) and generating anedge 434 from themarkup vertex 412 to thefile vertex 418 representing the file containing theimage 1802. - According to an embodiment, the
productivity software 100 a also updates a visual representation 1810 of the matrix to indicate whether the evidence has passed the attribute test (e.g, green check mark for “pass” and red X for “fail”) as shown, for example, inFIG. 18B . The requester 104 b can repeat this process for other attributes so as to test, for example, the signature and memo fields resulting in a green rectangle markup 1808 (indicating that the signature “passes”) and a red rectangle markup 1812 (indicating that the memo field “fails”). As the results of the tests results are entered by therequester 104 b, theproductivity software 100 a updates thegraph database 112 by generating additional markup vertices 412 (e.g., one markup vertex per markup) and generating anedge 434 from it to thefile vertex 418 of that image.markup vertex 412 that is connected to thefile vertex 410 representing the file containing theimage 1802. - In an embodiment, the
requester 104 b indicates whether the overall test step passes or fails by annotating the check box next to the attribute in thelist 1804. Theproductivity software 100 a indicates the pass or fail status even if not all of the tests of the individual attributes have the same result. Theproductivity software 100 a represents the overall pass or fail status in the “result” property of theattribute data vertex 433. Furthermore, therequester 104 b can enter a footnote to, for example, explain the result of the test. Theproductivity software 100 a responds by creating afootnote vertex 458 in thegraph database 112 and generating avertex 460 from theattribute data vertex 433 to thefootnote vertex 458. - It should be understood that the exemplary embodiments described herein should be considered in a descriptive sense only and not for purposes of limitation. Descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in other embodiments. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from their spirit and scope as set forth in the following claims. For example, the actions described herein can be reordered in ways that will be apparent to those of skill in the art.
- Also, other implementations of the various user interfaces shown herein may be used without departing from the scope and spirit of the disclosure. For example, the
user interface 1800 ofFIGS. 18A and 18B may, instead of check boxes, provide a button that visually indicates the current result but brings up a dropdown menu when a user selects the button. The dropdown menu can include choices like “pass,” “fail,” “not reviewed,” or “N/A.” Similarly, theuser interface 1800 may, instead of creating a rectangle when an attribute is dragged onto the displayed sample (the displayed evidence), display a different shape, such as a teardrop shape.
Claims (10)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/681,960 US10216706B1 (en) | 2017-08-21 | 2017-08-21 | Method and computing device for facilitating data sample testing |
US16/209,005 US11586704B2 (en) | 2017-08-21 | 2018-12-04 | Method and computing device for facilitating data sample testing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/681,960 US10216706B1 (en) | 2017-08-21 | 2017-08-21 | Method and computing device for facilitating data sample testing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/209,005 Continuation US11586704B2 (en) | 2017-08-21 | 2018-12-04 | Method and computing device for facilitating data sample testing |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190057064A1 true US20190057064A1 (en) | 2019-02-21 |
US10216706B1 US10216706B1 (en) | 2019-02-26 |
Family
ID=65361473
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/681,960 Active US10216706B1 (en) | 2017-08-21 | 2017-08-21 | Method and computing device for facilitating data sample testing |
US16/209,005 Active 2037-12-22 US11586704B2 (en) | 2017-08-21 | 2018-12-04 | Method and computing device for facilitating data sample testing |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/209,005 Active 2037-12-22 US11586704B2 (en) | 2017-08-21 | 2018-12-04 | Method and computing device for facilitating data sample testing |
Country Status (1)
Country | Link |
---|---|
US (2) | US10216706B1 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190317819A1 (en) * | 2018-04-17 | 2019-10-17 | Adp, Llc | Methods and devices for enabling distributed computers to communicate more effectively in an enterprise requiring flexible approval notifications |
US11010456B2 (en) | 2018-04-17 | 2021-05-18 | Adp, Llc | Information access in a graph database |
US11055362B2 (en) | 2018-04-17 | 2021-07-06 | Adp, Llc | Document distribution in a graph database |
CN113138933A (en) * | 2021-05-13 | 2021-07-20 | 网易(杭州)网络有限公司 | Data table testing method, electronic device and storage medium |
US20220147569A1 (en) * | 2020-11-11 | 2022-05-12 | Mapped Inc. | Graph data enrichment |
US11922125B2 (en) | 2022-05-06 | 2024-03-05 | Mapped Inc. | Ensemble learning for extracting semantics of data in building systems |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360332B1 (en) * | 1998-06-22 | 2002-03-19 | Mercury Interactive Corporation | Software system and methods for testing the functionality of a transactional server |
WO2009149262A1 (en) * | 2008-06-04 | 2009-12-10 | Us Biomedical Information Systems, Inc. | Methods and systems for creating and editing a graph data structure |
US8375291B2 (en) * | 2008-11-07 | 2013-02-12 | Web Filings, Inc. | Method and system for generating and utilizing persistent electronic tick marks |
US8732208B2 (en) * | 2010-04-19 | 2014-05-20 | Facebook, Inc. | Structured search queries based on social-graph information |
US9529629B2 (en) * | 2012-12-20 | 2016-12-27 | Bank Of America Corporation | Computing resource inventory system |
US9679078B2 (en) * | 2014-05-21 | 2017-06-13 | Facebook, Inc. | Search client context on online social networks |
US9720687B2 (en) * | 2014-08-27 | 2017-08-01 | ValGenesis, Inc. | Validating and maintaining respective validation status of software applications and manufacturing systems and processes |
US20160349969A1 (en) * | 2015-05-31 | 2016-12-01 | Cisco Technology, Inc. | Automated User Interface Experimentation |
-
2017
- 2017-08-21 US US15/681,960 patent/US10216706B1/en active Active
-
2018
- 2018-12-04 US US16/209,005 patent/US11586704B2/en active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190317819A1 (en) * | 2018-04-17 | 2019-10-17 | Adp, Llc | Methods and devices for enabling distributed computers to communicate more effectively in an enterprise requiring flexible approval notifications |
US10802881B2 (en) * | 2018-04-17 | 2020-10-13 | Adp, Llc | Methods and devices for enabling distributed computers to communicate more effectively in an enterprise requiring flexible approval notifications |
US11010456B2 (en) | 2018-04-17 | 2021-05-18 | Adp, Llc | Information access in a graph database |
US11055362B2 (en) | 2018-04-17 | 2021-07-06 | Adp, Llc | Document distribution in a graph database |
US11556105B2 (en) * | 2020-11-11 | 2023-01-17 | Mapped Inc. | Graph data enrichment |
US20220147569A1 (en) * | 2020-11-11 | 2022-05-12 | Mapped Inc. | Graph data enrichment |
US11561523B2 (en) | 2020-11-11 | 2023-01-24 | Mapped Inc. | Subtended device mapping through controller introspection |
US11561522B2 (en) | 2020-11-11 | 2023-01-24 | Mapped Inc. | Data mapping based on device profiles |
US11573551B2 (en) | 2020-11-11 | 2023-02-07 | Mapped Inc. | Automatic discovery of relationships among equipment through automated cycling and observation |
US11586167B2 (en) | 2020-11-11 | 2023-02-21 | Mapped Inc. | Automatic discovery of relationships among equipment through observation over time |
US11940770B2 (en) | 2020-11-11 | 2024-03-26 | Mapped Inc. | Automated data integration pipeline with storage and enrichment |
US11973653B2 (en) | 2020-11-11 | 2024-04-30 | Mapped Inc. | Automatic discovery of automated digital systems through link salience |
CN113138933A (en) * | 2021-05-13 | 2021-07-20 | 网易(杭州)网络有限公司 | Data table testing method, electronic device and storage medium |
US11922125B2 (en) | 2022-05-06 | 2024-03-05 | Mapped Inc. | Ensemble learning for extracting semantics of data in building systems |
Also Published As
Publication number | Publication date |
---|---|
US10216706B1 (en) | 2019-02-26 |
US11586704B2 (en) | 2023-02-21 |
US20190108197A1 (en) | 2019-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586704B2 (en) | Method and computing device for facilitating data sample testing | |
US10510172B2 (en) | Automated combination of multiple data visualizations | |
US11050851B2 (en) | Drag-and-drop clipboard for HTML documents | |
JP6426740B2 (en) | Joint Video Editing in Cloud Environments | |
US8640037B2 (en) | Graphical overlay related to data mining and analytics | |
US20150012815A1 (en) | Optimization schemes for controlling user interfaces through gesture or touch | |
US11385775B2 (en) | Intelligent monitor and layout management | |
US10223698B2 (en) | Integrating a web-based CRM system with a PIM client application | |
US9740668B1 (en) | Plotting webpage loading speeds and altering webpages and a service based on latency and pixel density | |
US11507497B2 (en) | Methods and systems for automated testing using browser extension | |
US20090249238A1 (en) | Automated directing of data to an application | |
US20160125527A1 (en) | Financial Information Management System and User Interface | |
JP2023107749A (en) | Browser-based robotic process automation (RPA) robot design interface | |
US12101373B2 (en) | Systems and methods for using a browser to design robotic process automation (RPA) robots | |
US7716687B2 (en) | System and method for sharing resources between web applications | |
US10417317B2 (en) | Web page profiler | |
US9792008B2 (en) | User interface with analytics overlay | |
US11194835B2 (en) | Communication system and method for providing data visualizations | |
US20200244748A1 (en) | Analysis and Visualization of Session Paths | |
US10331464B2 (en) | Method and system for an adaptive contextual instruction tool | |
US10902146B2 (en) | Method and computing device for gating data between workspaces | |
US20070006088A1 (en) | System and method for providing collaboration resources between web applications | |
US9158433B1 (en) | Graphical user interface text selection and processing in client applications employing a screen-at-a-time based communication protocol | |
US20230274082A1 (en) | Smart form management systems and methods | |
US12086618B2 (en) | Service virtualization platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: WORKIVA INC., IOWA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BONK, JOHN;GILSDORF, RYAN;MORSE, JAMES MICHAEL;AND OTHERS;SIGNING DATES FROM 20170809 TO 20170818;REEL/FRAME:043347/0080 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: WORKIVA INC., IOWA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CONNELL, THOMAS RYAN;REEL/FRAME:049042/0404 Effective date: 20190430 |
|
CC | Certificate of correction | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |