Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
 

The Road to Fitness Getting the Most Out of an Elliptical Machin...
Category:
Health / Fitness  

How to make recruitment agencies work for you
Category:
Business  

Get Your Buzz On
Category:
Health / Fitness  

Mizuno Golf Clubs reviewed
Category:
Sports  

Credit Counseling vs Debt Consolidation Which is right for me
Category:
Finance / Investment  

Leverage Your Time Talent to Help More People Make More Money
Category:
Marketing  

Digital Music Music has a surviving Skill
Category:
Entertainment / Television  

Secured Debt Consolidation Loan United we stand divided we fall
Category:
Finance / Investment  

The Whole Truth About Acne Home Remedies
Category:
Health / Fitness  

The Key Benefits of Hyaluronic Acid
Category:
Health / Fitness  

Do You Have A Vision For Your Online Business
Category:
Business  

Guide to online debt consolidation
Category:
Finance / Investment  

Casino income 101
Category:
Hobbies / Pastimes  

Breast Enhancement Pills Formulat natural increase size firmness...
Category:
Health / Fitness  

Breast Augmentation At A Glance
Category:
Health / Fitness  

Immigration Canada Business Immigration Is Economy Booster
Category:
Business  

How Are Your Choices Forming Patterns and Perspectives In Your L...
Category:
Self Help  

Ectopic Pregnancy A Better Understanding
Category:
Health / Fitness  

Injured Plaintiff s Win Today With No Win No Pay No Risk Lawsuit...
Category:
Finance / Investment  

Fresh Fruit Baskets
Category:
Home And Family  

Trampoline
Category:
Health / Fitness  

Home Business Obstacles Deal with Them Now
Category:
Business  

Niche Blogs and WHY They Make Such An Excellent Affiliate Market...
Category:
Business  

Why You need a Payment Processing System
Category:
Business  

Give a man six inches and he ll want a
Category:
Health / Fitness  

What does Coca Cola Clothing say to you
Category:
Home And Family  

Debt Management Plans Suggesting Ways to Survive the Quagmire of...
Category:
Finance / Investment  

5 Marketing Strategies That Will Increase Traffic To Your Websit...
Category:
Marketing  

Warning selling your home is a security and preparation issue
Category:
Home And Family  

Mortgage Scams Did You Fall For One
Category:
Finance / Investment  

The Benefits of Electric Adjustable Beds
Category:
Home And Family  

Whirlpool air purifiers
Category:
Business  

Be Smart and Repay Your Credit Cards Quickly
Category:
Business  

Follow Help To Advertising Internet Online
Category:
Marketing  

The Importance of Career Mentoring
Category:
Self Help  

Call Handling Service
Category:
Business  

The Far Realms of Computers and Self Improvement
Category:
Self Help  

7 Reasons We Procrastinate and Strategies to Overcome Them
Category:
Self Help  

Web Furniture Retailers Embracing Art Yet Another Reason to Shop...
Category:
Home And Family  

3 Reasons Why a 7 Year Old Doesn t Get Everything He Wants
Category:
Self Help  

It All Turned Out Okay In the End
Category:
Sports  

How To Really Enjoy A Bubble Bath
Category:
Home And Family  

How to prevent your nasal allergy
Category:
Health / Fitness  

Work Part Time Or Work One Time It s Your Choice
Category:
Finance / Investment  

The Fear for Panic Attacks
Category:
Self Help  

4 Secrets Men Keep And Why You Should Let Them
Category:
Self Help  

What is Guided Meditation
Category:
Self Help  

Medical Malpractice Law An Overview
Category:
Health / Fitness  

Choose Back Surgery As A Last Resort
Category:
Health / Fitness  

How To Write A Sample Letter For Credit Repair
Category:
Business  

Blueprint for Success Defining Your Goals
Category:
Self Help  

The Wedding Planner
Category:
Home And Family  

Time is a Unique Resource
Category:
Business  

Trucking Safety C Is for the Cautious Driver
Category:
Business  

Indtroduction to foreclosure investing
Category:
Finance / Investment  

Interracial Dating For You Check It Out
Category:
Home And Family  

Simple Ways to Get Slim Drop Cellulite and Increase Breast Size ...
Category:
Health / Fitness  

Today s Personal Care Products Health and Beauty
Category:
Health / Fitness  

Timesheets in Compliance with SOX
Category:
Business  

Buying Equipment for a Home Gym What You Should Know First
Category:
Health / Fitness  

10 Free Reasons To Look At People Building NLP and Hypnotherapy ...
Category:
Business  

Buy s Property from Lottery for Pension Why
Category:
Finance / Investment  

4 Poker Tips the Pros Won t Tell You
Category:
Hobbies / Pastimes  

Holiday Eating Without Overeating Eat what s Yummy and Flatten Y...
Category:
Self Help  

