To track versions and manage an environment from deployment to recovery, source control is essential. Tracking changes, performing peer reviews before merging to the main master branch & the ability to rebuild/recover/revert to a previously known good state ensure quality throughout the process.
Example source control : GitHub
Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
By integrating regularly, you can detect errors quickly, and locate them more easily.
Running new code through a pipeline of automated tests & peer review before reaching the test/uat environment ensures less regression errors & frustration for QA team.
Example CI : AppVeyor
Test Driven Development (TDD) involves coding test cases checking the newly implemented scenarios function as required (and ensure no regression when changes occur)
TDD is an essential tool in a programmers toolkit & is essential is required for modern dev positions.