text:
|Publication number
|Publication type
|Application number
|Publication date
|Nov 23, 2004
|Filing date
|Sep 12, 2000
|Priority date
|Sep 12, 2000
|Fee status
|Publication number
|Richard D. Prologo, Bruce D. Katis
|Original Assignee
|Microsoft Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (13), Referenced by (55), Classifications (6), Legal Events (5)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention generally relates to computers and software, and more particularly to the testing of software.
One competitive advantage for a successful computer software application is the ability to rapidly update the product. One of the most costly tasks associated with the updating of software is the testing phase, which is performed to ensure that the final delivered software application meets certain quality requirements and correctly incorporates the updates. For example, tax preparation software needs to frequently and rapidly change to reflect changes in tax laws, and after each such change, the software needs to be thoroughly tested to ensure that the various calculations and other information in the generated tax return correctly incorporates the changes and otherwise has no errors.
Currently, one approach for testing software applications, such as a tax preparation software application, is to have experts specializing in the area relevant to the software application use selected input data and create known, correct output results based on the input data. For example, in tax preparation software, the experts complete tax returns using appropriate sample data. Then, the experts manually compare their known, correct tax returns against the tax returns generated by the updated application using the same sample input data, to see if any differences exist. This approach is extremely labor-intensive and is prone to errors. Further, this approach requires software companies to retain a large number of personnel that specialize in areas relevant to each software application. All these factors increase the costs associated with producing the software application.
Given the above limitations, there is a need for a more efficient way to test updated software applications.
Briefly, the present invention provides a system and method for automating the testing of software processing environment changes. Processing environment changes include any form of update to software, such as an update to a calculation within a software application, a change to components of a website, such as to web pages or the like. A user, typically an expert specializing in the area relevant to the processing environment (e.g., a "tester"), creates a test representation that is assumed to be completely correct. The test representation includes sample input information, e.g., the data used to complete a tax return. The test representation may be saved as a file on a network drive. Typically, there are multiple testers each having one or more test representations. Information describing each of the test representations are input, e.g., via a website, by the testers and may be stored in a database at the website.
To test a changed processing environment, a comparison mechanism reads the information stored in the database and obtains a location for each of the test representations stored on the network drive. For each test representation, the comparison mechanism processes the inputs from the test representation and produces a generated output using the changed processing environment. The generated output is compared with a known-good output, saved in a key file, (if one exists yet) for that test representation. If the key file exists, and there are no differences resulting from the changed processing environment, i.e., the generated output matches the key file associated with the test representation, the comparison mechanism saves the generated output as a new key file and updates one or more tables. If any differences are found, an error is generated and sent to the tester, and both files (e.g., the key file and the subsequent generated output file) are saved for review by the tester. If no key file associated with the test representation exists, the generated output may be automatically saved as the key file for that test representation.
If an error has been logged against one of the tester's test representations, the tester may be notified via the Internet, such as through email. Printing and specially formatted output (e.g., electronic tax returns) are handled similarly, with special rules enforced to test the compliance (e.g., order and format) of the resultant output with the required output.
In one embodiment, the generated output file is output as an XML (extensible Mark-up Language) file. Thus, the first time the test representation is processed, the generated output file is saved as an XML key file. In this way, the comparison mechanism performs the comparison using the XML files rather than the default file format associated with the application being tested. The XML files created in accordance with the present invention need not be order dependent. Any errors for the test representation may be stored in an error file, which may also be an XML file. This XML error file allows the tester to view the errors in the error file via the web without needing to use the application associated with the upgraded processing environment.
These and other aspects of the invention, together with the benefits and advantages realized, will become apparent from a reading of the following detailed description in conjunction with the drawings, in which:
FIG. 1 is a block diagram representing a computer system into which the present invention may be incorporated;
FIG. 2 is a functional block diagram generally representing an illustrative automated testing system for testing a changed processing environment in accordance with one aspect of the present invention;
FIG. 3 is a graphical representation of one embodiment of a user interface used to submit information concerning a test representation to a testing site;
FIG. 4 is a logical flow diagram which generally describes a process for creating a test representation for the automated testing system in accordance with one aspect of the present invention;
FIGS. 5A-5B are logical flow diagrams which generally describe a testing process for comparing output generated using a prior processing environment with output generated using an upgraded processing environment in accordance with one aspect of the present invention; and
FIGS. 6A-6D are illustrative tables used for storing information generated by the testing process of FIGS. 5A-5B.
Exemplary Operating Environment
FIG. 1 and the following discussion are intended to provide a brief general description of a suitable computing environment in which the invention may be implemented. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer. Generally, program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types.
Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a conventional personal computer 20 or the like, including a processing unit 21, a system memory 22, and a system bus 23 that couples various system components including the system memory to the processing unit 21. The system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read-only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system 26 (BIOS), containing the basic routines that help to transfer information between elements within the personal computer 20, such as during start-up, is stored in ROM 24. The personal computer 20 may further include a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD-ROM, DVD-ROM or other optical media. The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical drive interface 34, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the personal computer 20. Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 29 and a removable optical disk 31, it should be appreciated by those skilled in the art that other types of computer readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read-only memories (ROMs) and the like may also be used in the exemplary operating environment.
A number of program modules may be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including an operating system 35 (preferably the Windows� 2000 operating system). The computer 20 includes a file system 36 associated with or included within the operating system 35, such as the Windows NT� File System (NTFS), one or more application programs 37, other program modules 38 and program data 39. A user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. In addition to the monitor 47, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The personal computer 20 may operate in a networked environment using logical connections to one or more remote computers 49. The remote computer (or computers) 49 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 20, although only a memory storage device 50 has been illustrated in FIG. 1. The logical connections depicted in FIG. 1 include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are commonplace in offices, enterprise-wide computer networks, Intranets and the Internet.
When used in a LAN networking environment, the personal computer 20 is connected to the local network 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a modem 54 or other means for establishing communications over the wide area network 52, such as the Internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the personal computer 20, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Illustrative Automated Testing System
In accordance with an aspect the present invention, the automated testing system provides automatic testing of changes to a processing environment, such as by modifying some of the calculations within a software application. A test representation is created and is used to automatically test each processing environment change, (e.g., software build). If there are any errors, a tester associated with the test representation is notified so that the tester may perform additional checking. Thus, the tester's checking time is substantially lessened and may be used in more productive tasks, such as creating additional tests. In addition, the present invention is less prone to human errors. While the following discussion describes the automated testing system in the context of changes to tax calculations in a tax preparation software application, the automated testing system may also test changes to other processing environments such as changed web pages or the like that when rendered, are suppose to produce some known content.
FIG. 2 is a functional block diagram that, together with the following discussion, provides a brief, general description of an illustrative automated testing system for testing a changed processing environment in accordance with one aspect of the present invention. The automated testing system 200 may include a client machine 202 (e.g., the computer system 20) coupled to a Web server machine 204 (e.g., the remote computer 49). The client machine 202 and the Web server machine 204 communicate with each other through the Internet 206. Alternatively, the client machine 202 and the Web server machine 204 may be connected through a local area network or the like (e.g., in an Intranet).
A tester, typically an expert specializing in the area relevant to a particular processing environment 208 (e.g., tax preparation and calculations), uses an application 207 associated with the processing environment 208 to create one or more test representations 210 on the client machine 202. The test representations 210 include input data 211, and possibly include corresponding known-good output results 213 based on the processing environment 208, e.g., for saving to a key file associated with this test representation. Each of the test representations 210 is assumed to be completely correct. The test representations 210 may be saved as a file on a network drive (e.g., hard disk 27). As one can appreciate, there may be multiple testers each creating one or more test representations 210 using one or more client machines 202.
The Web server machine 204 located at a test site, e.g., test website 215, includes an updated processing environment 220, e.g., associated with a different application version 207′ of the application 207, a comparison mechanism 218 and a user interface 217. In general, in one embodiment illustrated in FIG. 3 and described below, the user interface 217 may appear as a form 214 when received at the client machine 202 and processed by the browser 212. The form 214 provides a tester with a mechanism for inputting information regarding each test representation 210 on the client machine 202 to an associated profile 221, which may be stored in a database 216 at the test website 215. The comparison mechanism 218, illustrated in detail in FIGS. 5A-5B and described below, accesses the profiles 221 in the database 216 to get the information regarding each test representation 210. The comparison mechanism 218 also enters the inputs 211 provided via the form 214 into the application 207′. The application 207′ then generates outputs (e.g., generated outputs 222) based on the inputs 211. Each of the generated outputs 222 correspond to one of the test representations 210 after processing by the comparison mechanism 218. For each of the test representations 210, the comparison mechanism 218 compares the generated output 222 with the known-good output as saved in a key file 224, (if one exists) associated with that test representation 210. If the generated output 222 matches the known-good output as saved in the key file 224, the comparison mechanism 218 saves the generated output 222 as a new key file, as described below. Note that as described below, the match need not be exact, e.g., it may be considered as having no differences if the order has changed but otherwise the results match. Also, the results may otherwise match excluding new information added to the new results, whereby a different type of error may be generated. For example, in a tax return, a new form that is generated may not be considered a calculation error if that new form has no impact on the various calculations, but instead may yield an error that notifies the tester that a new form was introduced. The comparison mechanism 218 may additionally update one or more tables 228 to reflect the results of processing performed by the comparison mechanism 218. Various illustrative tables used by the system for storing and monitoring information are illustrated in FIGS. 6A-6D and described below.
If any differences are found between the generated output 222 and the key file 224, an error log 226 is generated and sent to the tester for review. The generated output 222, key files 224, error log 226 and the result tables 228 may be stored on the hard disk 227 of the Web server machine 204 or may be stored on any other storage device coupled to the Web server machine 204.
In one embodiment, the Web server machine 204 further includes an email service 230 responsible for notifying the testers of any errors in the error log 226 that are associated with the tester's test representations 210. As one skilled in the art will appreciate, the email service 230 may be part of an operating system, part of a browser application, or a stand-alone application.
FIG. 3 is a representation of one embodiment of a form 214 used to submit information about a test representation 210 to a testing website 215. In this embodiment, the form 214 includes textual input fields for supplying information. The representative form 214 may have several textual input fields, such as a filename field 302, a directory field 304, an owner field 306, and a form type field 308. The filename field 302 provides a location for the tester to input the name of the test representation file 210 stored on the network drive. The directory field 304 provides a location for the tester to input a drive name and a path for the test representation file listed in the filename field 302. Briefly, the filename field 302 and the directory field 304 are used by a process of the comparison mechanism, illustrated in FIGS. 5A-5B and described further below, to access the associated test representation 210. The owner field 306 provides a location for the tester to input an owner name, such as an email address or the like. The owner name listed in this field is notified if an error occurs during the processing by the comparison mechanism 218. The form type field 308 provides a location for the tester to input a code that identifies the type of the test representation. For example, if a tax application is being tested, the form code field may specify whether the data corresponds to a personal tax return or a business tax return, and so on. In addition, the form 214 includes a submit button 310 that may be selected by the tester to transfer the information identified on the form 214 to the test Web site 215 for processing and storing as one of the profiles 221. An ASP (Active Server Page) acting as a wizard may be used to allow the testers to enter new profiles. In addition, the form may allow previous test representations to be searched, deleted, and modified.
Optionally, the form 214 may further include a print selection box 312 and an e-file selection box 314. Briefly, the tester selects the print selection box 312 to indicate whether the comparison mechanism 218 prints results in a specified format, such as Internal Revenue Service (IRS) specified format. Alternatively, the tester may select the e-file selection box 314 to indicate whether the comparison mechanism 218 should translate the results into an IRS electronic filing format. Note that this information is used by the comparison mechanism to make sure the generated output precisely matches IRS requirements, e.g., printed forms must "print out" (although as test cases they are not necessarily physically printed) in the correct order, while data output for an electronic filing format must be formatted exactly as required.
Additional selection boxes (or other input mechanisms) may be provided. For example, a selection box specifying "Acceptance Test" can be selected to run only a portion of the tests. This may be beneficial in certain situations, such as if the entire process takes many hours, e.g., an "Acceptance Run" can be conducted in a shorter period of time giving a high-level acceptance to the new application version, prior to conducting a full run. Likewise, a selection box can also address other application features, such as requesting spell checker passes on the output files.
FIG. 4 is a logical flow diagram which generally describes a process performed by the testers to provide a test representation 210 to the automated testing system 200 in accordance with one implementation of the present invention. The process begins at block 400, where a tester chooses to create a profile 221 at the testing website 215, and proceeds to block 402.
At block 402, the tester runs the application 207 which is to undergo one or more changes (e.g., updates) during development. Using a user-interface provided by the application 207, the tester creates a test representation 210 that is written in a default file format of the application (e.g., an "mtx" file for a TaxSaver tax preparation software application). The test representation 210 includes inputs 211 determined by the tester and known-good outputs 213 calculated by the application 207 based on the inputs 211. The tester is responsible for verifying that the inputs 211 and known-good outputs 213 are correct for the test representation 210 and thus, that the test representation 210 is correct. As one skilled in the art will appreciate, before the test representation 210 can be correct, the application 207 is presumed to have passed a quality check so that the application 207 will not introduce any unknown errors into the test representations 210. After creating the test representation 210, the process proceeds to block 406.
At block 406, the test representation 210 is saved to a network drive. In one embodiment, the network drive is accessible to the testing website 215 for reading and perhaps writing an updated test representation to the network drive, such as the updated test representation being created using the updated application 207′ with the updated processing environment 208. The process proceeds to block 408, where a tester accesses a testing website 215 using a browser capable service 212 that communicates with the testing website 215 via a network, such as the Internet 206 or an intranet. In one embodiment, the browser 212 translates the user interface 217 provided by the web server machine 204 into a form, such as form 214, for display at the client machine 202. After accessing the testing website 215, the process proceeds to block 410.
At block 410, the tester inputs information regarding the test representation 210 created in block 402. In one embodiment, the information is entered on the form 214 provided by the testing Website 215, as illustrated in FIG. 3 and described above.
At block 412, the information input on the form 214 is submitted to the testing Website 215, and the process proceeds to block 414, where the Web server 204 reads the information. The Web server 204 then writes the information, at block 416, into one of the profiles 221 stored in the database 216. Briefly, the profile 221, illustrated in FIG. 6A and described below, contains the information input by the tester in block 410, thus the profile points to the physical drive location for each test representation. The create profile process then ends.
FIGS. 5A-5B are logical flow diagrams which generally describe a testing process (e.g., of the comparison mechanism 218) for comparing output generated from a prior processing environment with output generated by a changed processing environment, in accordance with one implementation of the present invention. The process begins at block 500, where the automated testing system has been started such as automatically during a boot-up process, by a timed process or manually through a user interface, and proceeds to block 502.
At block 502, the latest build of the processing environment (e.g., an updated version of an application) is started and the process proceeds to block 503. At block 503, the comparison mechanism 218 may optionally update its database 216 such as to remove a profile from the database that was marked as deleted by one of the testers. One exemplary table is illustrated in FIG. 6B and described in further detail below. The process proceeds to decision block 504.
At decision block 504, the process determines whether there are any profiles 221 in the database 216. In one embodiment, the process issues a SQL statement to the database 216 to locate the profiles that are not set to "ByPass." Briefly, ByPass is a field within a test table used to indicate whether the associated test representation should be run by the comparison mechanism 218. One sample test table showing the ByPass field is illustrated in FIG. 6A and described further below. As long as there is at least one profile 221 available, the process proceeds to block 506, where a profile 221 is retrieved from the database 216. The process then proceeds to block 508.
At block 508, the test representation specified in the retrieved profile 221 is opened using the updated version of the application 207′. Using the inputs specified in the test representation, the updated version of the application 207′ generates an output file at block 510. At this point, in one embodiment, the output file has the default file format associated with the updated version of the application (e.g., an "mtx" file extension for a TaxSaver tax preparation software application). The process proceeds to decision block 512.
At decision block 512, the process determines whether a key file associated with the current profile exists. The first time the profile is processed, a key file does not exist so the process proceeds to block 524, where the generated output file is saved as the key file. This key file (e.g., created with the prior processing environment) will then be used for comparing subsequent generated output files (e.g., created with the changed processing environment). The process proceeds to block 526, where one or more of the results tables are updated. The process then loops back to decision block 504 and continues processing as described above on another profile or until no more profiles remain.
Returning to decision block 512, after the initial processing of the profile to create a key file, any subsequent processing of the profile proceeds to block 530 (entry point B) of FIG. 5B. At block 530, the output file is compared with the key file. If there are any differences between the two files, the process proceeds from decision block 532 to block 538. At block 538, the process updates any tables as appropriate to identify the difference, such as the sample result table illustrated in FIG. 6B and described below. However, if there are not any differences, the process proceeds to block 534, where the test representation specified in the associated profile is saved using the updated version of the application 207′. Thus, if the earlier test representation was stored on the hard disk of the client machine, the new test representation may be stored at the test Website and the source field in the test table, (illustrated in FIG. 6A and described below), is modified to reflect the change in the location. The process then proceeds to block 536.
At block 536, the output file becomes the key file, such as by copying the output file as the key file. Thus, the "new" key file will get a new date and time stamp corresponding to the date and time of the latest successful processing environment change. This allows the testers to easily and visually determine on which day the processing environment change affected their test representations. In addition, by copying the output file as the key file, any new calculations specified in the test representation that resulted in additional outputs will be saved in the key file for later comparisons. The process then proceeds to block 538 to update the results as described above, after which the process loops back to decision block 504 (entry point C) in FIG. 5A and proceeds as also described above.
Returning to decision block 504 in FIG. 5A, once all the profiles in the database have been processed, the process proceeds to block 514. At block 514, the results are retrieved from any of the results tables and may, optionally, be sent to the tester at block 516. In one embodiment, the results may be emailed to the tester via the Internet 206 in a human-readable format, such as an XML format. For example, the comparison mechanism 218 may send one email message to each tester for any test representations owned by that tester. Thus, each tester will receive an email for each test representation owned thereby. The tester is responsible for determining the source of the error and informing the comparison mechanism's process about the determination. For example, the tester may verify that there is a discrepancy in the test representation that has not yet been corrected, may update the test representation to overcome the discrepancy (resulting in this test representation becoming the "new" key file), or may remove the test representation from further processing by the comparison mechanism 218. The process then ends at block 518. When another processing environment change occurs, the "new" processing environment is used to produce the generated output and proceeds as described above.
In an alternative embodiment, at block 510, instead of using the default file format of the application, the process converts the default file format into an hierarchical XML format. For this embodiment, another database (form database 231 in FIG. 2) may be accessed to obtain a file based on the type of form specified in the profile for the test representation. Each form available in the other database may list the forms included in the file, list their respective field entries, list an associated attribute (e.g., input, calculated, override, and the like), list an input type (e.g., money, string, ratio, multi-line object, and the like), and a value. For example, one file may list the 1040 form with field "income", attribute as "input", input type as "money", and value as "$40,000".
In addition, a Document Type Definition (DTD) or XML schema may be created that defines how the markup tags in the XML file are interpreted. The data in the default file format is then translated into the proper format as specified by the form. Therefore, when the generated file is saved as the key file at block 536, the key file also is in XML format. The comparison process in block 530 (FIG. 5B), then compares the two XML files (e.g., the XML output file and the XML key file) without depending on the exact order of the file. For example, the comparison may proceed by "walking" the key file against the output file, meaning that each field, attribute, and value are checked to determine whether any of the values have changed. Furthermore, the comparison may compare the list of forms in the output file with the list of forms in the key file. For any additional forms, an error may be logged and sent to the tester for proper action. Appendix A is one example of an actual XML form of type "1040" for a tax preparation software application. The output file and the key file would thus have similar formats with actual data stored in their respective files. Ultimately, the XML files may be sent to the United States Internal Revenue Service for processing via the Web.
This alternative embodiment allows the error log to easily be generated in an XML format. Thus, if the errors are sent via email, the email message may have a pointer to the XML error log which allows the tester to view the errors on the Web in an understandable, readable manner. In addition, the XML key file and XML output file may be sent to the tester for convenient viewing. Appendix B is one example of an actual error log in XML format. Briefly, the error log shows that test representation "tested 1040_sample.xml" with its associated key file in the key file directory has the following differences: a value of 99 rather than 100 in the Form 2210, Underpayment of Estimated Tax; a value of 12 rather than 15, and a value of 6 rather than 7 in the Penalty Calculation Statement (Form 2210); and a value of 20000 rather than 21000 in two fields in the Form 2210-F, Underpayment of Estimated Tax by Farmers and Fisherman. For this alternative embodiment, the comparison mechanism may be less intelligent about the structure of the default file format and if the default file format changes, the comparison mechanism will not be greatly impacted. In addition, this alternative embodiment does not require the tester to run the software application with the updated processing environment in order to determine the errors.
FIGS. 6A-6D are illustrative tables used for storing information generated by the testing process of FIGS. 5A-5B. FIG. 6A illustrates a first table 600 for storing information about each specific test representation (e.g., a profile). A FileName field 602 stores the name of the file used to test the validity of the changed processing environment. A Source field 604 stores the physical location for the file specified in the FileName field 602. A Destination field 606 stores the physical location for the output file generated by the processing shown in FIGS. 5A-5B. A FormCode field 608 stores the type of form for the test representation (e.g., the form type as specified by the tester via the form 214). A Key field 610 stores the file name and physical location of the file which will be compared with the file specified in the Filename Field 602 and the Source Field 604. A ByPass field 612 stores an indicator signaling whether the comparison mechanism should process the test representation associated with this entry. An owner field 614 stores an email address for the tester responsible for the test representation associated with this entry. In the illustrative first table, the ByPass field 612 accepts an integer while other fields accept strings (e.g., VarChar(255)).
FIG. 6B illustrates a second table 620 for storing information about each test representation that failed the comparison mechanism's evaluation process. The second table 620 includes a FileName field 622, a Source field 624, an Owner field 626, and a FormCode field 628 storing the same information as described above for FIG. 6A for fields having the same name. In addition, the second table 620 includes a Delete field 630 for storing a flag indicating whether a tester desires to delete the associated test representation from the database, and a TimeStamp field 632 for storing the time that the comparison mechanism 218 completed processing the test representation.
FIG. 6C illustrates a third table 640 for storing information about each test representation that failed the comparison mechanism's evaluation process based on the type of form. Again, the third table 640 includes fields similar to fields in the first table 600, such a FormCode field 642, and a ByPass field 650. In addition, the third table 640 includes a NumberOfTests fields 644 for storing a value representing the number of test representations that used the form specified in the FormCode field 642. The third table 640 also includes a Success field 646 for storing a value representing the number of test representations that successfully passed the comparison mechanism's process for the form specified in the FormCode field 642. In addition, the third table 640 includes a Failed field 648 for storing a value representing the number out of the NumberOfTests field 644 that failed the comparison mechanism's process. The third table 640 may be used to identify potential errors with the changed processing environment so that testers may be alerted that the upgraded software application may have an error rather than their test representations.
FIG. 6D illustrates a fourth table 660 for storing information about each test representation that failed the comparison mechanism's process based on the tester. The fourth table 660 includes fields similar to fields in the first table 600 and the third table 640, such as an Owner field 662, a NumberOfTests fields 664, a Success field 666, a Failed field 668, and a ByPass field 670. The NumberOfTests fields 664 stores a value representing the number of test representations having the tester listed in the Owner field 660. The fourth table 660 may be used when sending an email message to the tester with the results of the comparison mechanism process.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific form or forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.
|Cited Patent
|Filing date
|Publication date
|Mar 30, 1989
|Jun 4, 1991
|Elverex Limited
|Software verification apparatus
|Jun 16, 1989
|Jun 2, 1992
|International Business Machines Corporation
|System and method for software error early detection and data capture
|Dec 15, 1995
|May 26, 1998
|Plum; Thomas S.
|Computer software testing method and apparatus
|Jul 9, 1997
|Jul 6, 1999
|General Electric Company
|Methods and apparatus for generating test vectors and validating ASIC designs
|Jun 9, 1995
|Aug 10, 1999
|Canon Information Systems, Inc.
|Outputting a network device log file
|Jul 20, 1998
|Mar 21, 2000
|Telecordia Technologies, Inc.
|System and method for generating year 2000 test cases
|Jun 1, 2000
|Jul 31, 2001
|Testing Technologies, Inc.
|Technology regression and verification acceptance method
|Feb 18, 2000
|Feb 12, 2002
|Mobilesys, Inc.
|Apparatus and method for converting a network message to a wireless transport message using a modular architecture
|Sep 24, 1999
|Jul 30, 2002
|Worldcom, Inc.
|Performing automated testing using automatically generated logs
|Dec 15, 1999
|Dec 3, 2002
|Electronics For Imaging, Inc.
|System and method for printer output regression testing using display lists
|Jan 19, 2001
|Apr 6, 2004
|Hitachi, Ltd.
|Fault monitoring system
|May 1, 2003
|Mar 25, 2004
|Per-Ola Robertsson
|Bi-directional probing of software
|Jan 16, 2001
|Mar 13, 2002
|Hitachi, Ltd.
|A fault monitoring system
|Citing Patent
|Filing date
|Publication date
|Oct 12, 2001
|Jul 31, 2007
|Direct Computer Resources, Inc.
|System and method for data quality management and control of heterogeneous data sources
|Sep 19, 2003
|Nov 13, 2007
|International Business Machines Corporation
|Method, apparatus and computer program product for implementing autonomic testing and verification of software fix programs
|Feb 24, 2003
|Jan 1, 2008
|Fujitsu Limited
|Method, apparatus, and program for constructing an execution environment, and computer readable medium recording program thereof
|Dec 23, 2002
|Jul 1, 2008
|Sun Microsystems, Inc.
|Method and system for managing application server lifecycle
|Nov 7, 2007
|Sep 1, 2009
|Medin David T
|Method and system for extending the functionality of an environmental monitor for an industrial personal computer
|Nov 4, 2004
|Dec 22, 2009
|Intuit Inc.
|Automated data retrieval
|Jan 31, 2007
|Mar 2, 2010
|Microsoft Corporation
|Break and optional hold on failure
|Sep 7, 2007
|Apr 13, 2010
|Microsoft Corporation
|Test results management
|Apr 6, 2006
|Jun 29, 2010
|Intuit Inc.
|Automated tax return with universal data import
|Jun 1, 2005
|Aug 3, 2010
|Neustar, Inc.
|Systems and methods for website monitoring and load testing via simulation
|Oct 21, 2003
|Oct 5, 2010
|Adobe Systems Incorporated
|Cross-protocol URL mapping
|Jan 13, 2005
|Dec 28, 2010
|Intuit Inc.
|Proactive tax preparation
|Aug 20, 2007
|Jan 25, 2011
|Adobe Systems Incorporated
|Automatic set up for editing a web site
|Dec 21, 2004
|Mar 8, 2011
|Adobe Systems Incorporated
|Configurable file placement
|Jan 31, 2007
|Mar 29, 2011
|Intuit Inc.
|System and method for reducing return errors
|Oct 21, 2003
|Apr 5, 2011
|Adobe Systems Incorporated
|Content-restricted editing
|Jan 29, 2008
|Apr 12, 2011
|Microsoft Corporation
|Installing a solution
|Jan 14, 2005
|May 3, 2011
|Microsoft Corporation
|Structural editing operations for network forms
|Oct 21, 2003
|May 10, 2011
|Adobe Systems Incorporated
|Systems and methods for web site editing interfaces
|Oct 31, 2007
|Jun 28, 2011
|Microsoft Corporation
|Correlation, association, or correspondence of electronic forms
|Sep 1, 2005
|Jul 12, 2011
|Microsoft Corporation
|Network-based software extensions
|Dec 5, 2005
|Aug 16, 2011
|Microsoft Corporation
|Enabling electronic documents for limited-capability computing devices
|Apr 15, 2005
|Aug 30, 2011
|Microsoft Corporation
|Query to an electronic form
|Oct 29, 2007
|Dec 6, 2011
|Microsoft Corporation
|Methods and systems for delivering software
|Dec 5, 2006
|Feb 14, 2012
|Microsoft Corporation
|Incrementally designing electronic forms and hierarchical schemas
|Jun 29, 2005
|Jun 12, 2012
|Microsoft Corporation
|Digital signatures for network forms
|Oct 28, 2010
|Jun 19, 2012
|Intuit Inc.
|Instant tax return preparation
|Jun 15, 2011
|Apr 23, 2013
|Microsoft Corporation
|Correlation, association, or correspondence of electronic forms
|Oct 29, 2004
|Jul 16, 2013
|Microsoft Corporation
|Systems and methods for interacting with a computer through handwriting to a screen
|Apr 30, 2010
|Nov 12, 2013
|Intuit Inc.
|Systems and methods for generating and sending electronic messages related to a tax return
|Feb 8, 2008
|Nov 18, 2014
|Microsoft Corporation
|Translation file
|Apr 2, 2008
|Dec 23, 2014
|Microsoft Corporation
|Designing electronic forms
|Jun 13, 2011
|Dec 8, 2015
|Microsoft Technology Licensing, Llc
|Enabling electronic documents for limited-capability computing devices
|Mar 18, 2011
|Jan 5, 2016
|Microsoft Technology Licensing, Llc
|Electronic form user interfaces
|Oct 31, 2014
|Jan 19, 2016
|Microsoft Technology Licensing, Llc
|Translation file
|Apr 22, 2013
|Feb 23, 2016
|Microsoft Technology Licensing, Llc
|Correlation, association, or correspondence of electronic forms
|Feb 19, 2013
|Jun 7, 2016
|Arm Limited
|Generating trace data including a lockup identifier indicating occurrence of a lockup state
|Sep 22, 2011
|Jan 31, 2017
|Intuit Inc.
|System and method for populating a field on a form including remote field level data capture
|Aug 21, 2001
|Aug 15, 2002
|Todd Stanley
|Automated tax return with universal data import
|Jun 24, 2002
|Jan 16, 2003
|Francois Draperi
|Process monitor module
|Feb 24, 2003
|Aug 28, 2003
|Fujitsu Limited
|Method, apparatus, and program for constructing an execution environment, and computer readable medium recording program thereof
|Jan 22, 2002
|Oct 14, 2004
|Nielsen Andrew S.
|Method and system for imbedding XML fragments in XML documents during run-time
|Sep 19, 2003
|Mar 24, 2005
|International Business Machines Corporation
|Method, apparatus and computer program product for implementing autonomic testing and verification of software fix programs
|Nov 2, 2005
|May 25, 2006
|Complementsoft Llc
|System and method for generating and maintaining software code
|Apr 6, 2006
|Aug 10, 2006
|Intuit Inc.
|Automated Tax Return With Universal Data Import
|Jun 1, 2005
|Dec 7, 2006
|Drees Timothy P
|Systems and methods for website monitoring and load testing via simulation
|Oct 12, 2001
|Jun 28, 2007
|Stull Edward L
|System and method for data quality management and control of heterogeneous data sources
|Jan 31, 2007
|Jul 31, 2008
|Microsoft Corporation
|Break and optional hold on failure
|Sep 7, 2007
|Mar 12, 2009
|Microsoft Corporation
|Test results management
|Mar 31, 2008
|Oct 1, 2009
|International Business Machines Corporation
|Random access to historical program state for enhanced debugging
|Jun 20, 2009
|Dec 24, 2009
|Craig Jason Hofmeyer
|Pants with saggy pants control system
|Nov 29, 2011
|May 30, 2013
|Martin Vecera
|Systems and methods for providing continuous integration in a content repository
|Feb 19, 2013
|Aug 21, 2014
|Arm Limited
|Data processing apparatus and trace unit
|Jun 2, 2015
|Dec 8, 2016
|International Business Machines Corporation
|Early risk identification in devops environments
|Dec 27, 2012
|Jul 2, 2014
|Method and device for automated testing of terminal
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification
|Sep 12, 2000
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PROLOGO, RICHARD D.;KATIS, BRUCE D.;REEL/FRAME:011093/0432
Effective date: 20000906
|May 9, 2008
|Fee payment
Year of fee payment: 4
|Apr 25, 2012
|Fee payment
Year of fee payment: 8
|Dec 9, 2014
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0001
Effective date: 20141014
|May 12, 2016
|Fee payment
Year of fee payment: 12