Should You Confide in Your Friends About Your Panic Attacks
Category:
Health / Fitness  

Must Dos From Work From Home Veterans
Category:
Business  

United World Merchandise
Category:
Business  

Women gambling 101
Category:
Hobbies / Pastimes  

The top 3 reasons for losing your hair
Category:
Health / Fitness  

Out of the Box Marketing
Category:
Marketing  

Can You Really Use Articles To Build Your List
Category:
Marketing  

Perennials in the Garden
Category:
Home And Family  

Get That Dream Job
Category:
Business  

Are Genital Wart Serious
Category:
Self Help  

Popularity Of The Retro Clothes
Category:
Home And Family

Data processing system, method, and program for automatically testing software applications Number:6,959,433 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Data processing system, method, and program for automatically testing software applications

Abstract: A data processing system, method, and program including an automated software test environment are disclosed for automatically testing a software application. A work flow manager is established for automatically managing the automated software test environment. The automated software test environment includes multiple computer systems coupled to a server computer system utilizing a network. The work flow manager is executed utilizing the server computer system. Multiple ordered test phases are established. At least each of two of the order test phases are executed utilizing different ones of the computer systems. An event is transmitted to the work flow manager utilizing one of the computer systems to start execution of selected ones of the ordered test phases. The work flow manager controls execution of the selected ordered test phases in response to the receipt of events.

Patent Number: 6,959,433 Issued on 10/25/2005 to Morales, Jr.,   et al.


Inventors: Morales, Jr.; Rene (Austin, TX); Rankin; Charles Vaughn (Austin, TX)
Assignee: International Business Machines Corporation (Armonk, NY)
Appl. No.: 550387
Filed: April 14, 2000

Current U.S. Class: 717/127; 717/101; 717/131; 717/135
Intern'l Class: G06F 009/44
Field of Search: 717/100-103,120-135 703/13-17,22


References Cited [Referenced By]

U.S. Patent Documents
4970725Nov., 1990McEnroe et al.
5021997Jun., 1991Archie et al.
5136705Aug., 1992Stubbs et al.
5446652Aug., 1995Peterson et al.
5500941Mar., 1996Gil.
5544310Aug., 1996Forman et al.
5634098May., 1997Janniro et al.
5673387Sep., 1997Chen et al.
5742754Apr., 1998Tse.
5758061May., 1998Plum.
5778230Jul., 1998Wimble et al.
5790117Aug., 1998Halviatti et al.
5862362Jan., 1999Somasegar et al.
5893128Apr., 1999Nauckhoff.
5909544Jun., 1999Anderson, II et al.
5910895Jun., 1999Proskauer et al.
5913023Jun., 1999Szermer.
6321347Nov., 2001Beeker et al.
6687834Feb., 2004Morales et al.
Foreign Patent Documents
WO 98/5718/7Dec., 1998WO.


Other References

"System Verification Using Multiple Independent Simulation Engines Running Under Common Control," IBM Technical Disclosure Bulletin, vol. 30 No. 1 Jun. 1987, pp. 340-342.
"Software Validation Test Facilitator test scripts," IBM Technical Disclosure Bulletin, vol. 35 No. 4B Sep. 1992, pp. 212-215.
"Automated Code Checker," IBM Technical Disclosure Bulletin, vol. 36 No 09B Sep. 1993, pp. 239-240.
"Functional Test Case Identification in an Object-Oriented Environment using Matrix Progression Techniques," IBM Technical Disclosure Bulletin, vol. 37 No. 01 Jan. 1994, pp. 503-505.
"Error Detection/Fault Isolation in VHDL," IBM Technical Disclosure Bulletin, vol. 39 No. 03 Mar. 1996, p. 27.
"Advanced Computer System Evaluation Architecture," IBM Technical Disclosure Bulletin, vol. 37 No. 10 Oct. 1994, pp. 467-468.
"Method of Controlling Development Phases of Computer Software," IBM Technical Disclosure Bulletin, vol. 33 No. 1B Jun. 1990, pp. 114-116.
"Functional Test Case Identification in an Object-Oriented Environment using Matrix Progression Techniques," IBM Technical Disclosure Bulletin, vol. 37 No. 01 Jan. 1994, pp. 503-505.
"Defect Isolation," IBM Technical Disclosure Bulletin, vol. 37 No. 04A Apr. 1994, pp. 239-240.
"Non-Invasive Automation of Software Test With Shared Peripherals," IBM Technical Disclosure Bulletin, vol. 35 No. 2 Jul. 1992, p. 230-232.
"System and Method For Portable Server-Based Active Process Flow Software Components," Research Disclosure, Apr. 1999, p. 567.
"Software Test Coverage Measurement," IBM Technical Disclosure Bulletin, vol. 39, No. 08, Aug. 1996, pp. 223-225.

