Software Dev Technical Challenge - Task One
Software Dev Technical Challenge - Task One
Software Dev Technical Challenge - Task One
N.B. there will be occasions when what is asked for is often not what is needed. If a developer has done their
job well, they will have worked through a process to uncover what is truly needed!
To complete this activity you don’t need experience of writing code or developing solutions as everything can
be Googled and adapted. We are more interested in your curiosity attention to detail and desire to solve the
problem.
In this activity you will review a number of user stories that contain the requirements for a software solution.
You will then be asked to identify a suite of tests that must be passed if your solution is ‘working.’ Finally you
will get to cut some code and create a simple webpage using the most basic of tools, literally a text editor and
a browser. Finally, you will be asked to reflect on your experience. This reflection and how you approached this
challenge will be discussed at the next stage of the recruitment process.
There are links to tutorials and reference guides on HTML, CSS and JavaScript just click the words.
This video here will show you how to create a web page with a text editor.
As part of their online offer a training business wants to be able to validate a subscriber’s name, email address
and credit card number when they book a course.
The commercial director, marketing director and CTO were identified as stakeholders for this app and
identified the User Stories in Appendix A:
Often User Stories are missing all the information a developer needs to develop a solution. These situations
can be tracked through issues or by arranging a session to discuss the user stories to get clarification.
Create a list of issues that you would like to discuss with the stakeholders.
1 10 Example: ‘As CTO I need the application for follow our UX (User Experience)’ The UX guide
is not available.
3
4
5..
If we cannot get answers from the stakeholders, then we can use assumptions to carry on developing.
3) Record the assumptions you need to make to allow you to carry on developing?
ID Issue ID Assumption
1 1 Example: Only the UX requirements in the user stories will be developed. i.e.
Issues being highlighted to the user ASAP, preferably when they are still entering a field.
Correct fields should be shown as green
Errors should show in DN Pink
2
3
4
5..
Once we have identified the issues, made assumptions about the areas where we don’t have enough
information, we are ready to start thinking about our solution.
Often, developers will identify the tests that their code needs to pass to be considered working. This approach
is called Test Driven Development.
Test cases are used to define the tests that we will execute to prove we have developed a solution that meets
the User Story Requirements. These can be grouped into a test suite.
We’ve simplified things for this example and have provided a Template Test Suite for you to add your tests to
in Appendix B. The Test Suite Template contains the following columns
Test Case ID A unique ID for the Test case used in the defect report if the test fails,
User Story ID Test cases should relate back to a User Story, if it isn’t in a user story, it shouldn’t be tested…
Acceptance Condition User Stories will often contain acceptance criteria that the software tester will propose,
and the stakeholders will agree to. i.e. Our User Story could say As a user I need to enter my name so that I
can… acceptance criteria for that story could be: Western Style First Name and Surname would be a valid
name. Title, First Name and Surname would be valid. You can define the acceptance criteria.
Preconditions What needs to have happened before we can execute this test?
Actual Results What actually happened (this can include screenshots as evidence.)
Notes / Defect ID Raised. Any notes from the test or If the test failed what changes did you make to the code?
4) In the Template in Appendix B create a suite of tests that the solution must pass to be considered
working.
5) Development time: using just a text editor and a browser create your solution.
6) Update your test results as you develop, you can show when tests fail. (Its really OK), just add a new
line underneath the test and note the change you made to the code. This will show how you’ve
repeated the Dev / Test cycle till all tests are passed.
8 CTO As CTO I need the application to reduce the load on the back-end server, validation
should be done on page.
9 CTO As CTO I need to ensure all applications can be accessed by all users, the application
needs to conform to w3c accessibility initiative. Introduction to Web Accessibility |
Web Accessibility Initiative (WAI) | W3C