Currently, my company follows a modular test case approach, in the context of business workflow tests. In this approach, we have a lot of component-level test cases, that, by themselves, are not part of our regression suite; however, these test cases are each used in larger, workflow-style, end-to-end, data-driven test cases. For example, if Gmail was our application, we would have something (much more built out, but hopefully you get my point) along these lines:
Component Test Cases
-Login, parameterized (username, password) – not a regression level test, by itself
-Compose message, parameterized (to recipient, subject, message, cc recipient) – not a regression level test, by itself
-Add attachment, parameterized (filepath/name) – not a regression level test, by itself
-View Inbox Message, parameterized (from recipient, subject, message, attachment) – not a regression level test, by itself
-Forward Message – not a regression level test, by itself
-Reply – not a regression level test, by itself
-Logout – not a regression level test, by itself
Regression Test Cases
-Forward a message: --Login (“Sender”, “password1”) > Compose Message (“Receiver”, “Automation”, “Question”, “”) > Send > Logout > Login (“Receiver”, “password1”) > View Inbox Message (“Sender”, “Automation”, “Question”, “”) > Forward Message > Compose Message (“Person to Forward to”, “Fwd: Automation”, “Question”, “”) > Send
-Send a message with attachment: --Login (“Sender”, “password1”) > Compose Message (“Receiver”, “Automation”, “Question with Attachment”, “”) > Add attachment (“File”) > Send > Logout > Login (“Receiver”, “password1”) > View Inbox Message (“Sender”, “Automation”, “Question”, “File”)
Here is the predicament we are facing: very few Test Case Management tools (QualityCenter and possibly QTest) support this style of testing. Many of the other TCM tools we have investigated instead support exclusively component-level when it comes to data-driven testing. (i.e. can login 50 times with 50 different sets of data, can send 50 different messages with different data). We are starting to wonder if we are the outliers, which is where my question comes in…
Do a lot of companies follow the workflow-style tests composed of component-level tests, or do companies instead typically iteratively execute very small test cases with different data permutations, and leave workflow testing to exploratory testing?