Wednesday, July 7, 2010

What is Regression Testing?

Regression testing means rerunning test cases from existing test suites to build confidence that software changes have no unintended side-effects. The “ideal” process would be to create an extensive test suite and run it after each and every change. Unfortunately, for many projects this is just impossible because test suites are too large, because changes come in too fast, because humans are in the testing loop, because scarce, highly in-demand simulation laboratories are needed, or because testing must be done on many different hardware and OS platforms.


Researchers have tried to make regression testing more effective and efficient by developing regression test selection (RTS) techniques, but many problem remain, such as:


* Unpredictable performance. RTS techniques sometimes save time and money, but they sometimes select most or all of the original test cases. Thus, developers using RTS techniques can find themselves worse off for having done so.
* Incompatible process assumptions. Testing time is often limited (e.g., must be done overnight). RTS techniques do not consider such constraints and, therefore, can and do select more test cases than can be run.
* Inappropriate evaluation models. RTS techniques try to maximize average regression testing performance rather than optimize aggregate performance over many testing sessions. However, companies that test frequently might accept less effective, but cheaper individual testing sessions if the system would, nonetheless, be well-tested over some short period of time.

These and other issues have not been adequately considered in current research, yet they strongly affect the applicability of proposed regression testing processes. Moreover, we believe that solutions to these problems can be exploited, singly and in combination, to dramatically improve the costs and benefits of the
regression testing process.

What is Quality Assurance?

Quality assurance is the process of verifying or determining whether products or services meet or exceed customer expectations. Quality assurance is a process-driven approach with specific steps to help define and attain goals. This process considers design, development, production, and service.

The four quality assurance steps within the PDCA model stand for:
Plan: Establish objectives and processes required to deliver the desired results.
Do: Implement the process developed. 
Check: Monitor and evaluate the implemented process by testing the results against the predetermined objectives
Act: Apply actions necessary for improvement if the results require changes.

PDCA is an effective method for monitoring quality assurance because it analyzes existing conditions and methods used to provide the product or service customers. The goal is to ensure that excellence is inherent in every component of the process. Quality assurance also helps determine whether the steps used to provide the product or service is appropriate for the time and conditions. In addition, if the PDCA cycle is repeated throughout the lifetime of the product or service, it helps improve internal company efficiency.


Quality assurance demands a degree of detail in order to be fully implemented at every step. Planning, for example, could include investigation into the quality of the raw materials used in manufacturing, the actual assembly, or the inspection processes used. The Checking step could include customer feedback, surveys, or other marketing vehicles to determine if customer needs are being exceeded and why they are or are not. Acting could mean a total revision in the manufacturing process in order to correct a technical or cosmetic flaw.
Competition to provide specialized products and services results in breakthroughs as well as long-term growth and change. Quality assurance verifies that any customer offering, regardless if it is new or evolved is produced and offered with the best possible materials, in the most comprehensive way, with the highest standards. The goal to exceed customer expectations in a measurable and accountable process is provided by quality assurance.