Skip to content

(Indexed) cmi5 Conformance Testing Requirements Draft

Bill McDonald edited this page Jun 30, 2017 · 21 revisions

Draft as of June 30, 2017

Structure

Prerequisite xAPI Test (LMS/LRS)

Testing Scenarios (AU and LMS)

Test Scenario #1 – xxx

  • Prerequisites
  • Spec Requirements
  • Procedure/Steps
    • When this is done, this happens, this is verified

Testing Requirements List (AU and LMS)

  • Indexed
  • Referenced by test scenarios
  • External References to xAPI Testing Document

Testing Requirements Document

1.0 Overview

1.1 Scope

2.0 References

3.0 Definitions

  • cmi5_3.0_1 Internationalized Resource Identifier (IRI): All id's must conform to RFC 3987

  • cmi5_3.0_2 Learning Management System (LMS): Must be xAPI conformant (must pass ADL LRS conformance tests.)

  • cmi5_3.0_3 Learning Management System (LMS): LRS must be integrated with LRS (comment – may be indirectly tested)

3.1 Abbreviations and Acronyms

4.0 Conformance

4.1 Assignable Unit (AU)

4.2 Learning Management Systems (LMS)

  • cmi5_4.2_1 Learning Management System (LMS): The LMS MUST (have access to) be able to retrieve all Resource data (from the Statement API, etc., including attachments and extensions) about another distinct user across multiple sessions for that user.

Reference the following Requirements:

4.3 Optional JSON Values

4.4 Courses

5.0 Conceptual Model: Informative

6.0 LMS Requirements

6.1 Course Structures

  • cmi5_6.1_1 Learning Management System (LMS): The LMS MUST be able to import and process course structures containing more than 1000 AU's.

6.2 LMS State API Requirements

6.3 LMS Statement API Requirements

  • cmi5_6.3_1 The LMS MUST NOT provide permissions/credentials which allow the AU to issue voiding Statements.

  • cmi5_6.3_2 The LMS MUST Void statements that are NOT rejected AND conflict with the "Statement API" requirements as defined in Section 9

7.0 AU Requirements

7.1 AU Statement API Requirements

7.1.1 First Statement API Call

  • cmi5_7.1.1_1 Assignable Unit (AU): The AU MUST issue an initialized statement before issuing any other statements in a session.

7.1.2 Last Statement Call

  • cmi5_7.1.2_1 Assignable Unit (AU): The AU MUST issue a Terminated statement as the last statement in a session.

7.1.3 Types of Statements

  • cmi5_7.1.3_1 If "cmi5 allowed" statements are posted by the AU, they MUST occur between cmi5 "Initialized" and "Terminated" statements in the same session.

  • cmi5_7.1.3_2 (Place holder) "cmi5 allowed" statements are not considered in cmi5 defined session management and completion rules.

8.0 Content Launch Mechanisms

8.1 Launch Method

  • cmi5_8.1_1 Learning Management System (LMS): The AU MUST be launched by the LMS using either a new browser window or redirecting the existing browser window to a new location.

  • cmi5_8.1_2 Learning Management System (LMS): The AU MUST be launched by the LMS using the method specified in the course structure metadata. (new window, redirect existing window, or any window)

  • cmi5_8.1_3 Learning Management System (LMS): The AU MUST be launched by the LMS with a launch URL containing query string parameters (endpoint, fetch, actor, registration, and activityId).

  • cmi5_8.1_4 endpoint - Learning Management System (LMS): The AU MUST be launched by the LMS with a launch URL containing a "endpoint" name/value pair in the query string containing the endpoint to the LRS.

  • cmi5_8.1_5 endpoint - Assignable Unit (AU): The AU MUST get the endpoint value from the query string and use the endpoint value as the Base Endpoint for xAPI requests.

  • cmi5_8.1_6 fetch - Learning Management System (LMS): the LMS MUST place the fetch name/value pair in the query string.

  • cmi5_8.1_7 fetch - Assignable Unit (AU): The AU MUST retrieve the fetch value from the query string.

  • cmi5_8.1_8 actor - Learning Management System (LMS): The LMS MUST populate the actor with a valid value.

  • cmi5_8.1_9 actor - Assignable Unit (AU): The AU MUST get the actor value from the query string. The AU MUST use the actor value in API calls that require an "actor" property when sending xAPI requests.

  • cmi5_8.1_10 registration - Learning Management System (LMS): The LMS MUST place a UUID value for registration id in the query string.

  • cmi5_8.1_11 registration - Assignable Unit (AU): The AU MUST use the registration id provided query string in API calls that require a "registration id" when sending xAPI requests.

  • cmi5_8.1_12 activityId- Learning Management System (LMS): The LMS MUST generate an activityId for the AU and place its value in the query string.

  • cmi5_8.1_13 activityId- Learning Management System (LMS): The activityId generated MUST NOT match the AU's id (publisher id) from the course structure

  • cmi5_8.1_14 activityId- Learning Management System (LMS): The LMS MUST use the same generated activityId on all subsequent launches (for the same AU) within the same registration. The LMS SHOULD use the same generated activityId (for the same AU) for all registrations.

  • cmi5_8.1_13 activityId- Assignable Unit (AU): The AU MUST get the activityId value from the query string and use the activityId value in API calls that require an "activity id" when issuing cmi5 defined statements.

