Methods, systems, and computer program products for testing software components
without explicitly having to specify each test or test environment. A computer
system for automated testing loads and parses and test file. The test file contains
code sections that identify software components to test, locations sections that
identify locations to run the software components, an expandable variation section
that associates the software components with locations, and an expansion section
that defines rules for expanding the expandable variation section. From the expandable
variation section, the computer system creates expanded variation sections that
associate particular software components with particular locations. Then, for each
particular software component and locations, the computer system executes setup
instructions to prepare for running the particular software component, executes
the particular software component, and executes cleanup instructions. The test
file may conform to one or more eXtensible Markup Language (XML) schemas.