Primary Examiner: Vo; Ted T.
Attorney, Agent or Firm: Dawkins; Marilyn Smith, Dillon & Yudell LLP

Claims



1. A method in a data processing system including an automated software test environment for automatically testing a software application, said method comprising the steps of:

establishing a work flow manager for automatically managing said automated software test environment, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

establishing a plurality of ordered test phases to be executed in a specified order including at least an initialization test phase for preparing said test environment for testing said software application said initialization test phase capable of being executed prior to an availability of said software application;

transmitting an event to said work flow manager utilizing one of said plurality of computer systems to start execution of selected ones of said plurality of ordered test phases; and

controlling execution of said selected ones of said plurality of ordered test phases utilizing said work flow manager in response to a receipt of events.

2. The method according to claim 1, further comprising the step of executing an initialization test phase utilizing said work flow manager in response to a receipt of a build event by said server computer system, said build event being generated by one of said plurality of computer systems utilized to build said software application.

3. The method according to clam 1, further comprising the steps of:

said step of establishing a plurality of ordered test phases further comprising the step of establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application; and

executing a first plurality of said plurality of tests in series.

4. The method according to claim 1, further comprising the steps of:

said step of establishing a plurality of ordered test phases further comprising the step of establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application; and

executing a second plurality of said plurality of tests in parallel.

5. The method according to claim 1, further comprising the steps of:

said step of establishing a plurality of ordered test phases further comprising the step of establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application;

executing a first plurality of said plurality of tests in series; and

executing said first plurality of said plurality of tests in parallel with a fourth plurality of said plurality of tests.

6. The method according to claim 1, further comprising the step of receiving a job description utilizing said work flow manager, said job description including an identification of said software application and an identification of a plurality of tests to be executed on said software application.

7. The method according to claim 1, wherein the step of establishing a plurality of ordered test phases further comprises the step of establishing an installation test phase for installing test processes and said software application on said plurality of computer systems.

8. The method according to claim 7, wherein said step of establishing an installation test phase further comprises the step of establishing an installation test phase including the step of installing a plurality of test cases on one of said plurality of computer systems.

9. The method according to claim 7, wherein said step of establishing an installation test phase further comprises the step of installing an operating system required to execute one of said plurality of tests on one of said plurality of computer systems.

10. The method according to claim 7, wherein said step of establishing an installation test phase further comprises the step of installing a plurality of test tools required to execute one of said plurality of tests on one of said plurality of computer systems.

11. The method according to claim 1, wherein the step of establishing a plurality of ordered test phases further comprises the steps of:

establishing an execution test phase for executing a plurality of tests on said software application; and

establishing a termination test phase for terminating said execution of said tests.

12. The method according to claim 11, wherein said step of establishing an execution test phase further comprises the step of establishing an execution test phase including the step of executing said plurality of tests.

13. The method according to claim 11, wherein said step of establishing a termination test phase further comprises the step of establishing a termination test phase including the step of resetting said automated test environment to an original state.

14. The method according to claim 1, further comprising the step of specifying an order for executing said plurality of ordered test phases including specifying completing execution of an initialization test phase prior to executing an installation test phase, completing execution of said installation test phase prior to executing an execution test phase, and completing execution of said execution test phase prior to executing a termination test phase.

15. The method according to claim 1, further comprising the step of during said initialization test phase prior to said software application being available, preparing said automated test environment to execute said plurality of tests.

16. The method according to claim 1, further comprising the step of generating an initialization event in response to a completion of building said software.

17. The method according to claim 1, wherein said step of prior to said availability of said software application, preparing said automated test environment to execute said plurality of tests further comprises the step of determining an availability of one of said plurality of computer system to be utilized to execute one of said plurality of tests.

18. The method according to claim 1, wherein said step of establish an initialization test phase further comprises the step of establishing an initialization test phase including the steps of:

executing initialization test phase processes;

building said software application; and

copying said built software application to one of said plurality of computer systems, wherein said software application is available when said built software application is copied to one of said plurality of computer systems.

19. The method according to claim 18, further comprising the step of generating an installation event in response to a completion of said copying said built software application to one of said plurality of computer systems and a completion of initialization test phase processes.

20. The method according to claim 1, further comprising the step of establishing a validation procedure including the steps of:

suspending execution of said plurality of tests prior to a completion of said plurality of tests; and

providing a notification of said suspension.

21. The method according to claim 1, further comprising the step of establishing a validation procedure including the steps of:

terminating execution of said plurality of tests prior to a completion of said plurality of tests; and

providing a notification of said termination.

22. The method according to claim 1, further comprising the step of establishing a validation procedure including the steps of:

executing a process to determine a result of an execution of each said plurality of tests; and

reporting said result.

