The question: Is it the developer's responsibility to design test cases, or the QA tester's? Or is it someone else's?
I am a software engineer at a small company in the United States. We have an offshore QA team. In our organization, we have a non-comprehensive suite of automated tests, which are owned by development. We try to follow an agile methodology and have recently transitioned to kanban from scrum.
When I pick up a story from 'ready to work', it must have certain data on it, including acceptance criteria. It must list out exactly how it works, who it affects, and so forth. As part of my work, I write unit tests to cover the code, integration tests to verify service-level interactions, and behavioral automated tests using cucumber/gherkin. I make sure the functionality gets deployed to a development VM and run through my automated tests plus some basic end-to-end sanity checks. Then, once I'm satisfied that the story works as it should, and it successfully passes code review, it gets passed to QA.
And the first thing QA does is kick it back and say "please provide test inputs."
Our QA team has access to everything I do. All the same supporting documentation -- the design documents, architectural documents, all of my code, the development VMs, even my gherkin features. If I were to design a test case, I would be working from the exact same pieces of data that they would be.
Are they right? Should I be writing them test cases that they are expected to repeat as rote? Is it their responsibility, mine, or someone else's? Or is this something which varies by organization?