Regression Testing |
Re-testing pre-existing code to ensure defects have not been introduced by recent changes. The goal of regression testing is to successfully determine code that was previously tested and functional is still functioning properly after being combined with recently updated code. |
Performed initially on existing code to create a baseline (to use for comparison), then performed again after the updated code has been integrated. |
Primarily QA testers, but may also be conducted by Acceptance testers and System testers. |
System Testing |
Testing the (integrated) software components with the associated hardware systems on which the software is installed. Some examples of system testing are communications testing, network testing, and stress or performance testing (such as testing system volume, system load capacity, or system uptime). Disaster recovery, failover testing, and backup/restore testing are also types of system testing. Notably, system testing can be required when there are no code changes; for example, when structural changes are made to a database, when a firewall is added, when routers are reconfigured, when hardware is upgraded, or when software is migrated to a new release. |
Performed any time a change or addition is made to software, database structures, or systems or tools associated with the software. |
Primarily, System testers, but may be conducted by others. For example, when a new firewall is added, an organization's security department would likely test the security of the system with the new firewall. |