text:
Beyoncé - Yoncé MP3
BEYONCÉ Platinum Edition. Available on iTunes: http://beyonce.lk/itunesplatinum Available on Amazon: http://beyonce.lk/platinumam Box Set includes : 2 New ...
Beyoncé - Partition (Explicit Video) MP3
BEYONCÉ Platinum Edition. Available on iTunes: http://beyonce.lk/itunesplatinum Available on Amazon: http://beyonce.lk/platinumam Box Set includes : 2 New ...
Beyonce - Yonce (Lyric Video) MP3
For lyric video inquiries & rates email: patking[at]nyu.edu A lyric video for the track "Yoncé" off of Beyonce's 2014 self-titled album.
Beyoncé Yonce Official Video 360p MP3
Beyoncé - Yoncé/Partition (Official Lyric Video) MP3
Beyoncé - Yoncé/Partition (Official Lyric Video) ole writer Timbaland co-write/production from Beyoncé's self-titled visual album. Follow ole! Facebook ...
YONCE - Beyonce | Choreography by Kyle Hanagami MP3
Make sure to subscribe for more videos: http://bit.ly/1LCpH0O and if you have any song suggestions for me to dance to in my next video, let me know in the ...
Joan Smalls On Beyoncé's "Yonce" Video, Victoria's Secret Pranks & Being Bullied MP3
I Yahoo'd Myself with supermodel Joan Smalls. Watch more on Yahoo Style: https://www.yahoo.com/style.
Vanessa Hudgens Dancing To "Yonce" By Beyonce MP3
Vanessa Hudgens dancing to "Yonce" by Beyoncé with some of her friends including BFF Laura New.
Beyoncé - Halo MP3
Beyoncé's official video for 'Halo'. Click to listen to Beyoncé on Spotify: http://smarturl.it/BeyonceSpot?IQid=BeyHalo As featured on I Am... Sasha Fierce. Click to ...
BeyoncéRemember those walls I built? Well, baby, they're tumbling down And they didn't even put up a fight They didn't even make a sound I found a way to let you in But I never really had a doubt Standing in the light of your halo I got my angel now It's like I've been awak[...]
Beyoncé "YONCE" - ft Charlize Glass - Choreography by Jose "Hollywood" MP3
Beyoncé - Yonce Choreography by Hollywood ft. Charlize Glass Video Production by Tim Milgram: http://youtube.com/timmilgram Dancers: Charlize Glass, ...
Beyonce - Yonce/ Partition Lyrics MP3
To all the people comment the correct lyrics. I got them from a website. So some of them may be wrong. I would like for you guys to stop telling me they are wrong ...
Zendaya Lip Singing Yonce ♥ MP3
She Is So Funny And Pretty And My Idol And A Great Styles Inspiration.
YONCE/PARTITION/ - Beyonce | S.D. crew | choreography KAY LIGHT | THE CENTER MP3
кара ме да се чувствам желана...обичана... Дава ми сигурност...надежда... А аз още не мога да повярвам, че е...
"'Yonce" Girls Joan Smalls and Chanel Iman on Season 3 Premiere of WELL DUNN with Jourdan Dunn MP3
Third time's a charm for Jourdan Dunn as Well Dunn with Jourdan Dunn returns for season three. In the season premiere Jourdan is joined by fellow "'Yonce" ...
Beyonce - Yonce/Partition MP3
Beyoncé - Flawless & Yoncé Live at MTV VMAs 2014 MP3
7/11 Live: https://www.youtube.com/watch?v=_QcEP2VmK2c Beyoncé performs a Medley of Flawless & Yoncé Live at MTV Video Music Awards 2014.
BEYONCE NEW SONG - YONCE (with Top Black Models) MP3
Beyonce's new song 'Yonce' feat. amazing TopBlackModels Chanel Iman, Joan Smalls & Jourdan Dunn. More TopBlackModels at: ...
Zendaya Car Video Compilation 2015 (Part 1) MP3
Compilation of the best car video of Zendaya! Most of these videos are from Zendaya's Facebook. I don't own those videos.
BOW DOWN - Choreography to Beyonce "Yonce/Partition" (Official Video) MP3
Bow Down Dance Studio Track: Beyonce - Yonce/Partition Plesači: Irina Tintor Sara Žugić Ana Dedeić Anastasija Kanazarević Maša Sretenović kamera: Igor ...
Beyonce' Yonce (video clip) MP3
Beyonce' Yonce' (video clip)