23. The method according to claim 1, wherein said step of establishing a plurality of ordered test phases further comprises the step of establishing a plurality of ordered test phases, at least each of two of said plurality of order test phases being executed utilizing different ones of said plurality of computer systems.

24. A method in a data processing system including an automated software test environment for automatically testing a software application, said method comprising the steps of:

establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

in response to a completion of one of said plurality of tests, executing a validation procedure to validate a result of said one of said plurality of tests;

suspending execution of others of said plurality of tests being executed in response to a failure of said validation procedure to validate said result of said one of said plurality of tests; and

providing a notification of said suspension of execution.

25. A method in a data processing system including an automated software test environment for automatically testing a software application, said method comprising the steps of:

establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

in response to a completion of one of said plurality of tests, executing a validation procedure to validate a result of said one of said plurality of tests;

terminating execution of others of said plurality of tests being executed in response to a failure of said validation procedure to validate said result of said one of said plurality of tests; and

providing a notification of said termination of execution.

26. A method in a data processing system including an automated software test environment for automatically testing a software application, said method comprising the steps of:

establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

in response to a completion of one of said plurality of tests, executing a validation procedure to validate a result of said one of said plurality of tests;

spawning a new process in response to said execution of a validation procedure to determine a result of execution of said one of said plurality of tests; and

reporting a result of said spawned new process, wherein said result of execution of said one of said plurality of tests is reported.

27. A data processing system including an automated software test environment for automatically testing a software application, said data processing system comprising:

means for establishing a work flow manager for automatically managing said automated software test environment, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

means for establishing a plurality of ordered test phases to be executed in a specified order including at least an initialization test phase for preparing said test environment for testing said software application, said initialization test phase capable of being executed prior to an availability of said software application;

means for transmitting an event to said work flow manager utilizing one of said plurality of computer systems to start execution of selected ones of said plurality of ordered test phases; and

means for controlling execution of said selected ones of said plurality of ordered test phases utilizing said work flow manager in response to a receipt of events.

28. The system according to claim 27, further comprising means for executing an initialization test phase utilizing said work flow manager in response to a receipt of a build event by said server computer system, said build event being generated by one of said plurality of computer systems utilized to build said software application.

29. The system according to claim 27, further comprising:

said means for establishing a plurality of ordered test phases further comprising means for establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application; and

means for executing a first plurality of said plurality of tests in series.

30. The system according to claim 27, further comprising:

said means for establishing a plurality of ordered test phases further comprising means for establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application; and

means for executing a second plurality of said plurality of tests in parallel.

31. The system according to claim 27, further comprising:

said means for establishing a plurality of ordered test phases further comprising means for establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application;

means for executing a first plurality of said plurality of tests in series; and

means for executing said first plurality of said plurality of tests in parallel with a fourth plurality of said plurality of tests.

32. The system according to claim 27, further comprising means for receiving a job description utilizing said work flow manager, said job description including an identification of said software application and an identification of a plurality of tests to be executed on said software application.

33. The system according to claim 27, wherein said means for establishing a plurality of ordered test phases further comprises means for establishing an installation test phase for installing test processes and said software application on said plurality of computer systems.

34. The system according to claim 33, wherein said means for establishing an installation test phase further comprises means for establishing an installation test phase including means for installing a plurality of test cases on one of said plurality of computer systems.

35. The system according to claim 33, wherein said means for establishing an installation test phase further comprises means for installing an operating system required to execute one of said plurality of tests on one of said plurality of computer systems.

36. The system according to claim 33, wherein said means for establishing an installation test phase further comprises means for installing a plurality of test tools required to execute one of said plurality of tests on one of said plurality of computer systems.

37. The system according to claim 27, wherein said means for establishing a plurality of ordered test phases further comprises:

means for establishing an execution test phase for executing a plurality of tests on said software application; and

means for establishing a termination test phase for terminating said execution of said tests.

38. The system according to claim 37, wherein said means for establishing a execution test phase further comprises means for establishing an execution test phase including means for executing said plurality of tests.

39. The system according to claim 37, wherein said means for establishing a termination test phase further comprises means for establishing a termination test phase including means for resetting said automated test environment to an original state.

40. The system according to claim 27, further comprising means for specifying an order for executing said plurality of ordered test phases including specifying completing execution of an initialization test phase prior to executing an installation test phase, completing execution of said installation test phase prior to executing an execution test phase, and completing execution of said execution test phase prior to executing a termination test phase.

41. The system according to claim 27, further comprising means during said initialization test phase prior to said software application being available, for preparing said automated test environment to execute said plurality of tests.

42. The system according to claim 27, further comprising means for generating an initialization event in response to a completion of building said software application.

43. The system according to claim 27, wherein said means prior to said availability of said software application, for preparing said automated test environment to execute said plurality of tests further comprises means for determining an availability of one of said plurality of computer system to be utilized to execute one of said plurality of tests.

