In our organization, we are implementing Agile. Right now, we start with the test as soon as we receive stories and never go for the test cases. We test the stories on the basis of acceptance criteria. My question is: do we write test cases in a real agile process? If yes, when?
12 Answers
Maybe you do and maybe you don't. First determine what you want to accomplish, then decide on how you are going to do it.
Blanket statements saying YES or NO are useless. It really depends on the project, people, company and expectations.
My opinion is that if test cases help in actual testing, then yes, write them. If they are written 'just because', then that is not Agile.
-
2Your answer is good for thought process. But He is clearly asking whether he should need to write test cases in Agile or not? How your response is actual answer for this Q @George? Nov 30, 2016 at 5:59
-
3It's impossible to say whether he needs to write test cases in Agile or not without a lot more information about project. I think there are tons of arguments for and many against writing various kinds of test cases, plans, and documentation of any kind, or arguments about what test case even is, or what you want to accomplish with them.– GeorgeNov 30, 2016 at 16:05
Yes, in agile we do need test cases. Based on stories, we create test scenarios, and based on test scenarios, we create test cases. Because at the end of the sprint, we have to perform our test closure activities, where we want to show our test artifacts (test cases and test scenarios). So answer is yes, and it should start as soon as you get the stories.
-
3Are you saying you write test cases just because you have to show them? I dont understand the value then.– GeorgeNov 29, 2016 at 11:31
-
@George, the value is to help prove that the work has been completed sucessfully. Nov 29, 2016 at 16:36
-
But generally, you prove that work (item) has been completed succesfully by performing tests not generating documentation (writing test cases). Im not saying that test cases cant help to peform tests of course.– GeorgeNov 30, 2016 at 16:34
-
Do we need test cases in Agile ? Yes
Do we need test cases in Waterfall ? Yes
So what is the difference?
The key difference is that in Agile you need the most simple possible test case. This often referred to as an example rather than a specification. You then use this example to develop that functionality, get it into production, get feedback from real users and then put together the next simple small example piece of functionality and repeat the process.
This is different from Waterfall where you try and develop the full and complete specification up-front. The actual implementation is then just writing the software and tests that will reflect and implement that functionality,
Agile:
Understand, Agile is methodology which defines the ways and activities to be carried out for software development
It does not eliminate the core step of development and testing process
Surely it will add more productivity through less hurdle in traditional process and interlinkage of each step to other
Due to interlinkage one will work and dependent needs to wait for the completion of other
Do we use/need test cases in Agile?
Definitely yes, We need test cases in agile too
Agile known for parallel implementation and execution between team and tasks
When to write test cases in Agile?
Once finalized specifications for particular change/feature, Development team start writing code to implement. This is the time when you need to start writing test cases and brain storming to note and identify end use scenarios
You should be ready with all test cases before when development team share build to test
-
I can't help my pedantic self: Agile is a model, your application of approaches, techniques, artefacts, etc. is what makes a methodology.– Mark CNov 29, 2016 at 15:01
Yes, you need Test Cases in an agile development environment. The question is 'what are test cases?'. If you're thinking of line-by-line prescriptive cases then I very much doubt it. If you mean more like heuristics and key examples of behaviour then I very much expect so.
Likely it'll be a combination. Some cases might be prescriptive to address legal/financial audit requirements and 'prove' testing happened, others will be more like guidelines that provide examples to follow for lower risk areas and ensure test coverage, others might be no more than a mind-map for exploratory testing sessions. Many more will hopefully be automated (Test Scripts) for execution against the CI builds.
Whatever Test Case artefact you're it should help you ship quality software, help provide the needed level of clarity/understanding/definition that's needed to build and ship software. If it doesn't and you're making them out of habit, you're likely slipping into a more heavyweight approach as opposed to an agile one.
It sounds like you have test cases, but you call them the acceptance criteria. No one really cares about the test cases until something goes wrong and then people will want to know exactly what was tested.
If you have a spec then you can write some tests. After you have a build to test against you will probably think of some other tests.
I agree that it depends on the project but in most cases the answer is "Yes" due to the following reasons:
- You need to understand how exactly you will check acceptance criteria
- While creating test cases you will think about use cases and ask questions that might help to find flaws in documentation and save both development and testing time, especially, if you start writing cases as soon as stories are ready.
- At the end of the sprint having a set of test cases in "Passed" state will reduce team anxiety about release quality
- When things go south after release, test cases will help you to understand what areas should be covered better (and provide you some protection in post release blaming game)
- In case of lack of documentation your test cases might become a reference about how this feature X developed 6 sprints ago should really work
- In any case you will need some reference to regression testing whether it is done manually or (preferably) automatically.
However, I suppose I understand what lies behind your question. Usually, in Agile teams you have less time to create detailed test cases than you would prefer, so it seems a lucrative idea to cut some corners and save time on writing them. My experience tells me that you will eventually come back to writing at least some form of test cases, so it's better to start earlier. If release schedule is tight you can create checklists containing minimum data required for you or other people familiar with the project to test the story.
Something like this:
- Check use case X
- What if Y?
- Don't forget about possibility of Z
Test cases are not associated with a single type of project management and neither are manual or automated cases.
Generally its seen as good practice to document your tests for many reasons and one of the most common ways of doing this is by using test cases.
Test cases can be written in many different styles, so you will want to consider how they are written and my personal preference is always to try and create ones that are light and easy to adapt over time. The software/website/app which you will be testing will most likely change and your tests will need evolve over time too.
In agile specifically your test cases will be guided by the acceptance criteria from the user stories and you will want to be writing your tests to verify that the AC's are met.
Test cases are considered so useful in Agile, that a number of methodologies consider it a fundamental part of the process.
https://en.wikipedia.org/wiki/Acceptance_test%E2%80%93driven_development
YES, tester has to write the test cases for user stories.
After sprint planning and task breakdown done for user stories, developers will start coding and tester start writing test cases which helps tester to verify that acceptance criteria are met.
In Agile or any other methodologies,
A tester must have to test, so tester needs to write the test cases. For regression in the next sprints, it is necessary having the cases.
Now When Tester will write the test cases.
After requirement analysis/design the implementation/coding will be started. During this time the person who is responsible for testing or any of the member the agile team can start writing the cases.
Writing testcases has its benefits, but you may not have time to write a really verbose test plan. I sometimes just had my scenario in the testname only and be done with it. If you leave the project midway, the written testcases will help the new member filling in your shoes, while he does regression on the overall project.