...
Regression testing can be performed to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change. The test pyramid (https://martinfowler.com/bliki/TestPyramid.html) suggests that one should have many more low-level unit tests than high level end-to-end tests running through a GUI.
...
Proficiency levels
Fundamental awareness
Knowing that code can test other code and seeing it in practice, e.g. downloading tests that tests your own solution for a programming exercise. The terms unit test and test case, understanding the sequence of states it tests.
Novice
Be able to write your own unit tests (technically) and have a basic understanding of test design, i.e. defining test cases corresponding to a specification
Intermediate
Designing complete test cases for the desired behaviour, using tests for specifying behaviour before the code to be tested is written. Understand the relation between design and test design, and how mocking is enabled and used. The idea of test coverage.
Advanced
Integration testing with testing of more architectural elements, like full stack with DB, domain objects, REST API and UI (whether desktop or web). What level of test coverages is required for various parts of a system.
Expert
Model-based testing and test completeness.
Tools