header
Spotify--Reorder a playlist's tracks

Tag:
Edit edit   Starstar

Program Information

Name: Spotify--Reorder a playlist's tracks
Domain: web service and application
Functionality: Spotify is a music platform where users can browse by parameters such as artist, album, or genre, and can create, edit, and share playlists. The "Reorder a playlist's tracks" service reorders a track or a group of tracks in a playlist.
Input: $t$: a track
Output: $p$: a playlist

Reference

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

MR Information

MR1------

Description:
Property: Move n tracks (range_length=n) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist. Next, repeat the same operation. The output playlist of both reorderings should be equal. For example, move 10 tracks from the beginning to the end of the track in the playlist, then repeat this operation. The output playlist should be equal.
Source input: Move n tracks (range_length=n) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist
Source output: $p$
Follow-up input: Move n tracks (range_length=n) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist
Follow-up output: $p'$
Input relation: Move n tracks (range_length=n) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist. Next, repeat the same operation.     
Output relation: The output playlist of both reorderings should be equal.
Pattern: MROP:equality, MRP:symmetry, MRIP:change direccion

MR2------

Description:
Property: Move n/2 tracks (range_length=n/2) from the position 0 (range_start=0) to the last position (insert_before=n), where n is an even number equal to the number of tracks in the playlist. Next, repeat the same operation twice. The output playlist of the first and the last reorderings should be equal.
Source input: the original tracks
Source output: $p$
Follow-up input: Move n/2 tracks (range_length=n/2) from the position 0 (range_start=0) to the last position (insert_before=n), where n is an even number equal to the number of tracks in the playlist. Next, repeat the same operation twice.
Follow-up output: $p'$
Input relation: Move n/2 tracks (range_length=n/2) from the position 0 (range_start=0) to the last position (insert_before=n), where n is an even number equal to the number of tracks in the playlist. Next, repeat the same operation twice.     
Output relation: $p$ = $p'$
Pattern: MROP:equality, MRP:symmetry, MRIP:perturbation

MR3------

Description:
Property: Move one track (range_length=1) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist. Next, repeat the same operation n times. The output playlist of the first and the last reorderings should be equal.
Source input: the original tracks
Source output: $p$
Follow-up input: Move one track (range_length=1) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist. Next, repeat the same operation n times.
Follow-up output: $p'$
Input relation: Move one track (range_length=1) from the position 0 (range_start=0) to the last position (insert_before=n), where n is the number of tracks in the playlist. Next, repeat the same operation n times.     
Output relation: $p$ = $p'$
Pattern: MROP:equality, MRP:symmetry, MRIP:perturbation

MR4------

Description:
Property: Move the first track(range_length=1) from the position 0(range_start=0) to the las position (insert_before=n), where n is the number of tracks in the playlist. Next, move the last track (range_length=1) from the position n-1 (range_start=n-1) to position 0 (insert_before=1). Finally, repeat the initial operation moving the first track to the last position. The output playlist of the first and the last reorderings should be equal.
Source input:
Source output: $p$
Follow-up input:
Follow-up output: $p'$
Input relation:     
Output relation: $p$ = $p'$
Pattern: MROP:equality, MRP:symmetry, MRIP:perturbation
Insert title here