Assignment 2
Description
Conduct testing on an open-source project. This assignment is very free in its implementation so try to find a project of good size or a project of which you can divide into a manageable piece to work with. You will work in groups of two or three and equal effort will be done by each individual. You will present your chosen project, and you may treat this as an interactive workshop where other students engage with the application. The time limit for your presentation is approximately 5 minutes, given leniency.
Instructions
The aim is to get you to work with existing programs and test them in new and interesting ways. Nothing is a waste of time so, if you research it, practice it, etc. document what you’ve learnt in relation to the project. How you decide to test is not limited solely to the instructions, do what interests you.
Select one open-source project
- The project must have some form of requirement specification, or that the requirements are easy to interpret from its implementation.
- The project must have some form of automatic unit testing done.
- The project should be an application with functional capability and prior development.
- This entails the project being maintained and not being too small, though restrict yourself in size to maintain a possible overview of the project’s functionality.
- The project must be executable and functional for you.
- The project must have a user interface, through which manual testing of the projects functionality can happen.
- Webb-app
- Graphical user interface
- Console app with menues
You should be able to
- Run existing tests, understanding their purpose and fundamentality.
- Provide results of the existing tests.
- The bugs encountered, what do the tests do, what problems do they solve, how they fulfil requirements, etc.
- Perform exploratory testing on the project.
- Provide details and your methodology, what did you find?
Your presentation should discuss the following
Mandatory requirements:
- A short description of the project.
- What is its purpose? What does it aim to accomplish?
- Provide an overview of the requirements and specifications.
- Stakeholders, risks, evaluation, etc.
- The past, present, and future development of the project.
- The current testing strategy, the kinds of tests being performed, and how the testing is reported on.
- What tools are used? How do they handle bugs?
- Document your testing performed.
- Exploratory testing is optional, what kind of structured testing will you do?
- What did you do and what did you find?
- Document the pre-existing tests and their results.
Higher grade requirements:
- Give judgement on the quality of the tests (coverage, process, automation)
- Do they achieve their purpose and make sure the program is stable?
- Suggest improvements for testing, motivating why, or justify why the current testing effort is sufficient.
- Are there missing tests? Can tests be automated? What is their efficacy?
- Write new and improved tests for the testing effort (test minimization).
- Motivate the reason for the inclusion of these tests.
- If you performed different kinds of tests, document and motivate why.
- Why could (or couldn’t) you include some forms of testing?
- Perform more than just functional testing.
- Discover and discuss new scenarios for exploratory testing to perform.
- What’s the reliability and scalability of the project? Is the project secure and unsafe? Who can use it and how is it accessible enough?
You may include images, tables, code examples, and/or diagrams but you need to make sure you have publishing rights to those. If in doubt, create your own.
Your documentation
Does not need to be text-heavy or equally complex. The documentation should be something presentable to those without knowledge of the system, and your presentation may be your documentation if you so choose. What we look for is a clear understanding and demonstration of your work.
Please note that the main bullet-points are things mandatory to your work and sub-points are there for guidance; include your various pieces of evidence and justifications for your work where applicable.
Important dates / Deadlines
- The deadline for selection of project is the 13th of December (2024).
- The submission form can be find pinned in the slack channel.
- The deadline for submission is the 8th of January (2025).
- By this point, you should have achieved all the mandatory requirements, everything above “For a higher grade.”
- What’s important for this deadline is to demonstrate testing so you are not working on too large or too small of a project, this is to give you opportunity to evaluate whether or not you’ve met the mandatory requirements or must swap project.
- Documentation will be handed in through an online form given on the workshop. This can be as simple as your presentation for passing grade but for higher grade I would expect a more formal and complete documentation, covering the questions and more reflections (use screenshots).
- The deadlines for your presentation/workshop is the 8,9,10th of January (2025).
- 8 January - WP Kalmar - Ma414K
- 9 January - WP Online - Zoom, see schedule
- 10 January - Växjö - D1136A_V
- Here, you should prepare to present your application. Everything should be finished and ready, and so you will present in front of other groups.
- Make sure your documentation is written clearly, formatted well, and is understandable for those without in-depth knowledge of the system.
A2 Presentation workshop
- A2 presentation workshop will be 8,9,10th of January (2025), depending on student group, check your individual schedule.
- 8 January - WP Kalmar - Ma414K
- 9 January - WP Online - Zoom, see schedule
- 10 January - Växjö - D1136A_V
- Presentation groups. During this workshop I will divide you into smaller groups and you will individually show your project to your presentation group. So if you are two or three in your group, you will be divided into separate groups.
- Prepare a presentation, five minutes of content (10 min time of which 5 is your presentation)
- Group will ask followup questions and explore the project with you (10 min time)
- Goal with your presentation is to show to other students what you have learnt from this project? So target students.
Example open-source projects
Examples of existing open-source projects to investigate:
- Atom (JavaScript)
- Chromium (JavaScript frontend, C++ backend)
- Zulip (JavaScript frontend, Python backend)
- Godot (C++)
- Google Authenticator (Java)
- Nextcloud (PHP)
- Sympy (Python)
- Bazel (Java)
You may use these or any other open source project for your testing and documentation, so long as it follows the aforementioned requirements.