Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation End2End testing #632

Closed
JanWittler opened this issue Sep 1, 2022 · 2 comments
Closed

Documentation End2End testing #632

JanWittler opened this issue Sep 1, 2022 · 2 comments
Labels
PISE-SS22 Tasks for the PISE practical course (SS22)
Milestone

Comments

@JanWittler
Copy link
Contributor

Referenced files:

This issue is used to collect and discuss feedback regarding the documentation of the end2end testing strategy.

Relates to #317 and #357.
@SuyDesignz @jplag/maintainer

@JanWittler JanWittler added the PISE-SS22 Tasks for the PISE practical course (SS22) label Sep 1, 2022
@JanWittler JanWittler added this to the v4.0.0 milestone Sep 1, 2022
@JanWittler
Copy link
Contributor Author

Thanks for the good and extensive documentation.
Maybe check the texts again with grammarly.com or similar. I found and listed some typos, but maybe have overseen some.

Wiki

  • I like the part regarding the Plagiarism and their backgrounds but don't think it is necessary in that verbosity for the end2end tests. We should think about migrating this part into a distinct section of the wiki such that the page for the end2end tests remains concise.
  • In section Creation of the test data for the End-To-End tests
    • please use actual markdown lists (1) 2) ...) instead of the current bullet point + number combination.
    • Write code as code (e.g. in 6.1 or 7.1)
    • decleration -> declaration (in other places incorrect too)
  • Check the code indentation of the examples
  • You can enable Java syntax highlighting by starting a code block with ```Java
  • (3) missing comma in first paragraph (the normalization has changed the function separation)
  • (4) arrayLenght typo in code
  • Indicate gaps in code with // ... as this will have nicer syntax highlighting

If a result differs only in the options, it is very likely that the change is in the configuration of the minimum_token_match. This means that if Option1 does not change in the result of the detection but the result in Option2 does, this is the basis of the minimum_token_match.

I don't get this sentence. The minimum token match is defined by the JSON, so how can it change?

I like that you provide code examples for all plagiarism cases but I would remove the JSONs there. This can also be expressed in code and is then easier to grasp for someone not used to the JSON structure.

Also, you motivate things using a minimum token match of 1. This value makes no sense at all for code, as this will trigger a match whenever two times the same token is extracted and does not require any structural similarity. Also, why 15? The default match of Java is 9 and thus this should be the first reference to use. As a comparison, you could e.g. take 3,4,5 or similar. They should still show the point that a lower MTM increases the similarity.

Readme

  • Remove the [...] in the JSON examples. That red looks bad 😄
  • I think you should keep the numbering of the plagiarism attacks in the readme (as in the wiki)
  • Again code in code blocks
  • api -> API
  • Select a unified naming of end2end: you have end-to-end, end to end, and endToEnd. I would go with end-to-end.
  • Instead of only linking the discussion regarding test options, I would list them briefly. Also, please explain the JSON structure instead of showing an example. You could also just provide the schema, e.g. similar to here
  • Create New Language End To End Tests
    • sechtion typo -> section
    • wicht typo -> which
    • check code indentation
    • remove the list on the language identifier as this will change in the future. Simply refer to Language#getIdentifier#
    • use unix file separators (/ instead of \)
    • result json file path [...]/resources/results/JAVA/sortAlgo.json > [...]/resources/results/LANGUAGE/TEST_SUITE_NAME.json

Code documentation

private void setRunOptions() {
options = new ArrayList<>();
options.add(new Options(1));
options.add(new Options(15));
}

Original question: Why do you specify the options in code when that can also be specified in the JSON?
Question after reading all the documentation: It seems that it intended that the options have to be duplicated in code and in the JSON. Why? I could also just iterate over the options present in the JSON.

@tsaglam
Copy link
Member

tsaglam commented Sep 16, 2022

✅ Documentation incorporated into the wiki and the repo!

@tsaglam tsaglam closed this as completed Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PISE-SS22 Tasks for the PISE practical course (SS22)
Projects
No open projects
Status: Done
Development

No branches or pull requests

2 participants