44. The system according to claim 27, wherein said means for establishing an initialization test phase further comprises means for establishing an initialization test phase including:

means for executing initialization test phase processes;

means for building said software application; and

means for copying said built software application to one of said plurality of computer systems, wherein said software application is available when said built software application is copied to one of said plurality of computer systems.

45. The system according to claim 44, further comprising means for generating an installation event in response to a completion of said copying said built software application to one of said plurality of computer systems and a completion of initialization test phase processes.

46. The system according to claim 27, further comprising means for establishing a validation procedure including:

means for suspending execution of said plurality of tests prior to a completion of said plurality of tests; and

means for providing a notification of said suspension.

47. The system according to claim 27, further comprising means for establishing a validation procedure including:

means for terminating execution of said plurality of tests prior to a completion of said plurality of tests; and

means for providing a notification of said termination.

48. The system according to claim 27, further comprising means for establishing a validation procedure including:

means for executing a process to determine a result of an execution of each said plurality of tests; and

means for reporting said result.

49. The system according to claim 27, wherein said means for establishing a plurality of ordered test phases further comprises means for establishing a plurality of ordered test phases, at least each of two of said plurality of order test phases being executed utilizing different ones of said plurality of computer systems.

50. A data processing system including an automated software test environment for automatically testing a software application, comprising:

means for establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plural of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

means for executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

means responsive to a completion of one of said plurality of tests, for executing a validation procedure to validate a result of said one of said plurality of tests;

means for suspending execution of others of said plurality of tests being executed in response to a failure of said validation procedure to validate said result of said one of said plurality of tests; and

means for providing a notification of said suspension of execution.

51. A data processing system including an automated software test environment for automatically testing a software application, comprising:

means for establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

means for executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

means responsive to a completion of one of said plurality of tests, for executing a validation procedure to validate a result of said one of said plurality of tests;

means for terminating execution of others of said plurality of tests being executed in response to a failure of said validation procedure to validate said result of said one of said plurality of tests; and

means for providing a notification of said termination of execution.

52. A data processing system including an automated software test environment for automatically testing a software application, comprising:

means for establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

means for executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

means responsive to a completion of one of said plurality of tests, for executing a validation procedure to validate a result of said one of said plurality of tests;

means for spawning a new process in response to said execution of a validation procedure to determine a result of execution of said one of said plurality of tests; and

means for reporting a result of said spawned new process, wherein said result of execution of said one of said plurality of tests is reported.

53. An automated software test environment for automatically testing a software application, comprising:

computer readable memory;

instruction means within said computer readable memory for establishing a work flow manager for automatically managing said automated software test environment, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

instruction means within said computer readable memory for establishing a plurality of ordered test phases to be executed in a specified order including at least an initialization test phase for preparing said test environment for testing said software application, said initialization test phase capable of being executed prior to an availability of said software application;

instruction means within said computer readable memory for transmitting an event to said work flow manager utilizing one of said plurality of computer systems to start execution of selected ones of said plurality of ordered test phases; and

instruction means within said computer readable memory for controlling execution of said selected ones of said plurality of ordered test phases utilizing said work flow manager in response to a receipt of events.

54. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for executing an initialization test phase utilizing said work flow manager in response to a receipt of a build event by said server computer system, said build event being generated by one of said plurality of computer systems utilized to build said software application.

55. The automated software test environment according to claim 53, further comprising:

said instruction means within said computer readable memory for establishing a plurality of ordered test phases further comprising instruction means within said computer readable memory for establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application; and

instruction means within said computer readable memory for executing a first plurality of said plurality of tests in series.

56. The automated software test environment according to claim 53, further comprising:

said instruction means within said computer readable memory for establishing a plurality of ordered test phases further comprising instruction means within said computer readable memory for establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application; and

instruction means within said computer readable memory for executing a second plurality of said plurality of tests in parallel.

57. The automated software test environment according to claim 53, further comprising:

said instruction means within said computer readable memory for establishing a plurality of ordered test phases further comprising instruction means within said computer readable memory for establishing a plurality of ordered test phases including an execution test phase for executing a plurality of tests on said software application;

instruction means within said computer readable memory for executing a first plurality of said plurality of tests in series; and

instruction means within said computer readable memory for executing said first plurality of said plurality of tests in parallel with a fourth plurality of said plurality of tests.

58. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for receiving a job description utilizing said work flow manager, said job description including an identification of said software application and an identification of a plurality of tests to be executed on said software application.

59. The automated software test environment according to claim 53, wherein said instruction means within said computer readable memory for establishing a plurality of ordered test phases further comprises instruction means within said computer readable memory for establishing an installation test phase for installing test processes and said software application on said plurality of computer systems.

