- demo page
- demo experiments
- jsfiddle demo
- able repo
- experiment cookbook
- test url
- open a javascript console, type
able
- open a javascript console, type
- remotely control application parameters via experiments
- manage the lifecycle of experiments, including releasing results
- provide adaquate data for analysing experiments without scary tracking
- allow concurrent experiments without conflicts
- provide as consistent of a user experience as possible
Also known as "test subject", is the object or person we'd like to perform an experiment on. An end user is the most common subject. User and subject can often be used interchangably.
Experiments often require specific information about a subject in order to make a decision about how to group them. For example a particular experiment that tests button text variations may only be applicable to subjects with the en-CA locale.
Subject attributes are the input to experiments provided by the application.
Experiments declare which attributes are important to them with the subjectAttributes
array of strings.
- userId
- userAgent
- locale
- ipAddress
- sessionId
- favoriteAdventureTimeCharacter
These are the entities an experiment may set a value for. Applications usually just call them options or configuration parameters.
Independent variables are the output from an experiment provided to the application.
Experiments declare what variables they affect with the independentVariables
array of strings.
Experiments may set specific criteria on the subjects that are allowed to participate. A subject that meets those criteria is eligible.
Multiple experiments may affect the same independent variables. When this occurs those experiments are in conflict. Experiments that conflict must not involve the same subjects.
The values of independent variables when they are not set by any experiments.
The group of subjects participating in an experiment that are receiving the defaults for those independent variables.
The group of subjects participating in an experiment that are receiving non-default independent variables.
http://jsfiddle.net/zkr833g4/2/