header
Youtube--Search

Tag:
Edit edit   Starstar

Program Information

Name: Youtube--Search
Domain: web service and application
Functionality: Youtube is a video-sharing website. The "Search" service returns a collection of search results that match the query parameters specified in the API request. More details in https://developers.google.com/youtube/v3/docs/search/list
Input: title: the title of the video uploaded, id: the id of the video uploaded, video: the video uploaded, descripcion: the descripcion of the video, privacy status: the privacy status of the video
Output: title: the output of the video uploaded title, id: the output of the video uploaded id, video: the output of the video, descripcion: the output descripcion of the video, privacy status: the output privacy status of the video

Reference

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

MR Information

MR1------

Description:
Property: Perform a search for channels. Then repeat the search including the filter channelType=any (default value). The result set of both searches should be equal.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter channelType=any (default value).
Follow-up output: $Result'$
Input relation: the second search is the first search with a filter channelType=any(default value)     
Output relation: $Result = Result'$
Pattern: MROP:equality, MRP:symmetry, add noise, MRIP:perturbation

MR2------

Description:
Property: Perform a search. Then repeat the search setting the parameter maxResults (number of results per page). The result set of both searches should be equal.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search setting the parameter maxResults (number of results per page).
Follow-up output: $Result'$
Input relation: the second search is the first search setting the parameter maxResults (number of results per page).     
Output relation: $Result = Result'$
Pattern: MROP:equality, MRP:symmetry, add noise, MRIP:perturbation

MR3------

Description:
Property: Perform a search for videos. Then repeat the search including the filter videoDuration=any (default value). The result set of both searches should be equal.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter videoDuration=any (default value).
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter videoDuration=any (default value).     
Output relation: $Result = Result'$
Pattern: MROP:equality, MRP:symmetry, add noise, MRIP:perturbation

MR4------

Description:
Property: Perform a search for videos. Then repeat the search including the filter videoType=any (default value). The result set of both searches should be equal.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter videoType=any (default value).
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter videoType=any (default value).     
Output relation: $Result = Result'$
Pattern: MROP:equality, MRP:symmetry, add noise, MRIP:perturbation

MR5------

Description:
Property: Perform a search. Then repeat the search including the filter order=date. The result set of both searches should be equivalent, i.e. they should have the same items regardless their order.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including including the filter order=date.
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter order=date.     
Output relation: $Result \equiv Result'$
Pattern: MROP:equivalent, MRP:symmetry, add noise, MRIP:perturbation

MR6------

Description:
Property: Perform a search. Then repeat the search including the filter order=title. The result set of both searches should be equivalent, i.e. they should have the same items regardless their order.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including including the filter order=title.
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter order=title.     
Output relation: $Result \equiv Result'$
Pattern: MROP:equivalent, MRP:symmetry, add noise, MRIP:perturbation

MR7------

Description:
Property: Perform a search. Then repeat the search including the filter order=viewCount. The result set of both searches should be equivalent, i.e. they should have the same items regardless their order.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including including the filter order=viewCount.
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter order=viewCount.     
Output relation: $Result \equiv Result'$
Pattern: MROP:equivalent, MRP:symmetry, add noise, MRIP:perturbation

MR8------

Description:
Property: Perform a search. Then repeat the search including the filter order=rating. The result set of both searches should be equivalent, i.e. they should have the same items regardless their order.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including including the filter order=rating.
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter order=rating.     
Output relation: $Result \equiv Result'$
Pattern: MROP:equivalent, MRP:symmetry, add noise, MRIP:perturbation

MR9------

Description:
Property: Perform a search for videos. Then repeat the search including the filter eventType=completed to include completed broadcasts only. The videos returned in the second search should be a subset of the videos returned in the first search.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter eventType=completed to include completed broadcasts only
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter eventType=completed to include completed broadcasts only     
Output relation: $Result \subset Result'$
Pattern: MROP:subset, MRP:asymmetry, MRIP:

MR10------

Description:
Property: Perform a search for videos within n kilometers from a city c (parameters location and locationRadius). Then repeat the search widening the distance to m, with m>n. Finally, repeat the search widening the distance to k, with k>m>n. The videos found in the first search (within n km from c) should be a subset of those found in the second search (within m km from c), and those in turn should be a subset of the videos found in the third search (within k km from c). For example, perform a search within 10 kilometers, then, the second invocaiton is a search within 20 kilometers, the third one is a search within 30 kilometer. The result of first invocaiton is a subset of the second, then the second invocaiton is a subset of the third invocaiton
Source input: a search for videos within n kilometers from a city c
Source output: $R1$
Follow-up input: a search for videos within m kilometers from a city c(m>n), a search for videos within k kilometers from a city c(k>m>n),
Follow-up output: $R2$,$R3$
Input relation: k>m>n     
Output relation: $R1 \subset R2 \subset R3$
Pattern: MROP:subset, MRP:asymmetry, MRIP:

MR11------

Description:
Property: Perform a search. Then repeat the search including the filter publishedBefore=d to return those resources created before the date d. The items returned in the second search should be a subset of the items returned in the first search.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter publishedBefore=d to return those resources created before the date d
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter publishedBefore=d to return those resources created before the date d     
Output relation: $Result \subset Result'$
Pattern: MROP:subset, MRP:asymmetry, MRIP:

MR12------

Description:
Property: Perform a search. Then repeat the search including the filter regionCode=c to return search results for the specified country code c. The items returned in the second search should be a subset of the items returned in the first search.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter regionCode=c to return search results for the specified country code c.
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter regionCode=c to return search results for the specified country code c.     
Output relation: $Result \subset Result'$
Pattern: MROP:subset, MRP:asymmetry, MRIP:

MR13------

Description:
Property: Perform a search for videos. Then repeat the search including the filter videoEmbeddable=true to return embeddable videos only. The videos returned in the second search should be a subset of the videos returned in the first search.
Source input: a search for channels
Source output: $Result$
Follow-up input: the same search including the filter videoEmbeddable=true to return embeddable videos only.
Follow-up output: $Result'$
Input relation: the second search is the first search including the filter videoEmbeddable=true to return embeddable videos only.     
Output relation: $Result \subset Result'$
Pattern: MROP:subset, MRP:asymmetry, MRIP:

MR14------

Description:
Property: Perform a search for videos. Then repeat the search including the filter videotype=episode to return episodes only. Finally, repeat the search including the filter videotype=movie to return movies only. The union of the videos returned by the second and third search should be a subset of those found in the first search.
Source input: a search for channels
Source output: $R1$
Follow-up input: the second invocation repeat the same search including the filter videotype=episode to return episodes only. the third invocation repeat the search including the filter videotype=movie to return movies only.
Follow-up output: $R2,R3$
Input relation: the second invocation repeat the same search including the filter videotype=episode to return episodes only. the third invocation repeat the search including the filter videotype=movie to return movies only.     
Output relation: $R2 \subset R1$, $R3 \subset R1$
Pattern: MROP:subset, MRP:asymmetry, MRIP:

MR15------

Description:
Property: Perform a search including the filter publishedBefore=d to return those resources created before the date d. Then repeat the search exchanging the filter by publishedAfter=d to return those resources created after d. The result sets of both searches should be disjoint.
Source input: Perform a search including the filter publishedBefore=d to return those resources created before the date d.
Source output: $Result$
Follow-up input: the same search including the filter videoEmbeddable=true to return embeddable videos only.
Follow-up output: $Result'$
Input relation: repeat the search exchanging the filter by publishedAfter=d to return those resources created after d     
Output relation: The result sets of both searches should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR16------

Description:
Property: Perform a search for videos (type=video). Next, perform a search for channels (type=channel) with the same query as before. Finally, perform a search for playlists (type=playlist) with the same query as in the previous searches. The results sets of the three searches should be disjoint.
Source input: Perform a search for videos (type=video).
Source output: $R1$
Follow-up input: Perform a search for channels (type=channel). Perform a search for playlists (type=playlists).
Follow-up output: $R2, R3$
Input relation: the three searhes are disjoint.     
Output relation: The result sets of both searches should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR17------

Description:
Property: Perform a search for 2D videos (videoDimension=2d). Then perform another search for 3D videos (videoDimension=3d) with the same query as before. The result sets of both searches should be disjoint.
Source input: Perform a search for 2D videos (videoDimension=2d).
Source output: $R1$
Follow-up input: perform another search for 3D videos (videoDimension=3d) with the same query as before
Follow-up output: $R2, R3$
Input relation: the two searhes are disjoint.     
Output relation: The result sets of both searches should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR18------

Description:
Property: Perform a search for short videos (videoDuration=short). Next, perform a search medium duration videos (videoDuration=medium) with the same query as before. Finally, perform a search for long videos (videoDuration=long) with the same query as in the previous searches. The results sets of the three searches should be disjoint.
Source input: Perform a search for short videos (videoDuration=short).
Source output: $R1$
Follow-up input: perform a search medium duration videos (videoDuration=medium) with the same query as before, perform a search for long videos (videoDuration=long) with the same query as in the previous searches.
Follow-up output: $R2, R3$
Input relation:     
Output relation: The result sets of both searches should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR19------

Description:
Property: Perform a search for videos including the filter videoLicense=youtube to return those videos with YouTube license. Then repeat the search exchanging the filter by videoLicense=creativeCommon to return those videos with a Creative Commons license. The result sets of both searches should be disjoint.
Source input: Perform a search for videos including the filter videoLicense=youtube to return those videos with YouTube license.
Source output: $R1$
Follow-up input: repeat the search exchanging the filter by videoLicense=creativeCommon to return those videos with a Creative Commons license.
Follow-up output: $R2$
Input relation: the first search with the filter videoLicense=youtube, whild the second search with the filter videoLicense=creativeCommon.     
Output relation: The result sets of both searches should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR20------

