We are currently running a project where at this moment around 1.000 test cases have been created.
Our project involves different areas of an ERP (Sales, Accounting, Purchase, HelpDesk) and so on.
Every month we have new requirements for the project, meaning that every month we create new test cases or update existing ones in order to cover the new requirements.
Due to the complexity and size of the project, we have the feeling that we are losing the control about deciding whether create a new test case or update an existing one.
Sometimes a new requirement impacts one step used in 30 or 40 new test cases and actually we don’t have the control on how to identify all these test cases affected.
Another problem is when bugs come, we are not sure if we should create new test cases for each bug because normally it is related to one specific step in a big workflow; or update an existing one.
We have been discussing 2 different approaches for the problem:
1st. Create a new test case for every new requirement
- In this first approach we would ignore any test case created in the past.
- We would create new test cases for every new ticket in Jira (Bug, improvement, task), sometimes copying an existing test case previously created and editing some steps, but NOT changing the old / existing test case.
- Create a Test Plan for every sprint and select only the test cases created in this sprint to be run.
- We would make sure that all new test cases are matching the new requirements since we would create them one by one
- The maintenance would be easier since we would not need to search and look for existing test cases affected by this new requirement
- We would generate a huge number of test cases every sprint, and the old ones would be useless since they would be obsolet. (just imagine a test case for login, every new requirement for password, e-mail, user name, user id … would generate a new test case: login)
- We run new test cases but we are not sure about what we already implemented still work as expected because we ignore old test cases, while new test cases might not cover everything in our big system.
2nd. Update test cases or create new test cases for every new requirement
- We would make sure that all test cases in the repository are up to date accordingly to the latest requirements.
- The maintenance is hard since we would need to search and look for existing test cases affected by new requirements.
Other than that, we are considering use Test Cases as training documentation for newcomers to our project, or even for our clients as a software guideline. We think that when people perform test cases, they will understand the system. Is it possible? Or test cases are just dedicated for QA team to do software testing? What do you think?