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?
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.
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.
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,
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
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.
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.