60. The automated software test environment according to claim 59, wherein said instruction means within said computer readable memory for establishing an installation test phase further comprises instruction means for establishing an installation test phase including instruction means within said computer readable memory for installing a plurality of test cases on one of said plurality of computer systems.

61. The automated software test environment according to claim 59, wherein said instruction means within said computer readable memory for establishing an installation test phase further comprises instruction means within said computer readable memory for installing an operating system required to execute one of said plurality of tests on one of said plurality of computer systems.

62. The automated software test environment according to claim 59, wherein said instruction means within said computer readable memory for establishing an installation test phase further comprises instruction means within said computer readable memory for installing a plurality of test tools required to execute one of said plurality of tests on one of said plurality of computer systems.

63. The automated software test environment according to claim 53, wherein said instruction means within said computer readable memory for establishing a plurality of ordered test phases further comprises:

instruction means within said computer readable memory for establishing an execution test phase for executing a plurality of tests on said software application; and

instruction means within said computer readable memory for establishing a termination test phase for terminating said execution of said tests.

64. The automated software test environment according to claim 63, wherein said instruction means within said computer readable memory for establishing an execution test phase further comprises instruction means within said computer readable memory for establishing an execution test phase including instruction means within said computer readable memory for execute said plurality of tests.

65. The automated software test environment according to claim 63, wherein said instruction means within said computer readable memory for establishing a termination test phase further comprises instruction means within said computer readable memory for establishing a termination test phase including instruction means within said computer readable memory for resetting said automated test environment to an original state.

66. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for specifying an order for executing said plurality of ordered test phases including specifying completing execution of an initialization test phase prior to executing an installation test phase, completing execution of said installation test phase prior to executing an execution test phase, and completing execution of said execution test phase prior to executing a termination test phase.

67. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory during said initialization test phase prior to said software application being available, for preparing said automated test environment to execute said plurality of tests.

68. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for generating an initialization event in response to a completion of building said software application.

69. The automated software test environment according to claim 53, wherein said instruction means within said computer readable memory prior to said availability of said software application, for preparing said automated test environment to execute said plurality of tests further comprises instruction means within said computer readable memory for determining an availability of one of said plurality of computer system to be utilized to execute one of said plurality of tests.

70. The automated software test environment according to claim 53, wherein said instruction means within said computer readable memory for establishing an initialization test phase further comprises instruction means within said computer readable memory for establishing an initialization test phase including:

instruction means within said computer readable memory for executing initialization test phase processes;

instruction means within said computer readable memory for building said software application; and

instruction means within said computer readable memory for copying said built software application to one of said plurality of computer systems, wherein said software application is available when said built software application is copied to one of said plurality of computer systems.

71. The automated software test environment according to claim 70, further comprising instruction means within said computer readable memory for generating an installation event in response to a completion of said copying said built software application to one of said plurality of computer systems and a completion of initialization test phase processes.

72. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for establishing a validation procedure including:

instruction means within said computer readable memory for suspending execution of said plurality of tests prior to a completion of said plurality of tests; and

instruction means within said computer readable memory for providing a notification of said suspension.

73. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for establishing a validation procedure including:

instruction means within said computer readable memory for terminating execution of said plurality of tests prior to a completion of said plurality of tests; and

instruction means within said computer readable memory for providing a notification of said termination.

74. The automated software test environment according to claim 53, further comprising instruction means within said computer readable memory for establishing a validation procedure including:

instruction means within said computer readable memory for executing a process to determine a result of an execution of each said plurality of tests; and

instruction means within said computer readable memory for reporting said result.

75. The automated software test environment according to claim 53, wherein said instruction means within said computer readable memory for establishing a plurality of ordered test phases further comprises instruction means within said computer readable memory for establishing a plurality of ordered test phases, at least each of two of said plurality of order test phases being executed utilizing different ones of said plurality of computer systems.

76. An automated software test environment for automatically testing a software application, comprising:

computer readable memory;

instruction means within said computer readable memory for establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

instruction means within said computer readable memory for executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

instruction means within said computer readable memory responsive to a completion of one of said plurality of tests, for executing a validation procedure to validate a result of said one of said plurality of tests;

instruction means within said computer readable memory for suspending execution of others of said plurality of tests being executed in response to a failure of said validation procedure to validate said result of said one of said plurality of tests; and

instruction means within said computer readable memory for providing a notification of said suspension of execution.

77. An automated software test environment for automatically testing a software application, comprising:

computer readable memory;

instruction means within said computer readable memory for establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

instruction means within said computer readable memory for executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

instruction means within said computer readable memory responsive to a completion of one of said plurality of tests, for executing a validation procedure to validate a result of said one of said plurality of tests;

instruction means within said computer readable memory for terminating execution of others of said plurality of tests being executed in response to a failure of said validation procedure to validate said result of said one of said plurality of tests; and