subset: commoncrawl


text:
There is a question. A question who had been at the top of my head since I played AC: Brotherhood. An unresolved question which leads to what I call the greatest untold mystery in the Assassin's Creed narrative. It's a question I have been waiting for a long time to be answered, BUT... But it never came. It was not until I arrived to the conclusion of AC III that I realized there was something wrong. For the question is: Who is Desmond Miles' son and what is his purpose?
For those of you who have no idea about what I'm talking, let's get the clock back. In Brotherhood, much likely the Glyphs in ACII, you can find what they call the Rifts, which when you found them all gave you access to the Miracle, a short parkour game within the Animus matrix and where Desmond meets for the first time Subect 16 a.k.a. Clay Kaczmarek. They have a short conversation in which Clay makes important revelations and predictions.
Some of them have been fulfiled: Lucy's betrayal ("She is not who you think she is.") and Desmond's coma and his second meeting with Clay in the Black Room ("Find me in the darkness."). There are also references to what Clay has seen during his sessions in the Animus and what Juno showed him, like the impending end of the world and Desmond's final choice over mankind's fate ("'No time. It is far later than you know. Too late to save them.").
But there is also this one sentence that made a lot of ink flow and was at the origin of many theories and conspiracies on the Internet. Before he vanished, Subject 16 said, to Desmond's demand, that "Eden. She... in Eden. Find Eve. The key. Her DNA..." and added "I can not... The sun... Your son... Too weak... Must replenish energy..."
And now, it all comes down to this. What would he mean? I mean, now that Desmond's story arc is over (so they say), how is that supposed to make sense? And his son... Who is his son? That's the question worth a million dollars. He had to be important somehow. I cannot figure out his importance to the story. It cannot simply be a mere loose end, that would be quite the shame and I would be greatly disappointed. While I planned to pen a fanon on the subject with my own explanation, I would like to have something canon too. Finding Eve in Eden, because the key is in her DNA and Desmond's son... If the supporters of the theory that Desmond is still alive (which I'm part of), this is our best argument to prove it. So far.
So what do you think? Who is the son of Desmond Miles? And when will Eve and Eden play their part in the games' narrative? I hope Unity will bring more answers than the three past instalments did on this matter.
P.S. I always thought that Eve might not be the Eve, but someone related to her.


