1. A computer-implemented method for software testing and validation, the computer-implemented method performing a process of building an abstract model of a software application under test and a process of testing at least one region of the software under test, the method comprising the steps of: enabling a user to define at least one specific region of the software application under test by tagging at least one hierarchical element and at least one child region of the specific region by tagging at least one child element of the at least one hierarchical element; enabling a user to tag test objects within the software application under test; building the abstract model using hierarchical elements, child elements and test objects, the hierarchical elements, child elements and test objects indexing at least one object in the at least one region of the software under test; executing a test script to test the at least one object in the at least one region by navigating the abstract model using one or more of the following hierarchical element, a child element, and a test object; altering the software application under test by relocating or redefining the at least one region of the software application under test; and re-executing the test script to test the at least one object in the at least one region by navigating the abstract model using one or more of the following: the hierarchical element, the child element, and the test object, the re-executing performed without regeneration of the abstract model.