Fakultas Ilmu Komputer UI

Commit 17f5ab55 authored by Daya Adianto's avatar Daya Adianto
Browse files

Merge branch '3-exercise-idm' into 'master'

Create the exercise specs on input domain modeling

This MR adds the exercise specification about creating an input domain model.

Closes #3.

See merge request !4
parents 3194bf2b b40e470c
Pipeline #87977 passed with stages
in 1 minute and 26 seconds
# Files & folders to ignore when building the container image
.vscode/
.venv/
site/
.editorconfig
.gitignore
.gitlab-ci.yml
Dockerfile
LICENSE
README.md
......@@ -52,6 +52,25 @@ with a teaching assistant to demonstrate your work.
in performing static analysis on code quality and possible security-related
issues.
## Deliverables
At the end of this exercise, you are required to prepare the following
artifacts:
- [ ] A fork repository of the group project in your own namespace on GitLab
CSUI.
- [ ] An updated GitLab CI/CD configuration, i.e. `.gitlab-ci.yml`, in the fork
repository.
- [ ] An example of working pipeline in the fork repository that shows the CI/CD
pipeline successfully build, test, and deploy the application.
- [ ] An URL to the application that is built and deployed from your fork. It
is OK to simply use the public IP address of the VM that running your
application. Make sure the URL is accessible when conducting demo with the TA.
The due date of this exercise is: **17 November 2021, 21:00 UTC+7**. Please
ensure any updates to the fork repository related to this exercise were made
and pushed before the due date.
## References
- [GitLab CI/CD Reference on GitLab CSUI](https://gitlab.cs.ui.ac.id/help/ci/yaml/README.md)
......
# Exercise 2: Input Domain Modeling
You are asked to design an input domain model for one feature of your group
project **individually**. Implement this exercise using a **new branch** of
your **previously forked group project codebase**.
We provide a template for creating the IDM in [Markdown](#appendix-1-markdown-template)
and [Microsoft Word](./resources/exercise2-template.docx). Feel free to use it.
We also provide an [IDM example from last year's exercise](./resources/exercise2-idm_example.pdf).
At the end of the exercise, do not forget to schedule an one-on-one meeting
with a teaching assistant to demonstrate your work.
## Tasks
1. [ ] Choose one **complex function** from your group project.
The complexity of your chosen function will affect the final grade of this exercise.
You can choose a function that is implemented by your workmate, but do note that
**plagiarism rule still applies**.
2. [ ] Create input domain model for that function. Feel free to choose whether
to use interface-based or functionality-based approach to identify the characteristics
and their partition.
3. [ ] Identify the constraints between characteristics if exist.
4. [ ] Choose the test values based on your input domain modeling. Feel free to use
any criteria that you think is the most effective.
5. [ ] After choosing the test values, do you think that all of them are already covered
in the existing test?
6. [ ] Improve the existing test using your identified test values.
7. [ ] Arrange an one-on-one meeting with a teaching assistant to demonstrate
your work. You are expected to be able to:
- Explain the input domain modeling process of your work.
- Explain the test values selection process of your work.
- Explain the testing improvement after conducting this work.
- Provide arguments from your choices on this work. E.g: choosing criteria, characteristics,
IDM approach, etc.
## Deliverables
At the end of this exercise, you are required to prepare the following
artifacts:
- [ ] A written document that describes the process of your work in completing
this exercise. You can write the document as a Markdown-formatted text file
or a PDF file. Give the document a descriptive name, e.g. `exercise2.md`, and
put it into a folder called `docs` in your fork.
- [ ] One or more changed test suites, if any, that had been updated from the
result of this exercise.
> If there are no changes in the test suites, explain the reasons in the
> documentation.
The due date of this exercise is: **24 November 2021, 21:00 UTC+7**. Please
ensure any updates to the fork repository related to this exercise were made
and pushed before the due date.
## References
- [Ch 6. Input Space Partitioning slide at Paul Amman's Introduction to Software Testing book website](https://cs.gmu.edu/~offutt/softwaretest/powerpoint/Ch06-ISP.pptx)
- [6.005 — Software Construction on MIT OpenCourseWare | Reading 3: Testing](https://ocw.mit.edu/ans7870/6/6.005/s16/classes/03-testing/index.html)
## Appendix 1: Markdown Template
You can use the following Markdown template to document the IDM in your
`exercise2.md` file.
```markdown
# ISP Documentation for [Insert Function Name Here]
## Input Domain Model
| Characteristics | b1 | b2 | ... |
|------------------|---------------|---------------|-----|
| Characteristic A | Partition A 1 | Partition B 2 | |
| Characteristic B | Partition B 1 | ... | |
| ... | ... | ... | |
Note: You can write some explanation about how you design your IDM to help you
during demonstration.
## IDM Relabeling Table
| Characteristics | b1 | b2 | ... |
|-----------------|-----|-----|-----|
| A | A1 | A2 | |
| B | B1 | ... | |
| ... | ... | | |
## Constraints
- Constraint 1
- Constraint 2
- ...
## Test Values and Example I/O
Criteria Used: [Define your chosen criteria here]
Note: You can write some explanation about how you choose your criteria to help
you during demonstration.
| Test Value | Example Input | Expected Output |
|------------|---------------|-----------------|
| A1B1... | Input 1 | Output 1 |
| A1B2... | Input 2 | ... |
| ... | ... | ... |
```
> Tips: If you write using Markdown and want to export the document as PDF file,
> you can use [`pandoc`](https://pandoc.org/) to export text file written in
> Markdown into a PDF.
......@@ -53,6 +53,7 @@ nav:
- Year 2021:
- 2021/index.md
- Exercise 1: 2021/exercise1.md
- Exercise 2: 2021/exercise2.md
- Year 2020:
- 2020/index.md
- Midterm Exam 1: 2020/midexam1.md
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment