header
Memes Gallery API--Get memes

Tag:
Edit edit   Starstar

Program Information

Name: Memes Gallery API--Get memes
Domain: web service and application
Functionality: This API manages a set of memes(images that have text overlaid on them) whose weirdness is rated, including a link to the meme's image. The "get memes" service returns a collection of memes according to different criteria.
Input: id: An unique identifier of the meme (Integer) pepe: A complex structure that represents the meme. (Object). url: Link to the meme's image. (String) rarity: Index of weirdness of the meme. (Double) date: Creation date of the meme. (String)
Output: id: An unique identifier of the meme (Integer) pepe: A complex structure that represents the meme. (Object). url: Link to the meme's image. (String) rarity: Index of weirdness of the meme. (Double) date: Creation date of the meme. (String)

Reference

     Metamorphic Testing of RESTful Web APIs
    https://dx.doi.org/10.1109/TSE.2017.2764464

MR Information

MR1------

Description:
Property: Get all the memes. Then, get the memes with a minimum weirdness of n. Finally, get the memes with a maximum weirdness of n+1. The union of the outputs of the second and third invocation, should be equal to the output of the first invocation. For example, the first invocaiton is "to get all memes". The second invocaiton is "to get the memes with a minimum weirdness of 10. The third invocaiton is "to get the memes with a maximum weirdness of 11". The union of the outputs of the second and third invocation, should be equal to the output of the first invocation.
Source input: criterion: get all memes
Source output: a collection of memes $M_{s}$
Follow-up input: Get the memes with a minimum weirdness of $n$. Get the memes with a maximum weirdness of $n+1$.
Follow-up output: $M_{f}^1$,$M_{f}^2$
Input relation: Get the memes with a minimum weirdness of $n$. Get the memes with a maximum weirdness of $n+1$.     
Output relation: $M_{s} \equiv M_{f}^1 + M_{f}^2$
Pattern: MROP:equality, MRP:symmetry, MRIP:

MR2------

Description:
Property: Get all the memes. Get the memes with a maximum weirdness of n. Get the memes with a minimum weirdness of n+1. The outputs of the invocations should be disjoint.
Source input: Get the memes with a minimum weirdness of $n$.
Source output: a collection of memes $M_{s}$
Follow-up input: Get the memes with a maximum weirdness of $n+1$.
Follow-up output: $M_{f}$
Input relation: Get the memes with a minimum weirdness of $n$. Get the memes with a maximum weirdness of $n+1$.     
Output relation: The outputs of the invocations should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR3------

Description:
Property: Get the memes in ascending order of weirdness. Get the memes in descending order of weirdness. The outputs of the invocations should be equivalent (contain the same elements not necessarily in the same order).
Source input: Get the memes in ascending order of weirdness. $ascending(m)$
Source output: a collection of memes $M_{s}$
Follow-up input: Get the memes in descending order of weirdness. $descending(m)$
Follow-up output: $M_{f}$
Input relation: Get the memes in ascending order of weirdness. $ascending(m)$ Get the memes in descending order of weirdness. $descending(m)$     
Output relation: The outputs of the invocations should be equivalent.
Pattern: MROP:equivalent, MRP:symmetry, MRIP:change direccion

MR4------

Description:
Property: Get the memes in ascending order of weirdness. Get the memes in descending order of weirdness. The reverse of the output of the second invocation should be equal to the output of the first invocation.
Source input: Get the memes in ascending order of weirdness. $ascending(m)$
Source output: a collection of memes $M_{s}$
Follow-up input: Get the memes in descending order of weirdness. $descending(m)$
Follow-up output: $M_{f}$
Input relation: Get the memes in ascending order of weirdness. $ascending(m)$ Get the memes in descending order of weirdness. $descending(m)$     
Output relation: The reverse of the output of the second invocation should be equal to the output of the first invocation, $M_{s} \equiv M_{f}$
Pattern: MROP:equality, MRP:symmetry, MRIP:change direccion
Insert title here