diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 298e61c5817591f903b2936e9a477c4e75329a2b..0000000000000000000000000000000000000000 --- a/.dockerignore +++ /dev/null @@ -1,10 +0,0 @@ -# Files & folders to ignore when building the container image -.vscode/ -.venv/ -site/ -.editorconfig -.gitignore -.gitlab-ci.yml -Dockerfile -LICENSE -README.md diff --git a/docs/2021/exercise1.md b/docs/2021/exercise1.md index 766f2c4ff99f71811c47dc263f90ed7a5aff704d..aa1453e4707c890a553c78deb03c4441f410bf5e 100644 --- a/docs/2021/exercise1.md +++ b/docs/2021/exercise1.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) diff --git a/docs/2021/exercise2.md b/docs/2021/exercise2.md new file mode 100644 index 0000000000000000000000000000000000000000..b423aa896e7166d4c651d08f1061320c32476b92 --- /dev/null +++ b/docs/2021/exercise2.md @@ -0,0 +1,110 @@ +# 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. diff --git a/docs/2021/resources/exercise2-idm_example.pdf b/docs/2021/resources/exercise2-idm_example.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3472a384ee8a2e03a02a373a9d6e5952504bed90 Binary files /dev/null and b/docs/2021/resources/exercise2-idm_example.pdf differ diff --git a/docs/2021/resources/exercise2-template.docx b/docs/2021/resources/exercise2-template.docx new file mode 100644 index 0000000000000000000000000000000000000000..7a3833ac7a26128a56c5eee49971f450151351bc Binary files /dev/null and b/docs/2021/resources/exercise2-template.docx differ diff --git a/mkdocs.yml b/mkdocs.yml index 47e6be703a81fd8207dcd62ee98abf72fef646e4..d183d53513933afb8bf3d3a28a55e7b51d786318 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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