Unit testing is a software development practice that involves testing individual units or components of a software application in isolation. A unit is the smallest testable part of an application, usually a single function, method, procedure, module, or class. Together these code units form a complete application, and if they don’t work well individually, they definitely won’t work well together.
If you enjoy the subject of human cognitive biases, you should check out the curse of knowledge. When dealing with others, we tend to assume they know what we know. And we do this when no justification for the assumption exists. Do you fancy a more concrete example? Take a new job and count how many people bombard you with company jargon and acronyms, knowing full well you just started a few hours ago.
Regression testing is a software testing process that involves verifying the functionalities of an application or system after modifications have been made that could impact its performance. Unit testing is a software testing process that involves thoroughly testing individual functions or modules of a program using specialized tools. Unit testing helps testers to catch bugs early in the development process when they can be addressed more efficiently.