text:
Need a gift basket for the Woman in your life? You can add your personal taste to the Gift Basket and set your own budget! First, select the spa items you would like. Then add wine, champagne, beer, gourmet items and the like! Enjoy customizing your basket!
We will make sure the Basket/Container for your gift is properly sized to make your Gift Basket for Her appear full and rich!
If you set your budget high for our Gift Baskets for Her, we will add multiple items from your selections. If you set a lower budget, our designers will include as many items that you have chosen as fits in your budget.
This Gift Basket is Gift Wrapped in cellophane with a beautiful, handmade bow added. It can be delivered anywhere in Canada or the United States! We will even add a Complimentary, Personalized Greeting Card to your gift!
Need Same Day or Rush Delivery in the Greater Toronto Area? Place your order by 11am EST to ensure Same Day Delivery in the GTA. For GTA Rush Delivery on the Same Day, place your order by 1 pm. EST!
Choose Rush/Express Shipping when you need delivery quickly! If your order is placed by 1pm. your package will be delivered the Next Day (in two days in some cases) in major cities including Montreal, Vancouver, Calgary, Edmonton, Winnipeg, London, Ottawa & Kitchener Waterloo. Additional charges will apply.


text:
Price: $16.00 EA
U.S. orders include packaging.
Part #: 1301-89
Manufacturer: InterMetro Industries Corp.
Usually ships in 6-12 business days
Manufacturer: InterMetro Industries Corp.
Warranty: 1 year
• Can be positioned at any point along a 24" W (610 mm) shelf
• Weight, Product: 2.75 Lbs (1247.4 g)
• Weight, Shipping: 4 Lbs (2 kg)
• Ships From: 91189 Pasadena, CA
• Package Type: Crate
All prices and specifications are subject to change without notice. All prices include crating charges. Call or click below for more information on terms and conditions.
Fields marked with * are required.
Hi, I'd like to share a Terra Universal link with you. Link:


