It’s time to write my second post related to our English ECIP –course. I’m really happy about positive and good comments I got from previous post and I hope I can keep this more technical post also enough interesting and engaging for you.
This week’s assignment was about writing technical post for computer science students and technology enthusiasts.
As a background story, couple of weeks ago we formed little project teams in our study group to building mobile apps for outdoor activities in Oulu. After a little bit planning, we decided to start developing gamified sightseeing app for Oulu. Our team consist of the following specialists behind the nicknames: Jyr1, Tuukk4, 11kk4, J0n1, 54mp0.
Our idea is very simple: App will offer locations where user can go, and once user reaches that location, app will reveal a story and facts about the sight located in there. By going and finding places user will get points and that will encourage user to do more and more sightseeing.
App must be of course tested once we’ll have even a first functional version of that. Because we are using Agile methods in our group, testing will be very integral part of our development process.
In Agile process, development and testing can’t be separated. Only by testing maturity of the project can be measured. In this way we can make sure that development of the app will go right direction from very beginning and it will success to pass tests based on the user stories which have been written in very beginning of the project to the backlog journal.
Since we are still in quite beginning of the project, some details are not decided yet. With testing, I personally feel attracted to rely on more specific Agile testing method: TDD (test-driven development). In TDD tests are written even before any code has written. In our case we can use our user stories and make them more technically detailed to make sure testing will be enough comprehensive.
First test will be based on the highest prioritized user-story, which in our case will be following:
“As a tourist, I want to explore Oulu, so I will have interesting holiday.”
When this functionality will work, we’ve reached our first cycle of testing and developing, and we can go to the next one. In this way, testing and developing becomes an iterative loop which will finish when app can pass the lowest priority user story.
If this would be a commercial product it would be good to take people from outside of our team to the testing team. Also, we could test product in the markets during the process too, by distributing very early versions as a minimum viable products to take feedback, find bugs and fix them in our next iteration…
One very important point to make about testing is following: It is better that people who are writing code for the app don’t make or even write the tests, at least alone. If this happens, it can end up creating a blind loop where it seems like everything is good, all functionalities are working but, in the end, product won’t be ready for the end users even it passes all the tests.
So, time will tell, which (Agile) approach for testing our team will pick. Feel free to drop a comment and ask later how things are progressing with our team. Thanks for reading this text and I hope I hear about you in the comment box of this post!