instruction means within said computer readable memory for providing a notification of said termination of execution.

78. An automated software test environment for automatically testing a software application, comprising:

computer readable memory;

instruction means within said computer readable memory for establishing an event-driven work flow manager for automatically managing said automated software test environment in response to a receipt of events, said automated software test environment including a plurality of computer systems coupled to a server computer system utilizing a network, said work flow manager being executed utilizing said server computer system;

instruction means within said computer readable memory for executing a plurality of tests on said software application utilizing said plurality of computer systems being managed by said work flow manager;

instruction means within said computer readable memory responsive to a completion of one of said plurality of tests, for executing a validation procedure to validate a result of said one of said plurality of tests;

instruction means within said computer readable memory for spawning a new process in response to said execution of a validation procedure to determine a result of execution of said one of said plurality of tests; and

instruction means within said computer readable memory for reporting a result of said spawned new process, wherein said result of execution of said one of said plurality of tests is reported.
Description



CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention is related to the subject matter of patent application Ser. No. 09/550,386, now U.S. Pat. No. 6,687,834 entitled "DATA PROCESSING SYSTEM, METHOD, AND PROGRAM FOR GENERATING A JOB WITHIN AN AUTOMATED TEST ENVIRONMENT", assigned to the assignee herein named, filed on Apr. 14, 2000, and incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates in general to data processing systems and, in particular, to a data processing system, method, and program for automatically testing software applications. Still more particularly, the present invention relates to a data processing system, method, and program for automatically testing software applications utilizing an event-driven work flow manager which controls a plurality of ordered test phases executed utilizing a plurality of computers coupled together via a network.

2. Description of the Related Art

Personal computer systems are well known in the art. They have attained widespread use for providing computer power to many segments of today's modern society. Personal computers (PCs) may be defined as a desktop, floor standing, or portable microcomputer that includes a system unit having a central processing unit (CPU) and associated volatile and non-volatile memory, including random access memory (RAM) and basic input/output system read only memory (BIOS ROM), a system monitor, a keyboard, one or more flexible diskette drives, a CD-ROM drive, a fixed disk storage drive (also known as a "hard drive"), a pointing device such as a mouse, and an optional network interface adapter. One of the distinguishing characteristics of these systems is the use of a motherboard or system planar to electrically connect these components together. Examples of such personal computer systems are IBM's PC 300 series, and Aptiva series.

An important part of software development is testing whether a particular software application functions as intended and without encountering errors. Typically, a large number of tests will be repeatedly executed on the software application. In order to perform these tests efficiently, a variety of software testing devices have been disclosed. These devices typically describe a testing method to be executed utilizing a single computer system which is also executing the software application being tested. The computer system will include the necessary test cases, any applications needed to execute the test cases, and all other necessary hardware or software components.

A tester who desires to execute the tests must oversee and control the testing environment. The tester is required to define the test cases, identify the computer system to execute the test cases, indicate to the computer system when a particular portion of the test should start executing, when a portion of the test has completed and when to begin executing the next portion of the test. Although the computer system will automatically execute the tests, the tester must manually control the execution of the tests.

SUMMARY OF THE INVENTION

A data processing system, method, and program including an automated software test environment are disclosed for automatically testing a software application. A work flow manager is established for automatically managing the automated software test environment. The automated software test environment includes multiple computer systems coupled to a server computer system utilizing a network. The work flow manager is executed utilizing the server computer system. Multiple ordered test phases are established. At least each of two of the order test phases are executed utilizing different ones of the computer systems. An event is transmitted to the work flow manager utilizing one of the computer system to start execution of selected ones of the ordered test phases. The work flow manager controls execution of the selected ordered test phases in response to the receipt of events.

All objects, features, and advantages of the present invention will become apparent in the following detailed written description.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

FIG. 1 depicts an illustrative embodiment of a data processing system with which the present invention may advantageously be utilized;

FIG. 2 illustrates a more detailed pictorial representation of the computer system of FIG. 1 in accordance with the present invention;

FIG. 3 is a high level block diagram which depicts an automated software test environment in accordance with the present invention;

FIG. 4 depicts a high level flow chart which illustrates establishing an automated software test environment including a work flow manager in accordance with the present invention;

FIG. 5 illustrates a high level flow chart which depicts an initialization test phase of an automated software test environment in accordance with the present invention;

FIG. 6 depicts a high level flow chart which illustrates a generation of INIT and INSTALL events and a work flow manager managing the execution of ordered test phases in accordance with the present invention;

FIG. 7 illustrates a high level flow chart which depicts an installation test phase of an automated software test environment in accordance with the present invention;

FIG. 8 illustrates a high level flow chart which depicts the execution procedure for all processes executed within an automated software test environment in accordance with the present invention;

FIG. 9 depicts a high level flow chart which illustrates a termination phase of an automated software test environment in accordance with the present invention;

FIG. 10 illustrates a high level flow chart which depicts a validation procedure for all processes executed within an automated software test environment in accordance with the present invention;

FIG. 11 depicts pseudo-code which provides an example of the execution of processes in serial, in parallel, and in a combination of serial and parallel processes in accordance with the present invention; and

FIG. 12 illustrates an execution time line depicting the execution of the processes of FIG. 11 in accordance with the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENT

A data processing system, method, and program are described for automatically testing software applications. A work flow manager is established for automatically managing the automated software test environment. The automated software test environment includes a plurality of computer systems coupled to a server computer system utilizing a network. The work flow manager is executed utilizing the server computer system.

The work flow manager accepts job definitions, waits for events external to the work flow manager in response to which the work flow manager controls the execution of selected ones of the ordered test phases, executes the jobs based on test machine availability and priority, provides job management facilities for a tester, logs execution results, and notifies testers upon test failure. Once a tester submits a job to the work flow manager, the work flow manager automatically executes the test phases to complete the job. The work flow manager will automatically execute the test phases upon the availability of the test machines. When the job is complete, the work flow manager will report the results to the tester.

The automated software test environment includes a server computer system executing the work flow manager and a plurality of computer systems. The ordered test phases are executed on the computer systems. Preferably, the test phase execution is divided among the computer systems such that one or more computers will execute a test phase. For example, multiple computer systems may be utilized to build a software application while different, multiple computer systems may be utilized to execute tests.

The work flow manager automatically controls the execution of the plurality of ordered test phases without the need for manual intervention. The test phases include an initialization (INIT) phase, an installation (INSTALL) phase, an execution (EXE) phase, and a termination (TERM) phase.

During the initialization phase, the computer systems which are to be utilized as test machines are prepared to execute the tests. The test machines may be prepared prior to the availability of a built version of the software application to test. Before the initialization phase, the software application that is to be tested is built. During the initialization test phase, it is copied to a public computer system such that the built application may be accessed by the work flow manager. During the installation test phase, the software application to be tested is copied to the test machine(s) which will execute the tests. Additional software routines and data necessary to execute the tests are also copied to the test machines during the installation phase. During the execution test phase, the tests are executed on the software application. The termination test phase, thereafter, resets the test machines to their original states by cleaning up the processes which were executed in order to execute the tests, collecting test logs, uninstalling applications, deleting files, and re-booting the test machines to their original states. During all phases, the executed processes are validated by a validation procedure described below.

The work flow manager is event driven. For the initialization test phase and the installation test phase, an event is transmitted to the work flow manager from a computer system external to the work flow manager which is executing initialization and installation processes. The work flow manager controls execution of the ordered test phases in response to the receipt of these events.

FIG. 1 illustrates a pictorial representation of a data processing system 10 in accordance with the present invention. Computer system 10 includes a computer 12, a monitor 14, a keyboard 16, a mouse 18, a plotter 20, a printer 21, and a floppy drive 22. Computer system 10 may be implemented utilizing any commercially available computer system which has been suitably programmed and which has been modified as described below. Computer system 10 is capable of receiving a variety of different types of inputs from a variety of different types of input devices. Keyboard 16 and mouse 18 are two such types of input devices.

FIG. 2 depicts a more detailed pictorial representation of the computer system of FIG. 1 in accordance with the present invention. Computer system 12 includes a planar (also commonly called a motherboard or system board) which is mounted within computer 12 and provides a means for mounting and electrically interconnecting various components of computer 12 including a central processing unit (CPU) 200, system memory 206, and accessory cards or boards as is well known in the art.

CPU 200 is connected by address, control, and data busses 202 to a memory controller and peripheral component interconnect (PCI) bus bridge 204 which is coupled to system memory 206. An integrated drive electronics (IDE) device controller 220, and a PCI bus to Industry Standard Architecture (ISA) bus bridge 212 are connected to PCI bus bridge 204 utilizing PCI bus 208. IDE controller 220 provides for the attachment of IDE compatible storage devices, such as a removable hard disk drive 222. PCI/ISA bridge 212 provides an interface between PCI bus 208 and an optional feature or expansion bus such as the ISA bus 214. PCI/ISA bridge 212 includes power management logic. PCI/ISA bridge 212 is supplied power from battery 244 to prevent loss of configuration data stored in CMOS 213.

A PCI standard expansion bus with connector slots 210 is coupled to PCI bridge 204. PCI connector slots 210 may receive PCI bus compatible periphera


Free Web Sudoku Puzzles.
Solve with your browser.
1   5       6    
2         8     7
  9   2         1
      6     3 9  
      5   3      
  3 1     2      
7         4   8  
3     9         5
    6       2   4
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!