I have been working in the IT services sector for 13 years now and right now working as a manager. So, I am qualified to tell you about the preferred Order for Performing Testing. There are different methodologies followed in information technology projects. For example waterfall methodology, Agile Scrum, Scaled agile, etc. I have been working in agile methodology since 2011. Most large companies use agile scrum or scaled agile in information technology projects.
While development the developers should perform unit testing. And preferably the dev team should automate the unit test cases so that they can reuse them. Every time there is a code deployment in upper environments, such as QA environment, UAT environment, Prod env, there will be a Sanity test performed to make sure the new deployment did not cause any severity 1 issue, or it did not break anything major.
Next comes integration testing, which is like say each developer is building different components, and now when multiple components are ready, integration testing will make sure all components talk to each other, work together and produce what it is supposed to produce.
Functional testing or system testing or system integration testing, are pretty much the same thing. The QA team makes sure the application is behaving the way it should.
Preferred Order for Performing Testing by users which are known as user acceptance testing or UAT comes at last before production. This is performed by the client. But, UAT is the last stage mostly for applications that are not going on the internet. Otherwise, there will be load testing/ performance testing, security testing too.
But being a novice you need to understand first a client provides requirement, the IT team that includes business analysts, system architects, developers, quality analysts testers who then analyze the requirements, and make sure that they understand the vision. Once the analysis phase is done, then they start to build, which is another way of saying, technically the architect defines how to achieve the client vision, developer code to fit the vision and then the quality assurance team perform testing to ensure the quality of the product.
This is a helicopter view. Now there are many types of testing. Such as unit testing- which is performed by the developers, who test their code before they deliver the code to QA or for system / functional testing.
Functional or system testing is done by the quality assurance testers. Preferred Order for Performing Testing is always after developers make the functional code ready. If during QA or functional testing bugs are found then, the developer will fix them. and send the fix back for a retest.
Once functional testing is successfully done, the code goes for user acceptance testing, which is usually performed by the client. And when that is done the code is usually deployed to the production. This is where the actual use of the product begins. So the preferred order for performing testing is before after build code is implemented but has not gone to production yet. The goal of so many rounds of testing is not to make the product defect-free, but to make the product better and best of quality. Gradually more bugs come out, which gets fixed and that is how the product gets better.