Description:
Property: Perform a search for videos including the filter videotype=episode to return episodes only. Then, repeat the search including the filter videotype=movie to return movies only. The result sets of both searches should be disjoint.
Source input: Perform a search for videos including the filter videotype=episode to return episodes only.
Source output: $R1$
Follow-up input: repeat the search including the filter videotype=movie to return movies only.
Follow-up output: $R2$
Input relation: the first search with the filter videotype=episode to return episodes only, whild the second search with the filter videotype=movie to return movies only.     
Output relation: The result sets of both searches should be disjoint.
Pattern: MROP:disjoint, MRP:asymmetry, MRIP:

MR21------

Description:
Property: Perform a search. Then perform three additional searches with the same query as before restricting the search to videos (type=video), channels (type=channel) and playlists (type=playlist) respectively. The union of the results returned in the three last searches should contain the same items as the result set of the first search.
Source input: Perform a search.
Source output: $R1$
Follow-up input: Then perform three additional searches with the same query as before restricting the search to videos (type=video), channels (type=channel) and playlists (type=playlist) respectively.
Follow-up output: $R2,R3,R4$
Input relation:     
Output relation: $R1$ = $R2 \cup R3 \cup R4$
Pattern: MROP:complete, MRP:symmetry, MRIP:

MR22------

Description:
Property: Perform a search for videos. Then perform two additional searches with the same query as before restricting the search to videos with captions (videoCaption=closedCaption), and videos without captions (videoCaption=closedCaption) respectively. The union of the results returned in the two last searches should contain the same items as the result set of the first search.
Source input: Perform a search for videos.
Source output: $R1$
Follow-up input: perform two additional searches with the same query as before restricting the search to videos with captions (videoCaption=closedCaption), and videos without captions (videoCaption=closedCaption).
Follow-up output: $R2,R3$
Input relation:     
Output relation: $R1$ = $R2 \cup R3$
Pattern: MROP:complete, MRP:symmetry, MRIP:

MR23------

Description:
Property: Perform a search for videos. Then perform two additional searches with the same query as before restricting the search to standard definition videos (videoDefinition=standard), and high definition videos (videoDefinition=high) respectively. The union of the results returned in the two last searches should contain the same items as the result set of the first search.
Source input: Perform a search for videos.
Source output: $R1$
Follow-up input: perform two additional searches with the same query as before restricting the search to standard definition videos (videoDefinition=standard), and high definition videos (videoDefinition=high) respectively.
Follow-up output: $R2,R3$
Input relation:     
Output relation: $R1$ = $R2 \cup R3$
Pattern: MROP:complete, MRP:symmetry, MRIP:

MR24------

Description:
Property: Perform a search for videos. Then perform two additional searches with the same query as before restricting the search to 2D videos (videoDimension=2d), and 3D videos (videoDimension=high) respectively. The union of the results returned in the two last searches should contain the same items as the result set of the first search.
Source input: Perform a search for videos.
Source output: $R1$
Follow-up input: perform two additional searches with the same query as before restricting the search to 2D videos (videoDimension=2d), and 3D videos (videoDimension=high) respectively.
Follow-up output: $R2,R3$
Input relation:     
Output relation: $R1$ = $R2 \cup R3$
Pattern: MROP:complete, MRP:symmetry, MRIP:

MR25------

Description:
Property: Perform a search. Then perform three additional searches with the same query as before restricting the search to short videos (videoDuration=short), medium duration videos (videoDuration=medium) and long videos (videoDuration=long) respectively. The union of the results returned in the three last searches should contain the same items as the result set of the first search.
Source input: Perform a search for videos.
Source output: $R1$
Follow-up input: perform three additional searches with the same query as before restricting the search to short videos (videoDuration=short), medium duration videos (videoDuration=medium) and long videos (videoDuration=long) respectively.
Follow-up output: $R2,R3,R4$
Input relation:     
Output relation: $R1$ = $R2 \cup R3 \cup R4$
Pattern: MROP:complete, MRP:symmetry, MRIP:

MR26------

Description:
Property: Perform a search for videos. Then perform two additional searches with the same query as before restricting the search to videos with YouTube license (videoLicense=youtube), and videos with Creative Commons license (videoLicense=creativeCommon) respectively. The union of the results returned in the two last searches should contain the same items as the result set of the first search.
Source input: Perform a search for videos.
Source output: $R1$
Follow-up input: perform two additional searches with the same query as before restricting the search to videos with YouTube license (videoLicense=youtube), and videos with Creative Commons license (videoLicense=creativeCommon) respectively.
Follow-up output: $R2,R3$
Input relation:     
Output relation: $R1$ = $R2 \cup R3$
Pattern: MROP:complete, MRP:symmetry, MRIP:
Insert title here