8.2 Authorization Token Fetch URL

8.2.1 Overview

  • cmi5_8.2.1_1 Learning Management System (LMS): The LMS MUST include a _ fetch _ name/value pair in the launch URL.

  • cmi5_8.2.1_2 Learning Management System (LMS): The _ fetch _ URL MUST accept POST requests and MUST NOT accept GET requests.

  • cmi5_8.2.1_3 Assignable Unit (AU): The AU MUST issue only one request to the _ fetch _ URL.

  • cmi5_8.2.1_4 Assignable Unit (AU): The AU MUST NOT issue any type of HTTP requests other than POST to the _ fetch _ URL.

  • cmi5_8.2.1_5 Learning Management System (LMS): The LMS must return an auth token in a the JSON structure specified from a valid fetch URL call.

8.2.2 Definition: auth-token

  • cmi5_8.2.2_1 Learning Management System (LMS): The LMS MUST return an HTTP status code of "200" for a valid (POST) request to the fetch URL.

  • cmi5_8.2.2_2 Assignable Unit (AU): The AU MUST place the authorization token returned from the fetch URL in the Authorization headers of all HTTP requests made to the LRS endpoint.

8.2.3 Errors

8.2.3.1 Duplicate call to fetch URL

8.2.3.2 Error Values

8.3 Other Launch Environments

9.0 xAPI Statement Data Model

9.1 Statement ID

9.2 Actor

9.3 Verbs

9.3.1 Launched

9.3.2 Initialized

9.3.3 Completed

9.3.4 Passed

9.3.5 Failed

9.3.6 Abandoned

9.3.7 Waived

9.3.8 Terminated

9.3.9 Satisfied

9.4 Object

9.5 Result

9.5.1 Score

9.5.2 Success

9.5.3 Completion

9.5.4 Duration

9.5.4.1 AU statements that include duration

9.5.4.2 LMS statements that include duration

9.5.5 Extensions

9.5.5.1 progress

9.5.5.2 reason

9.6 Context

9.6.1 Registration

9.6.2 ContextActivities

9.6.2.1 cmi5 Category Activity

9.6.2.2 moveOn Category Activity

9.6.2.3 Publisher ID Grouping Activity

9.6.3 Extensions

9.6.3.1 session ID

9.6.3.2 masteryScore

9.6.3.3 launchMode

9.6.3.4 launchURL

9.6.3.5 publisherId

9.6.3.6 moveOn

9.6.3.7 launchParameters

9.7 Timestamp

10.0 xAPI State Data Model

11.0 xAPI Agent Profile Data Model

11.1 languagePreference

11.2 audioPreference

12.0 xAPI Activity Profile Data Model

13.0 Course Structure Data Requirements

13.1 Course Structure Data Model

13.1.1 Course Level Metadata

13.1.2 Block Metadata

13.1.3 Objective Metadata

13.1.4 AU Metadata

13.1.5 Vendor Specific Metadata (Extensions)

13.2 Course Structure XSD

14.0 Course Package

14.1 Course Packages in ZIP Format

14.2 Course Structure XML Without a ZIP File Package

Clone this wiki locally