A complete automation testing sequence typically includes functional and non-functional automation, but these two testing types focus on different goals. Functional testing is used to verify what the software or application is designed to do. For example, functional testing validates whether a login function operates correctly to let users into a website. Non-functional testing validates how well the software performs those functions, such as verifying that the login function loads quickly enough to satisfy users' expectations. These two types of testing are part of all kinds of testing frameworks, and in all of them, functional testing is usually completed before non-functional testing.