robotframework Basic Training by ME
Went through the theory part quickly, introducing that "Acceptance Testing" is our focus area in this course, also robotframework is designed for this area. Then explained different levels/types of test automation, frameworks for test automation, then robotframework.
Shortly we moved to familiar with the system under test, a very simple web application. On a login page, you enter username and password, if it’s correct you got a welcome page; if it’s wrong, you got an error page. You could logout of course.
After that, I separated all the trainees (8 people) into two groups with 4 people in each, there are both developer and tester background people which is nice. Ask them to do test planning within the group, "what would be your testcases to verify the system under test?"
One interesting thing I found gradually is different groups made different plan / testcases for the same system under test. These two groups were different too.
Then they were asked to select their first testcase from the list, and form into pairs (one former group forms two pairs, working on the same testcase within group). Unlike the trainings I gave in the past, I almost gave no introduction beforehand, e.g. how to write testcase, how to run it, how to find a keyword, how to import a library, and more. But just let them go, rely on the pair to find the answer by their own.
They worked out the 1st testcase very fast, some even made user keywords already. Obviously they had problem with keyword abstraction, executable documents, duplication in variable and keyword, etc. Find out commonnesses and differences among those testcases can lead them to the right direction, and visible charts or texts would help.
Before reaching that, I asked them to summarize the 1st Robot testcase on to paper. "Consider your experience in the past, normally we design the testcase and write down the document, then you or other testers will execute the tests according to the document.", "now, within your group, document the testcase which you just implemented."
After finished summarization, they had to select another testcase, discuss and write it down on paper.
While each group had two documented testcases, and the list of testcases, I asked them to paste those flipcharts on the wall together, one next to another, so it’s easy to see the same / differ parts of testcases. Still, discussing within group, find out those parts could be reused or shared by other testcases.
Groups made a bit progress, instead of directing the training (I may wish to call it a workshop now) too much, I defined the target for that session — "while concluded, come back to pairs and implement the 2nd testcase, or more if you wish. Besides that, consider the overall test management, do you best to reduce duplication, ease future maintenance and so on."
This session took nearly 2 hours, and it could be more since they had some urgent things to do. They actively browse the http://robotframework.org website for all the information they need, me and ZGC (co-trainer) were helpping around if they had questions.
They used the glass board for drawing, updating and recording their discussion.
During this session, I found one group updated their orginal testcase document, seems added some comments regarding the abstracted higher level user keywords and some other stuff.
Again, while all pairs made their 2nd testcase, they shared with the rest via projector. In order to be fast, and providing direct feedback, I commented right after they showed their testcase, point out the problems and risks, the ways to correct those, possible improvement actions, and why it’s better.
Then it came to the Q&A session. One good question was "how to map the ‘detailed view of the framework’ to all we just did". The "detailed view of the framework" slide in the training material illustrated all activities happened from designing a testcase until test report is ok, but it’s abstract, conceptual, a kind of logical view. The trainees want to understand it from the experience just happened.
I pasted a new flipchart, drew those panes on the paper, explained each step in the whole procedure, and fill them gradually on the paper. Then finally the flipchart became as below :