Can any body help me what is regression testing.Actually I am having automation scripts and if I execute on every build it is called regression testing or it is functional testing.
Re: General Question
Regression testing: testing that the AUT (Application Under Test) did not regress.
Functional testing: testing the functionality of the AUT as seen / expected by final users.
Regression testing and functional testing are not in the same category of testing.
You can check that the AUT did not regress in many aspects, not just functional: performances, usability, maintenability, scalability, you name it. In fact, you can even do regression testing of a new application vs. an old one (that's usually what's done when migrating applications with iso-functionality).
To perform a validation or verification test, you need to have an "expected result" (or else, your test is a "development" test; think of finding the maximal number of simultaneous connections a system can support: the system developers have to determine that number; they can "test" the system by increasing the number of active connections until it breaks, or model the system, or use their best judgement or their best guess; in any case they'd come with a number; the system testers have to verify or validate that number: they'll have expected results when the number of actual connections is less than that number and another set of expected results when it is greater - and, maybe, a third set of expected results when it is equal).
Because regression testing implies a previous version of the AUT, it's main attribute is that the expected results are mostly defined by that previous version, as opposed to "pure" functional testing where the expected results are defined by users needs or expectations (depending on the context, these may have been captured in functional requirements documents or they may just be in the users' heads - hence the rationale for exploratory testing).
Most of the automation tools allow you to run a given script first to record AUT version N results and then to match AUT version (N+1) results with recorded results. Most of them call the recorded results "expected results" and they call the matching process a "check", but IMHO it's overstated.
Now, depending on the checks that your scripts perform when you run them on a new version of the AUT, you may be doing "functional regression testing", i.e. check that the functions of the AUT did not regress.