Software Quality Assurance - Writing Test Cases
Usually the product team and upper management team who has knowledge of customers and their requirements coming up with software requirements specifications. They will also include sample user interface mock-up screen to explain how their software product should look like.
Then the requirement specification is communicated to the software development managers and Quality Assurance(QA) managers. The software development team will prepare for unit testing where as QA team prepares for QA test cases to test the all possible scenarios based on the product workflow. When the software is being developed with a team of developers or teams, then source code integrated to one version that usually controlled by version control softwares such as Visual Source Safe, SVN, MKS, etc. The software is integrated, integration testing is performed.
For each and every feature getting added into the software, a list of test cases has to be written and QA person need to work on the software and test each and every test case and mark it as pass or fail. QA team executes the System Testing and System Integration Testing.
When it is new product, a complete set of test cases have to be developed and executed. But once the software is in production, for sub-sequent releases to the product, all test cases will not be tested. Only the test cases against new features will be executed. However to check the software stability, QA team will conduct regression testing that can compare results of previous version and current version. Now a days, most regression testing are part of automatic testing.