@@ -17,20 +17,29 @@ function HomepageHeader() {
{siteConfig.title}
{siteConfig.tagline}
- {/*
-
- Open the Syllabus
-
-
*/}
+
+
+
+ Open the Syllabus Online
+
+
+
+
+
+ Download the Syllabus PDF
+
+
);
}
export default function Home(): ReactNode {
- const {siteConfig} = useDocusaurusContext();
+ const { siteConfig } = useDocusaurusContext();
return (
LO-1.1 Recall the two main Use-Cases of Robot Framework
+
+- [X] Robot Framework supports both test automation and robotic process automation (RPA)
+- [ ] Robot Framework was originally developed specifically for unit testing.
+ > Initially designed for acceptance testing
+- [X] Robot Framework's keyword-driven approach makes it accessible to users with minimal programming skills.
+- [x] Robot Framework can automate interactions with various technologies, such as APIs and databases.
+- [ ] Robot Framework is not extensible.
+ > RF can be extended with keyword libraries
+
+### Which TWO of the following are key attributes of Robot Framework's syntax that contribute to its simplicity and human-readability?
+
+> LO-1.3 Recall the key attributes of the syntax that makes Robot Framework simple and human-readable
+
+- [ ] Use of complex nested structures is not possible.
+ > Robot Framework avoids complex nested structures but they can be used.
+- [ ] Focus on the use of specialized symbols and character sequences as syntax.
+ > Specialized symbols and character sequences are kept to a minimum to improve readability. Robot Framework emphasizes clarity over complexity.
+- [X] String first syntax where all arguments are strings unless explicitly stated otherwise.
+ > Unquoted strings are considered as strings, while variables need special syntax like `{variable}` or integers like `${42}`.
+- [ ] There are no programming control flows such as if statements and for loops.
+ > Control flows are present in Robot Framework as described in `LO-5.2.X` .
+- [X] Reduced use of special characters.
+ > Compared to programming languages the focus is on reducing special characters, making the syntax human-readable and user-friendly.
+
+### Which of the following statements is TRUE for `*** Test Cases ***` or `*** Tasks ***` section?
+
+> LO-2.1.2.3 Understand the purpose of the `*** Test Cases ***` or `*** Tasks ***` section.
+
+1. [ ] The section can be used in resource files.
+ > Not allowed in resource files
+1. [ ] The section can only have keyword calls in them.
+ > Syllabus chapter mentions multiple settings (also control flows, var assigns, groups)
+1. [ ] The section is not mandatory in a suite file.
+ > One kind of this section is mandatory in suite files
+1. [X] The section defines the executable elements of a suite.
+
+
+### Which TWO of the following sections use indentation to define the body of an element?
+
+> LO-2.2.1 Understand and apply the mechanics of indentation and separation in Robot Framework.
+
+- [ ] `*** Settings ***`
+ > Items have no bodies requiring indentation
+- [ ] `*** Variables ***`
+ > Items have no bodies requiring indentation
+- [X] `*** Test Cases ***`
+ > Keywork calls in the body of a test case are indented.
+- [x] `*** Keywords ***`
+ > Keywork calls in the body of a keyword are indented.
+- [ ] `*** Comments ***`
+ > Contents are completely ignored
+
+
+### Which THREE of the following are execution artifacts generated by Robot Framework
+
+> LO-2.3.2 Explain the execution artifacts generated by Robot Framework.
+
+- [ ] Configuration files (`robot.yaml`)
+ > Configuration files are not generated as a result of test execution, but are rather part of the project setup and development.
+- [x] Log files (`log.html`)
+ > A detailed log file that provides an HTML view of the execution, including keyword-level details.
+- [ ] Resource files (`keywords.resource`)
+ > Resource files are used by Robot Framework but are not created as execution artifacts; they are components used by tests.
+- [x] Report files (`report.html`)
+ > A summary report that gives an overview of the execution results, including statistics of tests|tasks executed, passed, and failed.
+- [x] Output files (`output.xml`)
+ > A machine-readable file containing ALL logged execution details, limited by the given log-level.
+
+
+### Match the correct prefixes to different variable access types
+
+> LO-3.2.1-1 Recall the four syntactical access types to variables with their prefixes
+
+Given the following prefixes:
+```
+1. `@`
+2. `$`
+3. `%`
+4. `&`
+```
+
+Match the variable prefixes to their correct descriptions:
+
+_(Use Drag&Drop to match)_
+
+1. Store multiple values in a list structure
+2. Store values as a single entity
+3. Read access to an environment variable.
+4. Store key-value pairs in a dictionary structure.
+
+
+### Which TWO of the following statements are key characteristics of `Test Teardown` and `Task Teardown` ?
+
+> LO-4.2.2-1 Recall key characteristics, benefits, and syntax of Test|Task Teardown
+
+- [x] When `Test|Task Teardown` fails, the test|task is marked as failed in reports and logs.
+- [ ] `Test|Task Teardown` runs only when the Test|Task passes.
+ > Teardowns run always, even if a preceding keyword fails.
+- [x] All keywords within the `Test|Task Teardown` are executed, even when one of them fails.
+- [ ] `Test|Task Teardown` must be set separately for each test|task.
+ > You can use the setting `Test Teardown` or `Task Teardown` in the `*** Settings ***` section to define a teardown for all tests|tasks in the suite which do not have a locally define Teardown with the `[Teardown]` setting.
+
+
+
+### Which of the following statements describes the purpose of tags most accurately
+
+> LO-4.4 Recall the purpose of Test|Task Tags in Robot Framework
+
+1. [ ] Tags are case-sensitive labels used for grouping suites and tests|tasks.
+ > Tags are case-insensitive and only used for tests|tasks or keywords.
+1. [ ] Tags are assigned to suites to create statistical summary of the suite results.
+ > Tags are assigned to tests|tasks, not to suites, even though a default can be configured in the suite setting, which result in automatic tagging of all tests|tasks within that suite.
+1. [x] Tags offer a simple mechanism for classifying and controlling the execution of tests|tasks.
+1. [ ] Only pre-defined tags, such as `smoke`, `regression`, and `critical` can be assigned to tests|tasks
+ > Tags are free-form text labels.
+
+
+### In the given scenario which of the test cases logs only a single entry
+
+_Read_ the keyword explaination carefully to understand the given scenario!
+
+## _Keyword:_ Log Many
+
+**Arguments**
+
+`* messages`
+
+**Documentation**
+
+```
+Logs the given messages as separate entries using the INFO level.
+
+Supports also logging list and dictionary variable items individually.
+```
+
+## _Variables_:
+
+The following Variables are available to each test case.
+
+```robot
+*** Variables ***
+@{user_names} Alice Bob Charlie
+&{name_id_pairs} Alice=001 Bob=002 Charlie=003
+```
+
+> LO-5.1.4.2 Recall that `@{list}` unpacks the values of a list variable when accessed
+
+- [ ] ```robot
+ *** Test Cases ***
+ Test A
+ Log Many Alice Bob Charlie
+ ```
+ > 'Logs three entries: "Alice", "Bob", and "Charlie".'
+- [x] ```robot
+ *** Test Cases ***
+ Test B
+ Log Many ${user_names}
+ ```
+ > This logs a single entry: the string representation of the list.
+ >
+ > It logs: `['Alice', 'Bob', 'Charlie']`
+- [ ] ```robot
+ *** Test Cases ***
+ Test C
+ Log Many @{user_names}
+ ```
+ > Logs three entries: `Alice`, `Bob`, and `Charlie`.
+- [ ] ```robot
+ *** Test Cases ***
+ Test D
+ Log Many @{name_id_pairs}
+ ```
+ > Logs three entries: `Alice`, `Bob`, and `Charlie`
+ > this is a rare use case but if dictionaries are unpacked as list, it is a list of its keys.
+
+### Which of the following statements describes the contents of built-in variable `${EXECDIR}`
+
+> LO-5.1.6 Recall that Robot Framework provides access to execution information via Built-In variables
+
+1. [ ] An absolute path to the directory where the current suite or resource file is located.
+ > Description for `${CURDIR}`
+1. [x] An absolute path to the directory where test execution was started from.
+1. [ ] An absolute path to the directory where output files are written.
+ > Description for `${OUTPUT_DIR}`.
+1. [ ] An absolute path to the system temporary directory.
+ > Description for `${TEMPDIR}`.
diff --git a/website/static/quizzes/test.md b/website/static/quizzes/test.md
new file mode 100644
index 0000000..69c887b
--- /dev/null
+++ b/website/static/quizzes/test.md
@@ -0,0 +1,227 @@
+---
+shuffleQuestions: false
+shuffleAnswers: false
+---
+
+### In the given scenario which of the test cases logs only a single entry
+
+The following variables are given.
+
+__Read__ the keyword explaination carefully to understand the given scenario!
+
+| Syntax | Description |
+| ----------- | ----------- |
+| Header | Title |
+| Paragraph | Text |
+
+Here's a sentence with a footnote.
+
+
+
+#### Log Many
+
+**Arguments**
+
+`* messages`
+
+**Documentation**
+
+Logs the given messages as separate entries using the INFO level.
+
+Supports also logging list and dictionary variable items individually.
+
+```robot
+*** Variables ***
+@{user_names} Alice Bob Charlie
+&{name_id_pairs} Alice=001 Bob=002 Charlie=003
+```
+
+> LO-5.1.4.2 Recall that `@{list}` unpacks the values of a list variable when accessed
+
+- [ ] ```robot
+ *** Test Cases ***
+ Test A
+ Log Many Alice Bob Charlie
+ ```
+ > 'Logs three entries: "Alice", "Bob", and "Charlie".'
+- [x] ```robot
+ *** Test Cases ***
+ Test B
+ Log Many ${user_names}
+ ```
+ > This logs the string representation of the list.
+ >
+ > It logs: `['Alice', 'Bob', 'Charlie']`
+- [ ] ```robot
+ *** Test Cases ***
+ Test C
+ Log Many @{user_names}
+ ```
+ > Logs three entries: `Alice`, `Bob`, and `Charlie`.
+- [ ] ```robot
+ *** Test Cases ***
+ Test D
+ Log Many @{name_id_pairs}
+ ```
+ > Logs three entries: `Alice`, `Bob`, and `Charlie`
+ > this is a rare use case but if dictionaries are unpacked as list, it is a list of its keys.
+
+
+
+### Question Title
+
+This is the **actual** Stem of the question
+
+> `Hint`? Yes, This is the *hint*.
+>
+> 1. A list entry
+> 2. another one
+>
+> ```robot
+> *** Settings ***
+> Resource imports.resource
+> Suite Setup Start Database
+> Suite Teardown Stop Database
+> ```
+
+1. [ ] Answer without rational
+1. [ ] WRONG Option
+ > This is the **wrong** rational
+
+1. [x] CORRECT Option
+ > This is the **Correct** rational
+ > This is the second line
+ >
+ > and the third
+
+
+
+### Put the [days](https://en.wikipedia.org/wiki/Day) in order!
+
+Quizdown also renders formulas:
+
+
+> Monday is the *first* day of the week.
+
+1. Monday
+2. Tuesday
+3. Wednesday
+4. Friday
+5. Saturday
+
+
+### LO-2.1.2 Recall the available sections in a suite file and their purpose. (K1)
+
+
+Which of the following file contents of a file named `Suite.robot` is recognized as a Robot Framework Suite File?
+
+
+> 1. **Correct** because `*** Tests ***` is the new stuff.
+> 2. wrong because thats not correct.
+> 3. wrong becuase that is also wrong.
+>
+> ```robot
+> *** Settings ***
+> Resource imports.resource
+>
+> *** Variables ***
+> ${DEFAULT_DB} localhost
+>
+> *** Keywords ***
+> Connect To Database
+> [Arguments] ${db_name} ${db_user} ${db_password}
+> Set Credentials ${db_user} ${db_password}
+> Set DB Name ${db_name}
+> Connect
+>
+> *** Tests ***
+> Test DataBase Connection
+> Connect To Database ${DEFAULT_DB} user password
+> Check Connection
+> ```
+
+
+
+- [x] ```robot
+ *** Settings ***
+ Resource imports.resource
+
+ *** Variables ***
+ ${DEFAULT_DB} localhost
+
+ *** Keywords ***
+ Connect To Database
+ [Arguments] ${db_name} ${db_user} ${db_password}
+ Set Credentials ${db_user} ${db_password}
+ Set DB Name ${db_name}
+ Connect
+
+ *** Tests ***
+ Test DataBase Connection
+ Connect To Database ${DEFAULT_DB} user password
+ Check Connection
+ ```
+ > `*** Tests ***` is not the correct section header. `*** Test Cases ***` would be valid.
+
+- [ ] ```robot
+ *** Settings ***
+ Resource imports.resource
+
+ *** Tasks ***
+ Start Database
+ Start Database Server
+ Connect To Database localhost user password
+ Check Connection
+ ```
+ > This suite has one valid task!
+
+- [ ] ```robot
+ *** Settings ***
+ Resource imports.resource
+
+ *** Keywords ***
+ Connect To Database
+ [Arguments] ${db_name} ${db_user} ${db_password}
+ Set Credentials ${db_user} ${db_password}
+ Set DB Name ${db_name}
+ Connect
+
+ *** Variables ***
+ ${DEFAULT_DB} localhost
+ ```
+ > No excutable task or test case found. That is a resource file.
+
+- [ ] ```robot
+ *** Settings ***
+ Resource imports.resource
+ Suite Setup Start Database
+ Suite Teardown Stop Database
+ ```
+ > ```robot
+ > *** Settings ***
+ > Alone is not valid
+ > ```
+ >
+ > Nope!
+
+### What's the capital of Germany?
+
+> It's the _largest_ city in Germany...
+
+- [x] Berlin
+ > This is the *correct* answer.
+- [ ] Frankfurt
+ > **False** : That is the banking capital
+- [ ] Paris
+ > Paris is the capital of France.
+- [ ] Cologne
+ > Wanted to be that but Bonn became the capital
+
+### Select your superpower!
+
+There exist many superpowers in the world but one of them is better than everything else. Do you find it?
+
+1. [ ] Enhanced Strength
+1. [ ] Levitation
+1. [x] Shapeshifting
+ > Correct. This the best superpower!
\ No newline at end of file