text:
Mike Adam Model
Dayna G PhotographyPhotographer Female Tacoma, Washington, US
My Website: http://www.facebook.com/DaynaGPhotographyMy MM URL: http://www.modelmayhem.com/daynagphotography
Mayhem # 2836242
About MeI am a photographer seeking to break free from the chains of the portrait studio and enter the world of freelance! I thoroughly enjoy doing photoshoots and want to act upon all the creative ideas that myself and my friends have been throwing at me. Please feel free to contact me if you have an idea you would like to try.
I view my camera as a very important part of me, I almost never go anywhere without it. I love capturing moments and memories with it and ultimately making people happy with my pictures.
I have ample experience with family photography as well as infant, maternity, senior photography, and modeling. My goal is to create pictures that will capture memories and inspire others. I view my profession as an art form. As much as I enjoy accurately documenting with my camera, I also enjoy editing and turning my pictures into works of art.
I'm looking to build my portfolio so I'm definitely willing to trade, each model will receive all the pictures taken of them on a CD, and a chance to review favorite images and collaborate with me on which ones to post.
Check out my Facebook page, Dayna Gayle Photography to see more of my work!
Have you worked with Dayna G Photography? Add Credits for Dayna G Photography! >>
Mike Adam Model
Kat Chaos Model
robertnorg... Photographer
Emilene Allen Model
LeRoy Arndt Photographer
An Ugly Duckling Model
Loading Content


text:
Reel Love; the Fly Reel Picture Thread
Every now and then you catch yourself looking lovingly at your fly reel don't you? Come on, it's OK to tell, part of the lore of fly fishing is the tackle. The love of fine tackle is what keeps magazines on the shelves and many a company in business.
I have been watching the favorite reel brand thread since it started and noticed some members posted photos of their favorites. So hey why not a thread where that is what you do?
Please just one brand reel per post and feel free to describe what it is that makes you love that particular reel or brand of reel. Yes it is OK to love your reel.
For my opener; A Hardy Viscount LA Disc 3.75" X 1" spool for lines 7/8. A smooth strong drag that has handled more AK. Salmon than any other reel I own and a large arbor to aid in fast retrieve when they come strait in.
You're next............................
Re: Reel Love, the fly reel thread
but coming out of the metalworking field, I loves my hardware and good engineering and design!
Ross 'R', the beast that started Ross on their road to reel glory:
Ross Vision:
Limited Edition Ross Evo:
Hardy made Orvis CFO 123... sweet!
Limited Edition Bauer LOHR:
Two I'll never own but think are cool:
Re: Reel Love, the fly reel thread
Here's one of my Cordel reels.It's the best automatic reel ever made,all the pros of an automatic without the cons.Mr Cordel made all the parts and built all his reels alone.Great job:thmbup:
Re: Reel Love, the fly reel thread
I like Medalists
Got my first one around 45 years ago and they're still the reels I use the most to this day
Not fancy, just reliable
Re: Reel Love, the fly reel thread
I use a 5 weight rod most of the year. This reel by far is my favorite.
Abel Creek 2 Large Arbor
I also have one in pewter for my 4 weight ZXL.
My Old Favorite
This is the first Hardy I ever owned, circa 1978 although I take great pride in not beating my reels up this one has traveled and fished more than any other I own. Before I became jaded or able to afford to own a bunch of reels this was my prize possession. I used it on a 7'9" Far & Fine 5wt. and with that outfit caught everything from Atlantic salmon to Pacific silver salmon and every kind of trout I could find in between the two.
The Featherweight;
Re: Reel Love, the fly reel thread
Funny Ard ,I got the same reel and case:rolleyes: it was a Pezon& Michel but made by Hardy they had only changed the name on the reel.I sold it for a few bucks years ago because I gave up using manual reels in moving waters...I was stupid for now it's a collector:(
The Martin MG-3
I inherited this and a nice 4wt rod from my old pal Charlie Spangler who passed away September 21 1992. He and I were friends.
Martin MG-3
These are a nice little reel with the frame at 3" X 1", they make a fine light weight reel for a 3-4-5wt rig. Charlie was only 45 when he died, so don't put off until tomorrow what you can do today!
An Orvis Odyssey IV
I have two of these, a number three and a four. I'm going to try to pick up a number one or two for lighter rods. This one has two spools and I use it on two different rods. It is big and heavy with a drag that will slow down whatever you hook.
The frame measures 4" X 2" width and I think they weigh about 13oz. This one has 275 yards of 36lb saltwater micron behind the 9wt DT line.
Odyssey IV;
Re: Reel Love, the fly reel thread
I like fishing my vintage gear and these two old reels see some regular use
They wouldn't get a second look from most folks, but I think they're special because they originally belonged to my grandfather and they were both locally made
The black one is a Bristol 65, made by the Horton Mfg Co. of Bristol CT. Makers of the famous Bristol steel fly rods.
The aluminum reel has no markings but I've learned it was made by a machine shop in Bridgeport. When new it was etched and polished. It has a single spring and pawl.
|All times are GMT -5. The time now is 10:31 AM.
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Search Engine Optimisation provided by DragonByte SEO v2.0.40 (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.
2005-2017 The North American Fly Fishing Forum. All rights reserved.


text:
Audubon Zoo
A pair of West African Crowned Cranes at Audubon Zoo have been rearing chicks for years with more than 14 living offspring in zoos around the country. The Zoo's flock holds a mother and four of her chicks from previous years. Crowned cranes are endangered birds so their chicks are always a welcomed addition to their population.
West African Crowned Cranes are native to the savannah grasslands of west Africa south of the Sahara. Their natural habitat spans open landscapes such as extensive marshy areas and along the shores of lakes and ponds. Unfortunately, these birds are struggling to survive because drainage, overgrazing and pollution threaten their habitat.
As parents, crowned cranes work as a team. On the nest both the male and female take turns protecting the eggs, and when caring for their young one parent teaches the chicks to eat while the other watches out for trouble. Audubon's crowned crane family lives in the giraffe yard of the Zoo and includes mom, dad, this year's three chicks, and a young chick from last year.