• No results found

An Automated Testing Framework For Smart TVapps Based on Model Separation

N/A
N/A
Protected

Academic year: 2021

Share "An Automated Testing Framework For Smart TVapps Based on Model Separation"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

http://www.diva-portal.org

Postprint

This is the accepted version of a paper presented at 3rd International Workshop on User

Interface Test Automation and Testing Techniques for Event Based Software.

Citation for the original published paper:

Ahmed, B S. (2020)

An Automated Testing Framework For Smart TVapps Based on Model Separation

In: IEEE International Conference on Software Testing, Verification and Validation

Workshops (ICSTW) (pp. 62-73). IEEE Computer Society

https://doi.org/10.1109/ICSTW50294.2020.00026

N.B. When citing this work, cite the original published paper.

Permanent link to this version:

(2)

An Automated Testing Framework For Smart TV

apps Based on Model Separation

Bestoun S. Ahmed

Dept. Mathematics & Computer Scie. Karlstad University

Karlstad, Sweden bestoun@kau.se

Angelo Gargantini

Dept. Manage. Info. & Production Eng. University of Bergamo

Bergamo, Italy angelo.gargantini@unibg.it

Miroslav Bures

Dept. Computer Scie. Czech Technical University

Prague, Czech Republic buresm3@fel.cvut.cz

Abstract—Smart TV application (app) is a new technological software app that can deal with smart TV devices to add more functionality and features. Despite its importance nowadays, far too little attention has been paid to present a systematic approach to test this kind of app so far. In this paper, we present a systematic model-based testing approach for smart TV app. We used our new notion of model separation to use sub-models based on the user preference instead of the exhaustive testing to generate the test cases. Based on the constructed model, we generated a set of test cases to assess the selected paths to the chosen destination in the app. We also defined new mutation operators for smart TV app to assess our testing approach. The evaluation results showed that our approach can generate more comprehensive models of smart TV apps with less time as compared to manual exploratory testing. The results also showed that our approach can generate effective test cases in term of fault detection.

Index Terms—Automated testing framework, Software testing, Smart TV apps, Software quality assurance

I. INTRODUCTION

Smart TV application (app) is a software designed to run on smart TV devices. In addition to the television service, smart TVs add many functionalities and the ability to connect to the Internet. Nowadays, smart TVs are going to dominate the television market, and the number of connected TVs is growing exponentially. This growth is accompanied by an increase in the number of consumers and the use of smart TV apps that drive these devices.

In general, software apps testing of smart devices can be considered as an extension and evolution of testing practices from the traditional user interfaces (UI) like the graphical user interface (GUI) of desktop and web apps. The testing practices for these GUIs have been studied extensively in the last decade, and as a result, many sophisticated methods, algorithms, and tools have been developed. Banerjee et al. [1] studied more than 230 articles published between 1991-2013 in the area of GUI testing and Li et al. [2] surveyed the literature in two decades of web app testing. As for smart devices, Zein et al. [3] have studied the mobile apps testing area through 79 articles published between 2005-2015. It is no-ticeable that in the three types of apps (i.e., desktop, web, and mobile apps), model-based testing is the common approach among the leading testing technologies in the literature. We also noticed a lot of overlap among the model-based testing

approaches of GUI. For example, the MobiGUITAR strategy [4] for systematic mobile app testing has been inspired by the GUITAR strategy [5] for desktop GUI testing. Here, the model is constructed using the user interaction to create the interaction events; then the model used to generate the test cases. The finite-state machine (FSM) and directed graphs were used widely in the literature as a model abstraction to represent the state and events on the GUI. Despite these common aspects of the testing, due to the different interaction mode, it is impossible to have a comprehensive strategy for all types of apps. In other words, it is not possible to use the same framework to test mobile, web, and desktop apps.

With the increasing importance and use of smart TV apps, there is an urgent need to have a testing framework for these apps. It is becoming increasingly difficult to ignore the testing of smart TV apps and assuming that they have the same testing procedure that we usually use for mobile apps. While there are many analogies between the two kinds of apps, still there is a great deployment effort estimated to migrate from mobile to smart TV app testing due to the different mode of the user interaction. Although many strategies can be found for mobile apps testing, so far, there has been no discussion about smart TV apps. In fact, far too little attention has been paid to test this kind of app and so far, we cannot find a systematic framework to test it. An essential contribution of this paper is to identify those analogies and differences between the testing procedure for these two types of apps. Recently, we have addressed the key ingredients and challenges for smart TV apps testing [6]. We also proposed some preliminary solutions for those problems.

In this paper, we aim to establish the research foundation of smart TV app testing. To achieve this aim, we developed a black-box model-based testing framework called EvoCreeper to test smart TV apps. Our approach is to explore the GUI of the smart TV app by examining each element and monitoring its reaction. The testing framework takes the TV app to automatically create a complete model by examining the GUI widgets and the transitions among them; then, it generates the test cases based on this model. The framework also supports test case execution and verification. While we developed new algorithms for this testing framework, still, we deployed many algorithmic concepts (wholly or partially) from the earlier

(3)

methods and practices used for GUI, web, and mobile apps. The framework constructs a model for a given smart TV app cumulatively by exercising the user interface and extracting the runtime information using the remote control device interac-tion with the app. An important initial stage of the proposed testing framework is the black-box reverse engineering stage that is used to generate a comprehensive model for the app-under-test. The generated model can also be used for several verification and validation activities during the development process.

Another significant contribution of this paper is the idea of test case generation based on sub-model separation. Using the FSM and directed graphs as a model to represent the widgets and events on the GUI leads to a graph with many nodes and edges. The nodes are the widgets on the GUI and the edges are the transition among them. Due to the different nature of smart TV apps, the number of edges and nodes will be much higher than other apps. This will lead to a combinatorial explosion problem in the model in which we cannot generate all the test cases. One possible solution towards the optimization of the test cases is to use search-based algorithms to cover all the nodes and edges by the smallest set of test cases. However, in many instances, these algorithms are computationally expensive for such a complex model. Besides, search-based algorithms are more suitable for comprehensive testing of the app. Also, for this kind of model, where the sequence of the states is crucial, using search-based algorithms may not lead to the correct sequence of events on the smart TV app when it comes to executing the test cases due to the generation of unfeasible transition. As in the case of desktop GUI testing, either the generated test suite must be repaired or a constraint solver must be used. Both solutions are computationally expensive. In this paper, we introduce a new model-based prioritization method to generate customized effective test cases by extracting the user preferred sub-model from the exhaustive model (we call it Mega-model). We have demonstrated the preliminary design of this model constructor in our recently published study [7]. Using this method, more effective and efficient test cases can be generated by giving the authority to the tester to choose the path that he wants to test.

II. MOTIVATION ANDRELATEDWORK

Model-based concepts have been used frequently in the lit-erature to test the GUI of different software apps to assess their functionality. Most of the studies simulated the user interaction behavior with the GUI to construct the model. Here, reverse engineering has been used as an alternative to the classical capture/replay tools [8] to build a model. The model is then used to generate different test cases that represent sequences of execution to be run on the GUI for verification. Typically, the model is presented as nodes and edges. The nodes represent all the building blocks (i.e., widgets) of the GUI, (e.g., buttons, menus) and the edges represent the transitions among the nodes and the GUI’s execution behavior (e.g., click, touch).

Using this approach, Memon et al. [5], [9] developed GUI-TAR, a reverse engineering framework to model the GUI of the desktop software apps. GUITAR generates an event-flow graph (EFG) by capturing the widgets on the GUI. An algorithm extracts all the window’s building blocks of the GUI, their values and properties. The capturing algorithm also captures different widgets that leads to obsolete test cases. For example, when the label widget is not clickable and presenting it in a test case leads to non-executable test. Here, an algorithm has been used in GUITAR to repair those obsolete test cases. This approach has undergone many development stages in different studies. Aho et al. [10] presents an extensive survey for these studies and the techniques.

In line with this approach, Mesbah et al. [11] suggested CRAWLJAX, a web app’s reverse engineering method to generate models that relied on the dynamic crawling on the app to detect the clickable widgets. In addition to the dynamic crawling on the app, CRAWLJAX also relies on the code scanning of the web app to fine-tune the model. The model then used to generate the necessary executable test cases. This approach also motivated other researchers to use it for mobile app model-based testing. Joorabchi and Mesbah [12] developed a reverse engineering method to construct the model for the GUI of mobile apps.

With the different app types and different software tech-nologies, in most cases, the same approach has been applied in the literature. However, it is the technology, app type, and user interaction that makes the difference when applying the approach. Within each app type, there is a set of difficulties that alter this model-based approach to be different. Due to these differences, especially in GUI technology, it is challeng-ing to develop a generic testchalleng-ing framework that can generate models and test cases for different kind of GUI-based apps.

The smart TV app is another new kind of smart device app that relies on a fully interactive GUI. Smart TV devices are becoming more popular these days as there are a lot of advancements in the device and app development. Nowadays, smart TV devices are actively involved in other technologies like smart home, Internet of things (IoT), and controlling other consumer electronics. For example, smart security camera system [13], home sleep care with video analysis using smart TV app [14], controlling the smart home from smart TV [15], Smart Lighting Control [16], healthcare app of smart home [17], home appliances control through Smart TVs [18], [19], and many other apps. It is strongly become difficult to ignore the testing of the smart TV app. Using model-based testing approach for smart TV app is relatively under-explored in the literature.

Although there are a lot of synergies between the mobile and web apps’ testing, still, there are many expected difficulties when one tries to apply the same model-based approach due to the different user interaction with the GUI and the various technologies that the smart TV app build on. Mainly, using the remote control device to interact with the app will change the model. The widgets representation on the GUI and building technology behind that also will change the model of the app.

(4)

Applying the same reverse engineering methods used for the web and mobile apps will lead to creating a useless model when it comes to executing the test cases due to the different user interaction. When modeling the web app, the model is prepared for the interaction of mouse and keyboard inputs. In the same way, the model for the mobile app is prepared for the interaction of the touch screen with the fingers for example. However, smart TV app relies on the remote control device which behaves differently. For example, the mouse or finger can move in different directions that lead to moving from any widget to another for an event. Whereas, the remote control device moves only in four directions (Left, Right, Up, and Down).

The user interaction behavior has a direct impact on the type of the model graph generated for testing in the literature. For example, Nguyen et al. [5] constructed the EFG as a model for the desktop GUI testing, whereas, Amalfitano et al. [4] constructed the state machine graph as a model for mobile app testing. For smart TV apps, both the EFG and state machine graph models are not applicable. Here, each move from a node to another on the graph is a step. Hence, the weight of an edge between two nodes on the graph is the same. While this weight of the edge is not essential for the other apps, it is essential in the smart TV app. For example, while the user can move from an icon to another in the mobile app, there are restrictions of movement in the smart TV apps. Here, we assume the regular daily use of the apps. Nowadays, from a typical personal computer (PC) to smart TV, most of the devices are deployed with a touchscreen. However, still the normal daily user interaction with the PC app is the mouse device and with the TV is the remote control device.

Recently, we have tried to study and summarize the key problems of testing smart TV apps [6]. In our study, we have also tried to give different suggestions to solve those problems without implementing them. In another recently published study [7], we tried to construct a preliminary model smart TV apps, without using the model in any testing activities. A significant effort can be found by Cui et al. [20] to address the testing of the smart TV app. The study follows the previous approaches of model extraction by exhaustively explore the Android smart TV app to detect all the GUI widgets then optimize and filter them for the model construction. Here, a significant effort is needed for model optimization and reduction. The widgets extraction used a white-box crawler to scan the code of the app to construct a preliminary model, that contains many obsolete nodes. These obsolete nodes are originated from the detection of all the widgets in the crawling of the code regardless if the widgets are clickable or not. For example, the crawler detects a text label on the GUI as a node in the model while it is not active as it is not clickable. The study proposed an algorithm to reduce those obsolete nodes by deleting the inactive (or obsolete) nodes. Although promising, as mentioned previously, this approach has many drawbacks. When the app size become bigger, this process becomes time-consuming and there is a great possibility to stuck in the combinatorial explosion problem in the constructed model.

Also, there is a need to formulate the model for the complex structure of different apps. The study did not show the detail of the testing process nor named the apps used for the case studies. It is not clear also how the test cases generated from the constructed model and what kind of assessment used to evaluate the effectiveness of the generated test cases.

In contrast to the Cui et al. study [20], our approach uses a more effective method by only detecting the active widgets of the GUI, which in turn does not need to reduce the model. Hence, the constructed model by our approach is a more realistic model and there is no need for an addition algorithm to repair the generated test cases from it. Another contribution of our approach is that it will consider the actual movement of the remote controller device and does not rely on the code scanning of the app. Hence, in contrast to the study by Cui et al., our approach uses the black-box approach in which it will construct the model for the app, even its code is not available. Here, the GUI is explored using the remote control device while examining each widget on it and listen to the reaction for recording. When the widget element is clickable, the algorithm will consider it as a state in the model. The transition among the recorded states then represent the edges in the model.

III. SMARTTV APPTECHNOLOGY ANDITSTESTING

CHALLENGES

As in the case of the other new smart apps nowadays, Software Development Kits (SDK) used to develop smart TV apps. From the development perspective, each smart TV platform used to have its SDK. Cross-platform frameworks like Joshfire1, Mautilus2, and Smart TV Alliance3 were also an option to develop apps. However, the apps developed by them were able to work on a few commercial TV devices. Besides, some of those projects were shut down after a while. Tizen studio SDK nowadays used as an effective development framework that depends on the latest web technology and has a set of supporting tools for development. Tizen studio used to develop apps for the Tizen operating system for smart TV devices. To support cross-platform apps, Tizen used the most up-to-date web packages such as CSS, HTML5, JavaScript and W3C widget.

The user primarily interacts with the smart TV app through the remote control device. Although many smart TV devices are nowadays supporting the direct interaction with the touch-screen, still, the 10-feet (3m) distance is the standard distance of the user from the TV device [21], [22]. In fact, the remote control device is not as easily as used like fingers or mouse device for example. To this end, developers always consider this situation when designing the GUI of smart TV apps. For example, the developers are avoiding the use of text boxes as much as they can when designing the GUI of the smart TV app because entering text is complicated and not user-friendly. There are six essential and constant buttons on the device that

1https://www.joshfire.com/

2https://www.mautilus.com/

(5)

any smart TV must have to deal with the GUI. Those buttons are four navigation buttons (Right, Left, Up and Down), Back to navigate back to the previous state on the GUI, and the OK to select an item on the GUI. There are other buttons on the remote devices for some functional reasons such as on/off buttons or a set of (0-9) numbers for channel jumping, but they are not affecting the navigation.

To generate a model for a smart TV app, it is necessary to know the different layouts that an app may follow. Although there is a freedom for the designers to design the layout per the user preferences, smart TV app has a limited number of layouts that have been constructed for the ease of use with the remote control device. For example, Fig. 1 shows three different layouts presented in three different screens of the CineMup smart TV app used for case study later in this paper. To navigate on the GUI of a smart TV app, the remote control device is the conventional way of interaction. The most critical issue here is the non-flexibility of the remote device to navigate from a widget to another due to its "one step" movement. For example, consider the different movement possibilities for the diagram in Fig. 2. Here, this diagram represents the clickable widgets in Fig. 1a. Take the "UPCOMING" button as a start widget for navigation. The navigation to the "POPULAR" button from the "UPCOMING" button in one step of the remote device is not possible because they are not adjacent. Hence, the user must pass through the "TOP RATE" button to reach the "UPCOMING" button.

Now, turning to the "TOP TV" button in Fig. 2, there are three paths to reach this button from the "UPCOMING" button. Those path edges are [A:B:C], [A:G:F], and [D:E:F]. To reach "TOP RATE" from the "UPCOMING," for covering the [A] edge, the user must press the "Right" button on the remote device. In the same way, to cover the path [A:B:C], the user must press the remote device three times (i.e., Right, Right, then Down) to reach the "TOP TV" button. To construct a model that simulates this navigation process for the user, the model construction algorithms for mobile or desktop apps are useless here and there is a need for new algorithms to generate a new model.

IV. THEMODELGENERATIONMETHOD

In this section, we present our automated approach to generating a comprehensive model of the smart TV app. The model is generated with the help of our crawler that visits all the clickable states in the GUI of the smart TV app. Unlike the other crawling algorithms for desktop, web, and mobile apps, our crawling algorithm uses a full black-box crawling by simulating the actual interaction of the user with the app. Hence, there is no need to scan the app source code to generate the model. Also, following this approach, there is no need to repair the generated model for the redundant and obsolete states. By the end of the crawling, our strategy will generate the mega-model that forms a full representation of all widgets and transitions in states (nodes) and edges. We used the smart TV emulator in the Tizen SDK to run our crawler and mega-model generation algorithm. The following

subsections give the detail of the crawling algorithm, the mega-model representation, and the notion of sub-mega-model and mega-model subtraction.

A. The Smart TV App’s Crawler and Its Black-box Mega-model Generation

We have developed an algorithm to crawl the smart TV apps extensively using the remote control device emulator to discover the actually clickable widgets on the GUI. This crawl-ing process aims to construct the mega-model that represents a comprehensive GUI model. We have adopted and developed the concepts used in the literature for desktop and mobile app crawling. In contrast to those approaches, we used the remote control device to explore the GUI directly without going to the details of the internal code structure of the app. Algorithm 1 shows the steps of the crawling method.

Algorithm 1: The Steps of the Smart TV GUI Crawler Algorithm

Input: v1is the starting or user selected state

Input: Itmaxis the max number of crawling actions

Output: List of states to be modeled Lvand the transitions among them 1 Check the focus point

2 if focus not set then

3 Display the message "Please Select the Focus Point"

4 Set v1as focus

5 Set Lvas a new empty lists of states 6 exporeTVApp(v1,Itmax,Lv) 7 return Lv

8

9 function exporeTVApp(s, i, Lv):

Input: s is the starting state

Input: i is max number of actions still to perform Input: Lvis the list of visited states

10 if i = 0 then /* max actions reached */

11 return

12 foreach direction d in {DU p, DDown, DLef t, DRight, DOK} do 13 apply direction d to navigate to a new state currentState

14 monitor emulator log for reaction

15 if currentState.active = true then

16 Record the in/out transitions

17 if currentState 6∈ Lvthen

18 add currentState to Lv

19 exporeTVApp(currentState, i − 1, Lv)

20 Back to the parental state as currentState

As mentioned previously, the smart TV app technology depends mainly on the JavaScript programming language. The starting widget on a GUI of the app depends on the "focus" point specified by the developer in the JavaScript code. The focus point determines the location of the remote control cursor on the GUI. For the majority of the apps we explored, the focus point was not set during the development. Here, when the user opens the app, he must move the cursor using the remote control device to choose the focus point. To this end, our algorithm starts by checking the focus point. If the focus point was not set, then the algorithm will ask the tester to move the cursor and choose the focus point to start.

To explore the app comprehensively, from each newly discovered widget, the algorithm takes five directions DU p, DDown, DLef t, DRight, and DOK to navigate on the GUI. When a new widget is discovered, the algorithm will add

(6)

(a) (b) (c)

Fig. 1: Three different screens for the CineMup smart TV app

UPCOMING TOP RATE POPULAR

NEW PLAYING POPULAR TV TOP TV

A B

C D

E F

G

Fig. 2: Representation of the states in the Fig. 1a with the right and wrong state transitions

it to the final list of states that must be represented on the mega-model. The algorithm will continue this exploration until there are no new widgets to discover. The algorithm uses the Back key for moving back to the parental widget and GUI window. Another stopping criterion for this crawling algorithm is the setting of the iteration number at the beginning. For some cloud-based smart TV apps (for example, YouTube), it is impossible to explore the app comprehensively. For example, in the case of YouTube, each video is a state on the model. Here, the list of videos is not finite and the algorithm will continuously discover new widgets. We set an iteration number in the algorithm for this situation. However, for precise and finite results in this study, we did not use such an app in the case studies.

To show the concepts of the crawling algorithm, we consider a running example for one window of the GUI with six widgets as shown in Fig. 3. We consider v1 as a starting widget. The algorithm starts from v1to crawl in four main directions DU p , DDown , DLef t , and DRight for the full exploration of the GUI. For each direction, the algorithm checks for a new widget that can be discovered by listening to the log action of the smart TV emulator. Each new discovered clickable widget becomes a state on the mega-model. For example, from v1, the up and left directions DU p , DLef t will not lead to any widgets. The right direction DRight leads to v2 and the down direction DDown leads to v4. The algorithm then starts from the newly discovered widget, i.e., v2. From v2, the algorithm discovers the new states v3and v5in the DRightand Dd directions. The algorithm also discovers v1 in the DLef t direction; however, it is neglected by the algorithm as it is already discovered. The algorithm will continue until it cannot find more widgets.

To consider all the directions by the algorithm to deeply

Direction      New Widgets v1 + Du       ­  v1 + Dd      v4   v1 + Dl       ­  v1 + Dr      v2  Direction       New Widgets  v2 + Du       ­  v2 + Dd      v5   v2 + Dl       v1 (Rep. Neglect)  v2 + Dr       v3  v4 + Du      v1 (Rep. Neglect)  v4 + Dd       ­   v4 + Dl      ­  v4 + Dr      v5 (Rep. Neglect)   Direction      New Widgets  v3 + Du       ­  v3 + Dd      v6   v3 + Dl       v2  (Rep. Neglect)  v3 + Dr       ­   v5 + Du       v2 (Rep. Neglect)  v5 + Dd      ­   v5 + Dl      v4 (Rep. Neglect) v5 + Dr       v6 (Rep. Neglect)  v1  App name       Menu  v2  v3  v4  v5  v6  v1  App name      Menu  v3  v5  v6  v1  App name      Menu  v2  v4  v6  Du  Dd  Dl  Dr  v2  Du  Dd  Dl  Dr  v3  Du  Dd  Dl  Dr  v5  Du  Dd  Dl  Dr  v4  Du  Dd  Dl  Dr 

Fig. 3: A Graphical Representation of the Smart TV GUI Crawling Right Left Up Down A Left Right Up Down B Left Up Down Right C Up Down Left Right D Up Down Right Left E Up Down Right Left F Right Down Left Back C1 Left Right Up Down C2 Right Left Up Down C3 Left Up Down Right C4 OK Right Down Left C3-1 Left Right Up Down C3-2 Right Left Up Down Left C5 C3-3 OK Back A B C

Fig. 4: Full crawling of the GUIs in Fig. 1

discover an app with multiple windows, we also consider the OK and Back keys. Fig. 4 shows a pilot deep crawling example for the smart TV app with three GUIs in Fig. 1.

We model the GUI of the smart TV app as a multigraph G = (N, E, s, t), where N is a set of nodes, N 6= ∅, and E is a set of edges. Here, s : E → N assigns each edge to its source node and t : E → N assigns each edge to its target node. One start node ns ∈ N is defined when the focus point set. The set Ne⊆ N contains the end nodes of G, Ne6= ∅. N represents the widget elements of the GUI of the smart TV app. E represent the possible transitions between the widget elements (N ) using the remote control device. The widget here is the clickable widgets on the GUI. As previously mentioned, the crawler, for example, will not detect the label

(7)

widgets on the GUI to be considered in the mega-model. By following this approach, we can avoid a great testing overhead time needed to repair the model and the obsolete generated test cases when all widget considered. Hence, the constructed mega-model represents a real user interaction with the app and all the test cases generated using this model can be executed directly.

B. The Notion of Sub-model and Model Subtraction

Due to the many paths and ways of reaching the widgets in the smart app and the transitions among them, most probably, the mega-model will contain many states and edges. The mega-model becomes a complicated model with many edges and nodes. To assure the successful execution of a generated test case, it must start from the starting state of the graph and goes to a specific end state. Here, a test case is a sequence of steps to pass several nodes and paths to reach a final destination that usually leads to an action on the app. Hence, a step is a node or a state on the mega-model graph and the edge between two nodes is the move action by the user with the remote control device.

As the end nodes are representing the final destination for some action on the app, a natural way to generate a set of test cases is to consider all the end destination nodes on the mega-model and generate paths from the start to the end nodes. Although feasible, this test generation approach is exhaustive and computationally expensive. Heuristic search-based algorithms is an approach to generate and optimize test cases. However, it is more suitable to test the whole app not a specific function on the app. Besides, generating all the possible paths for the mega-model will lead to run many impractical test cases which may not be needed for testing a specific function on the app. Also, the search-based algorithm becomes complicated and computationally expensive for large mega-models and there is a need for specially designed data structures.

In this paper, we introduce the notion of sub-model to generate the test cases. Here, we generate the test cases based on the selected functions that we want to test. A function is an expected output after running a sequence of steps on the app. For example, the "Play Trailer" in Fig. 9c is a destination node in the app that is used for "play" function of a specific movie trailer track. Following this approach, we can test more specific functions and generate more effective test cases. Also, as the models are sub-models and they are relatively simpler than the mega-model, we can generate the test cases with less computation time and resources. As an example, We identified thee sub-models on the mega-model in Fig. 5.

As shown in Fig. 5, we highlighted the sub-models on the mega-model in different colors (Red, Blue, and Green). Each color is a directed graph with start and end nodes that represent a complete model with all related nodes and edges to fulfill a specific action. Our testing strategy separates these sub-models based on the user selection of the end nodes. For example, Fig. 6 shows the graphs for the (Red, Blue, and Green) sub-models

START UPCOMING_0 NOWPLAYING_1 TOPRATED_2 POPULARTV_3 TOPTV_4 POPULAR_5 PlanetEarth_6 GravityFalls_7 CosmosAPersonalVoyage_8 AvatarTheLastAirbender_9 BandofBrothers_10 BlackMirror_11 TheSopranos_12 MyHeroAcademia_13 Sherlock_14 DeathNote_15 BreakingBad_16 SteinsGate_17 TheWire_18 OvertheGardenWall_19 TheJinxTheLifeandDeathsofRobertDurst_20 StrangerThings_21 FullmetalAlchemistBrotherhood_22 Life_23 PlanetEarthII_24 RickandMorty_25 PlayTrailer_26 ShowImages_27 Close_28 end_29 end_30 PlayTrailer_31 ShowImages_32 Close_33 end_34 end_35 PlayTrailer_36 ShowImages_37 Close_38 end_39 end_40 PlayTrailer_41 ShowImages_42 Close_43 end_44 end_45 PlayTrailer_46 ShowImages_47 Close_48 end_49 end_50 PlayTrailer_51 ShowImages_52 Close_53 end_54 end_55 PlayTrailer_56 ShowImages_57 Close_58 end_59 end_60 PlayTrailer_61 ShowImages_62 Close_63 end_64 end_65 PlayTrailer_66 ShowImages_67Close_68 end_69 end_70 PlayTrailer_71 ShowImages_72 Close_73 end_74 end_75 PlayTrailer_76 ShowImages_77 Close_78 end_79 end_80 PlayTrailer_81 ShowImages_82 Close_83 end_84 end_85 PlayTrailer_86 ShowImages_87 Close_88 end_89 end_90 PlayTrailer_91 ShowImages_92 Close_93 end_94 end_95 PlayTrailer_96 ShowImages_97 Close_98 end_99 end_100 PlayTrailer_101 ShowImages_102 Close_103 end_104 end_105 PlayTrailer_106 ShowImages_107 Close_108 end_109 end_110 PlayTrailer_111 ShowImages_112 Close_113 end_114 end_115 PlayTrailer_116 ShowImages_117 Close_118 end_119 end_120 PlayTrailer_121 ShowImages_122 Close_123 end_124 end_125 FiftyShadesFreed_126 ThePost_127 Zootopia_128 JohnWick_129 15IQKrachoot_130 GuardiansoftheGalaxy_131 JusticeLeague_132 TheAvengers_133 TheShapeofWater_134 BeautyandtheBeast_135 Sleight_136ThorRagnarok_137 TombRaider_138 TheMazeRunner_139StarWarsTheLastJedi_140 PitchPerfect3_141 AQuietPlace_142 ReadyPlayerOne_143 BlackPanther_144 Coco_145 PlayTrailer_146 ShowImages_147 Close_148 end_149 end_150 PlayTrailer_151 ShowImages_152 Close_153 end_154 end_155 PlayTrailer_156 ShowImages_157 Close_158 end_159 end_160 PlayTrailer_161 ShowImages_162 Close_163 end_164 end_165 PlayTrailer_166 ShowImages_167 Close_168 end_169 end_170 PlayTrailer_171 ShowImages_172 Close_173 end_174 end_175 PlayTrailer_176 ShowImages_177 Close_178 end_179 end_180 PlayTrailer_181 ShowImages_182 Close_183 end_184 end_185 PlayTrailer_186 ShowImages_187 Close_188 end_189 end_190 PlayTrailer_191 ShowImages_192 Close_193 end_194 end_195 PlayTrailer_196 ShowImages_197 Close_198 end_199 end_200 PlayTrailer_201 ShowImages_202 Close_203 end_204 end_205 PlayTrailer_206 ShowImages_207 Close_208 end_209 end_210 PlayTrailer_211 ShowImages_212 Close_213 end_214 end_215 PlayTrailer_216 ShowImages_217 Close_218 end_219 end_220 PlayTrailer_221 ShowImages_222 Close_223 end_224 end_225 PlayTrailer_226 ShowImages_227 Close_228 end_229 end_230 PlayTrailer_231 ShowImages_232 Close_233 end_234 end_235 PlayTrailer_236 ShowImages_237 Close_238 end_239 end_240 PlayTrailer_241 ShowImages_242 Close_243 end_244 end_245 DilwaleDulhaniaLeJayenge_246 ForrestGump_247 TheShawshankRedemption_248 TheDarkKnight_249 12AngryMen_250 Psycho_251 OneFlewOvertheCuckoosNest_252 Harakiri_253 TheGreenMile_254 FightClub_255 OnceUponaTimeinAmerica_256 DoctorWhoTheTimeoftheDoctor_257 PulpFiction_258 LifeIsBeautiful_259 Whiplash_260 TheGodfatherPartII_261 SchindlersList_262 SpiritedAway_263 TheGodfather_264 YourName_265 PlayTrailer_266 ShowImages_267 Close_268 end_269 end_270 PlayTrailer_271 ShowImages_272 Close_273 end_274 end_275 PlayTrailer_276ShowImages_277 Close_278 end_279 end_280 PlayTrailer_281 ShowImages_282 Close_283 end_284 end_285 PlayTrailer_286 ShowImages_287 Close_288 end_289 end_290 PlayTrailer_291 ShowImages_292 Close_293 end_294 end_295 PlayTrailer_296 ShowImages_297 Close_298 end_299 end_300 PlayTrailer_301ShowImages_302 Close_303 end_304 end_305 PlayTrailer_306 ShowImages_307 Close_308 end_309 end_310 PlayTrailer_311 ShowImages_312 Close_313 end_314 end_315 PlayTrailer_316ShowImages_317Close_318 end_319 end_320 PlayTrailer_321 ShowImages_322 Close_323 end_324 end_325 PlayTrailer_326 ShowImages_327 Close_328 end_329 end_330 PlayTrailer_331 ShowImages_332 Close_333 end_334 end_335 PlayTrailer_336 ShowImages_337 Close_338 end_339 end_340 PlayTrailer_341 ShowImages_342 Close_343 end_344 end_345 PlayTrailer_346 ShowImages_347 Close_348 end_349 end_350 PlayTrailer_351 ShowImages_352 Close_353 end_354 end_355 PlayTrailer_356 ShowImages_357 Close_358 end_359 end_360 PlayTrailer_361 ShowImages_362 Close_363 end_364 end_365 TheBigBangTheory_366 SouthPark_367 TheWalkingDead_368 DoctorWho_369 MoneyHeist_370 BreakingBad_371 OnceUponaTime_372 FamilyGuy_373 TheMissing_374 MarvelsAgentsofSHIELD_375 Gotham_376 Pokmon_377 LawOrderSpecialVictimsUnit_378 Homeland_379 GreysAnatomy_380 Arrow_381 Mindhunter_382 Supernatural_383 TheFlash_384 TheSimpsons_385 PlayTrailer_386 ShowImages_387 Close_388 end_389 end_390 PlayTrailer_391 ShowImages_392 Close_393 end_394 end_395 PlayTrailer_396 ShowImages_397 Close_398 end_399 end_400 PlayTrailer_401 ShowImages_402 Close_403 end_404 end_405 PlayTrailer_406 ShowImages_407 Close_408 end_409 end_410 PlayTrailer_411 ShowImages_412 Close_413 end_414 end_415 PlayTrailer_416 ShowImages_417 Close_418 end_419 end_420 PlayTrailer_421 ShowImages_422 Close_423 end_424 end_425 PlayTrailer_426 ShowImages_427 Close_428 end_429 end_430 PlayTrailer_431 ShowImages_432 Close_433 end_434 end_435 PlayTrailer_436 ShowImages_437 Close_438 end_439 end_440 PlayTrailer_441 ShowImages_442 Close_443 end_444 end_445 PlayTrailer_446 ShowImages_447 Close_448 end_449 end_450 PlayTrailer_451 ShowImages_452 Close_453 end_454 end_455 PlayTrailer_456 ShowImages_457 Close_458 end_459 end_460 PlayTrailer_461 ShowImages_462 Close_463 end_464 end_465 PlayTrailer_466 ShowImages_467 Close_468 end_469 end_470 PlayTrailer_471 ShowImages_472 Close_473 end_474 end_475 PlayTrailer_476 ShowImages_477 Close_478 end_479 end_480 PlayTrailer_481 ShowImages_482 Close_483 end_484 end_485 Coco_486 DenofThieves_487 BlackPanther_488 TruthorDare_489 LoveSimon_490 YouWereNeverReallyHere_491 12Strong_492 Annihilation_493 ThreeBillboardsOutsideEbbingMissouri_494 MollysGame_495 PacificRimUprising_496 Rampage_497 JumanjiWelcometotheJungle_498 TheCommuter_499 ThePost_500 TheShapeofWater_501 TombRaider_502 PitchPerfect3_503 AQuietPlace_504 ReadyPlayerOne_505 PlayTrailer_506 ShowImages_507 Close_508 end_509 end_510 PlayTrailer_511 ShowImages_512Close_513 end_514 end_515 PlayTrailer_516ShowImages_517 Close_518 end_519 end_520 PlayTrailer_521ShowImages_522 Close_523 end_524 end_525 PlayTrailer_526 ShowImages_527 Close_528 end_529 end_530 PlayTrailer_531 ShowImages_532 Close_533 end_534 end_535 PlayTrailer_536 ShowImages_537 Close_538 end_539 end_540 PlayTrailer_541 ShowImages_542 Close_543 end_544 end_545 PlayTrailer_546 ShowImages_547 Close_548 end_549 end_550 PlayTrailer_551 ShowImages_552 Close_553 end_554 end_555 PlayTrailer_556 ShowImages_557 Close_558 end_559 end_560 PlayTrailer_561 ShowImages_562 Close_563 end_564 end_565 PlayTrailer_566 ShowImages_567 Close_568 end_569 end_570 PlayTrailer_571 ShowImages_572 Close_573 end_574 end_575 PlayTrailer_576 ShowImages_577 Close_578 end_579 end_580 PlayTrailer_581 ShowImages_582 Close_583 end_584 end_585 PlayTrailer_586 ShowImages_587 Close_588 end_589 end_590 PlayTrailer_591 ShowImages_592 Close_593 end_594 end_595 PlayTrailer_596 ShowImages_597 Close_598 end_599 end_600 PlayTrailer_601 ShowImages_602 Close_603 end_604 end_605 ReadyPlayerOne_606 KyrsyTuftland_607 AQuietPlace_608 FilmStarsDontDieinLiverpool_609 AfterAuschwitz_610 Winchester_611 Tully_612 SherlockGnomes_613 Wildling_614 GameNight_615 TheDeathofStalin_616 Taxi5_617 IsleofDogs_618 LadyBird_619 Overboard_620 TruthorDare_621 YouWereNeverReallyHere_622 12Strong_623 Rampage_624 AvengersInfinityWar_625 PlayTrailer_626 ShowImages_627 Close_628 end_629 end_630 PlayTrailer_631 ShowImages_632 Close_633 end_634 end_635 PlayTrailer_636 ShowImages_637 Close_638 end_639 end_640 PlayTrailer_641 ShowImages_642 Close_643 end_644 end_645 PlayTrailer_646 ShowImages_647 Close_648 end_649 end_650 PlayTrailer_651 ShowImages_652 Close_653 end_654 end_655 PlayTrailer_656 ShowImages_657 Close_658 end_659 end_660 PlayTrailer_661 ShowImages_662 Close_663 end_664 end_665 PlayTrailer_666 ShowImages_667 Close_668 end_669 end_670 PlayTrailer_671 ShowImages_672 Close_673 end_674 end_675 PlayTrailer_676 ShowImages_677 Close_678 end_679 end_680 PlayTrailer_681 ShowImages_682 Close_683 end_684 end_685 PlayTrailer_686 ShowImages_687 Close_688 end_689 end_690 PlayTrailer_691 ShowImages_692 Close_693 end_694 end_695 PlayTrailer_696 ShowImages_697 Close_698 end_699 end_700 PlayTrailer_701 ShowImages_702Close_703 end_704 end_705 PlayTrailer_706 ShowImages_707 Close_708 end_709 end_710 PlayTrailer_711 ShowImages_712 Close_713 end_714 end_715 PlayTrailer_716 ShowImages_717 Close_718 end_719 end_720 PlayTrailer_721 ShowImages_722 Close_723 end_724 end_725 enter UPCOMING_0_right UPCOMING_0_down UPCOMING_0_enter NOWPLAYING_1_right NOWPLAYING_1_up NOWPLAYING_1_enter TOPRATED_2_left TOPRATED_2_right TOPRATED_2_down TOPRATED_2_enter POPULARTV_3_left POPULARTV_3_right POPULARTV_3_up POPULARTV_3_enter TOPTV_4_left TOPTV_4_up TOPTV_4_enter POPULAR_5_left POPULAR_5_down POPULAR_5_enter PlanetEarth_6_left PlanetEarth_6_right PlanetEarth_6_enter PlanetEarth_6_back GravityFalls_7_left GravityFalls_7_right GravityFalls_7_enter GravityFalls_7_back CosmosAPersonalVoyage_8_leftCosmosAPersonalVoyage_8_right CosmosAPersonalVoyage_8_enter CosmosAPersonalVoyage_8_back AvatarTheLastAirbender_9_left AvatarTheLastAirbender_9_right AvatarTheLastAirbender_9_enter AvatarTheLastAirbender_9_back BandofBrothers_10_left BandofBrothers_10_right BandofBrothers_10_enter BandofBrothers_10_back BlackMirror_11_left BlackMirror_11_right BlackMirror_11_enter BlackMirror_11_back TheSopranos_12_left TheSopranos_12_right TheSopranos_12_enter TheSopranos_12_back MyHeroAcademia_13_left MyHeroAcademia_13_right MyHeroAcademia_13_enter MyHeroAcademia_13_back Sherlock_14_left Sherlock_14_right Sherlock_14_enter Sherlock_14_back DeathNote_15_left DeathNote_15_right DeathNote_15_enter DeathNote_15_back BreakingBad_16_left BreakingBad_16_right BreakingBad_16_enter BreakingBad_16_back SteinsGate_17_left SteinsGate_17_right SteinsGate_17_enter SteinsGate_17_back TheWire_18_left TheWire_18_right TheWire_18_enter TheWire_18_back OvertheGardenWall_19_left OvertheGardenWall_19_rightOvertheGardenWall_19_enter OvertheGardenWall_19_back TheJinxTheLifeandDeathsofRobertDurst_20_left TheJinxTheLifeandDeathsofRobertDurst_20_right TheJinxTheLifeandDeathsofRobertDurst_20_enter TheJinxTheLifeandDeathsofRobertDurst_20_back StrangerThings_21_left StrangerThings_21_right StrangerThings_21_enter StrangerThings_21_backFullmetalAlchemistBrotherhood_22_left FullmetalAlchemistBrotherhood_22_right FullmetalAlchemistBrotherhood_22_enter FullmetalAlchemistBrotherhood_22_back Life_23_leftLife_23_right Life_23_enter Life_23_back PlanetEarthII_24_left PlanetEarthII_24_right PlanetEarthII_24_enter PlanetEarthII_24_back RickandMorty_25_leftRickandMorty_25_right RickandMorty_25_enter RickandMorty_25_back PlayTrailer_26_right PlayTrailer_26_enter PlayTrailer_26_back ShowImages_27_left ShowImages_27_right ShowImages_27_enter ShowImages_27_back Close_28_left Close_28_back PlayTrailer_31_right PlayTrailer_31_enter PlayTrailer_31_back ShowImages_32_left ShowImages_32_right ShowImages_32_enter ShowImages_32_back Close_33_left Close_33_back PlayTrailer_36_right PlayTrailer_36_enter PlayTrailer_36_back ShowImages_37_left ShowImages_37_right ShowImages_37_enter ShowImages_37_back Close_38_left Close_38_back PlayTrailer_41_right PlayTrailer_41_enter PlayTrailer_41_back ShowImages_42_leftShowImages_42_right ShowImages_42_enter ShowImages_42_back Close_43_left Close_43_back PlayTrailer_46_right PlayTrailer_46_enter PlayTrailer_46_back ShowImages_47_left ShowImages_47_right ShowImages_47_enter ShowImages_47_back Close_48_left Close_48_back PlayTrailer_51_right PlayTrailer_51_enter PlayTrailer_51_back ShowImages_52_left ShowImages_52_right ShowImages_52_enter ShowImages_52_back Close_53_left Close_53_back PlayTrailer_56_right PlayTrailer_56_enter PlayTrailer_56_back ShowImages_57_left ShowImages_57_right ShowImages_57_enter ShowImages_57_back Close_58_left Close_58_back PlayTrailer_61_right PlayTrailer_61_enter PlayTrailer_61_back ShowImages_62_left ShowImages_62_right ShowImages_62_enter ShowImages_62_back Close_63_left Close_63_back PlayTrailer_66_right PlayTrailer_66_enter PlayTrailer_66_back ShowImages_67_left ShowImages_67_right ShowImages_67_enter ShowImages_67_back Close_68_left Close_68_back PlayTrailer_71_right PlayTrailer_71_enter PlayTrailer_71_back ShowImages_72_left ShowImages_72_right ShowImages_72_enter ShowImages_72_back Close_73_left Close_73_back PlayTrailer_76_right PlayTrailer_76_enter PlayTrailer_76_back ShowImages_77_left ShowImages_77_right ShowImages_77_enter ShowImages_77_back Close_78_left Close_78_back PlayTrailer_81_right PlayTrailer_81_enter PlayTrailer_81_back ShowImages_82_leftShowImages_82_right ShowImages_82_enter ShowImages_82_back Close_83_left Close_83_back PlayTrailer_86_rightPlayTrailer_86_enter PlayTrailer_86_back ShowImages_87_left ShowImages_87_right ShowImages_87_enter ShowImages_87_back Close_88_left Close_88_back PlayTrailer_91_right PlayTrailer_91_enter PlayTrailer_91_back ShowImages_92_leftShowImages_92_right ShowImages_92_enter ShowImages_92_back Close_93_left Close_93_back PlayTrailer_96_right PlayTrailer_96_enter PlayTrailer_96_back ShowImages_97_leftShowImages_97_right ShowImages_97_enter ShowImages_97_back Close_98_left Close_98_back PlayTrailer_101_right PlayTrailer_101_enter PlayTrailer_101_back ShowImages_102_left ShowImages_102_right ShowImages_102_enter ShowImages_102_back Close_103_left Close_103_back PlayTrailer_106_right PlayTrailer_106_enter PlayTrailer_106_back ShowImages_107_leftShowImages_107_right ShowImages_107_enter ShowImages_107_back Close_108_left Close_108_back PlayTrailer_111_right PlayTrailer_111_enter PlayTrailer_111_back ShowImages_112_left ShowImages_112_right ShowImages_112_enter ShowImages_112_back Close_113_left Close_113_back PlayTrailer_116_right PlayTrailer_116_enter PlayTrailer_116_back ShowImages_117_left ShowImages_117_right ShowImages_117_enter ShowImages_117_back Close_118_left Close_118_back PlayTrailer_121_right PlayTrailer_121_enter PlayTrailer_121_back ShowImages_122_left ShowImages_122_rightShowImages_122_enter ShowImages_122_back Close_123_left Close_123_back FiftyShadesFreed_126_left FiftyShadesFreed_126_right FiftyShadesFreed_126_enter FiftyShadesFreed_126_back ThePost_127_left ThePost_127_right ThePost_127_enter ThePost_127_back Zootopia_128_left Zootopia_128_rightZootopia_128_backZootopia_128_enter

JohnWick_129_left JohnWick_129_right JohnWick_129_enter JohnWick_129_back 15IQKrachoot_130_left 15IQKrachoot_130_right 15IQKrachoot_130_enter 15IQKrachoot_130_back GuardiansoftheGalaxy_131_left GuardiansoftheGalaxy_131_right GuardiansoftheGalaxy_131_enter GuardiansoftheGalaxy_131_back JusticeLeague_132_left JusticeLeague_132_right JusticeLeague_132_enter JusticeLeague_132_back TheAvengers_133_left TheAvengers_133_right TheAvengers_133_enter TheAvengers_133_back TheShapeofWater_134_left TheShapeofWater_134_right TheShapeofWater_134_enter TheShapeofWater_134_back BeautyandtheBeast_135_left BeautyandtheBeast_135_right BeautyandtheBeast_135_enter BeautyandtheBeast_135_back Sleight_136_left Sleight_136_right Sleight_136_enter Sleight_136_back ThorRagnarok_137_left ThorRagnarok_137_right ThorRagnarok_137_enter ThorRagnarok_137_back TombRaider_138_left TombRaider_138_right TombRaider_138_enter TombRaider_138_back TheMazeRunner_139_left TheMazeRunner_139_right TheMazeRunner_139_enter TheMazeRunner_139_back StarWarsTheLastJedi_140_left StarWarsTheLastJedi_140_right StarWarsTheLastJedi_140_enter StarWarsTheLastJedi_140_back PitchPerfect3_141_left PitchPerfect3_141_right PitchPerfect3_141_enter PitchPerfect3_141_back AQuietPlace_142_left AQuietPlace_142_right AQuietPlace_142_enter AQuietPlace_142_back ReadyPlayerOne_143_left ReadyPlayerOne_143_right ReadyPlayerOne_143_enter ReadyPlayerOne_143_back BlackPanther_144_left BlackPanther_144_right BlackPanther_144_enter BlackPanther_144_back Coco_145_left Coco_145_right Coco_145_enter Coco_145_back PlayTrailer_146_right PlayTrailer_146_enter PlayTrailer_146_back ShowImages_147_left ShowImages_147_right ShowImages_147_enter ShowImages_147_back Close_148_left Close_148_back PlayTrailer_151_right PlayTrailer_151_enter PlayTrailer_151_back ShowImages_152_left ShowImages_152_right ShowImages_152_enter ShowImages_152_back Close_153_left Close_153_back PlayTrailer_156_right PlayTrailer_156_enter PlayTrailer_156_back ShowImages_157_left ShowImages_157_right ShowImages_157_enter ShowImages_157_back Close_158_left Close_158_back PlayTrailer_161_right PlayTrailer_161_enter PlayTrailer_161_back ShowImages_162_left ShowImages_162_right ShowImages_162_enter ShowImages_162_back Close_163_left Close_163_back PlayTrailer_166_right PlayTrailer_166_enter PlayTrailer_166_back ShowImages_167_left ShowImages_167_right ShowImages_167_enter ShowImages_167_back Close_168_left Close_168_back PlayTrailer_171_right PlayTrailer_171_enter PlayTrailer_171_backShowImages_172_rightShowImages_172_left

ShowImages_172_enter ShowImages_172_back Close_173_left Close_173_back PlayTrailer_176_right PlayTrailer_176_enter PlayTrailer_176_back ShowImages_177_left ShowImages_177_right ShowImages_177_enter ShowImages_177_back Close_178_left Close_178_back PlayTrailer_181_right PlayTrailer_181_enter PlayTrailer_181_back ShowImages_182_left ShowImages_182_rightShowImages_182_enter ShowImages_182_back Close_183_left Close_183_back PlayTrailer_186_right PlayTrailer_186_enter PlayTrailer_186_back ShowImages_187_left ShowImages_187_right ShowImages_187_enter ShowImages_187_back Close_188_left Close_188_back PlayTrailer_191_right PlayTrailer_191_enter PlayTrailer_191_back ShowImages_192_left ShowImages_192_right ShowImages_192_enter ShowImages_192_back Close_193_left Close_193_back PlayTrailer_196_right PlayTrailer_196_enter PlayTrailer_196_back ShowImages_197_leftShowImages_197_right ShowImages_197_enter ShowImages_197_back Close_198_left Close_198_back PlayTrailer_201_right PlayTrailer_201_enter PlayTrailer_201_back ShowImages_202_left ShowImages_202_right ShowImages_202_enter ShowImages_202_back Close_203_left Close_203_back PlayTrailer_206_right PlayTrailer_206_enter PlayTrailer_206_back ShowImages_207_left ShowImages_207_right ShowImages_207_enter ShowImages_207_back Close_208_left Close_208_back PlayTrailer_211_right PlayTrailer_211_enter PlayTrailer_211_back ShowImages_212_left ShowImages_212_right ShowImages_212_enter ShowImages_212_back Close_213_left Close_213_back PlayTrailer_216_right PlayTrailer_216_enter PlayTrailer_216_back ShowImages_217_left ShowImages_217_right ShowImages_217_enter ShowImages_217_back Close_218_left Close_218_back PlayTrailer_221_right PlayTrailer_221_enter PlayTrailer_221_back ShowImages_222_left ShowImages_222_right ShowImages_222_enter ShowImages_222_back Close_223_left Close_223_back PlayTrailer_226_right PlayTrailer_226_enterPlayTrailer_226_back ShowImages_227_leftShowImages_227_right ShowImages_227_enter ShowImages_227_back Close_228_left Close_228_back PlayTrailer_231_right PlayTrailer_231_enter PlayTrailer_231_back ShowImages_232_left ShowImages_232_rightShowImages_232_enter ShowImages_232_back Close_233_left Close_233_back PlayTrailer_236_rightPlayTrailer_236_enter PlayTrailer_236_back ShowImages_237_left ShowImages_237_right ShowImages_237_enter ShowImages_237_back Close_238_left Close_238_back PlayTrailer_241_rightPlayTrailer_241_enter PlayTrailer_241_back ShowImages_242_left ShowImages_242_right ShowImages_242_enter ShowImages_242_back Close_243_left Close_243_back DilwaleDulhaniaLeJayenge_246_left DilwaleDulhaniaLeJayenge_246_right DilwaleDulhaniaLeJayenge_246_enter DilwaleDulhaniaLeJayenge_246_back ForrestGump_247_left ForrestGump_247_rightForrestGump_247_enter ForrestGump_247_back TheShawshankRedemption_248_left TheShawshankRedemption_248_right TheShawshankRedemption_248_enter TheShawshankRedemption_248_back TheDarkKnight_249_left TheDarkKnight_249_right TheDarkKnight_249_enter TheDarkKnight_249_back 12AngryMen_250_left 12AngryMen_250_right 12AngryMen_250_enter 12AngryMen_250_back Psycho_251_left Psycho_251_right Psycho_251_enter Psycho_251_back OneFlewOvertheCuckoosNest_252_left OneFlewOvertheCuckoosNest_252_right OneFlewOvertheCuckoosNest_252_enter OneFlewOvertheCuckoosNest_252_back Harakiri_253_left Harakiri_253_right Harakiri_253_enterHarakiri_253_back TheGreenMile_254_left TheGreenMile_254_right TheGreenMile_254_enter TheGreenMile_254_back FightClub_255_left FightClub_255_right FightClub_255_enter FightClub_255_back OnceUponaTimeinAmerica_256_left OnceUponaTimeinAmerica_256_right OnceUponaTimeinAmerica_256_enter OnceUponaTimeinAmerica_256_back DoctorWhoTheTimeoftheDoctor_257_left DoctorWhoTheTimeoftheDoctor_257_right DoctorWhoTheTimeoftheDoctor_257_enter DoctorWhoTheTimeoftheDoctor_257_back PulpFiction_258_left PulpFiction_258_right PulpFiction_258_enter PulpFiction_258_back LifeIsBeautiful_259_left LifeIsBeautiful_259_right LifeIsBeautiful_259_enter LifeIsBeautiful_259_back Whiplash_260_left Whiplash_260_right Whiplash_260_enter Whiplash_260_back TheGodfatherPartII_261_left TheGodfatherPartII_261_right TheGodfatherPartII_261_enter TheGodfatherPartII_261_back SchindlersList_262_left SchindlersList_262_right SchindlersList_262_enter SchindlersList_262_back SpiritedAway_263_left SpiritedAway_263_right SpiritedAway_263_enter SpiritedAway_263_back TheGodfather_264_left TheGodfather_264_right TheGodfather_264_enter TheGodfather_264_back YourName_265_left YourName_265_right YourName_265_enter YourName_265_back PlayTrailer_266_right PlayTrailer_266_enter PlayTrailer_266_back ShowImages_267_left ShowImages_267_right ShowImages_267_enter ShowImages_267_backClose_268_left Close_268_back PlayTrailer_271_right PlayTrailer_271_enter PlayTrailer_271_back ShowImages_272_left ShowImages_272_right ShowImages_272_enter ShowImages_272_back Close_273_left Close_273_back PlayTrailer_276_right PlayTrailer_276_enter PlayTrailer_276_backShowImages_277_left ShowImages_277_right ShowImages_277_enter ShowImages_277_back Close_278_left Close_278_back PlayTrailer_281_right PlayTrailer_281_enter PlayTrailer_281_back ShowImages_282_left ShowImages_282_right ShowImages_282_enter ShowImages_282_back Close_283_left Close_283_back PlayTrailer_286_right PlayTrailer_286_enter PlayTrailer_286_back ShowImages_287_left ShowImages_287_right ShowImages_287_enter ShowImages_287_back Close_288_left Close_288_back PlayTrailer_291_right PlayTrailer_291_enter PlayTrailer_291_back ShowImages_292_left ShowImages_292_right ShowImages_292_enter ShowImages_292_back Close_293_left Close_293_back PlayTrailer_296_right PlayTrailer_296_enter PlayTrailer_296_back ShowImages_297_left ShowImages_297_right ShowImages_297_enter ShowImages_297_back Close_298_left Close_298_back PlayTrailer_301_right PlayTrailer_301_enter PlayTrailer_301_back ShowImages_302_left ShowImages_302_right ShowImages_302_enter ShowImages_302_back Close_303_left Close_303_back PlayTrailer_306_right PlayTrailer_306_enter PlayTrailer_306_back ShowImages_307_left ShowImages_307_right ShowImages_307_enter ShowImages_307_back Close_308_left Close_308_back PlayTrailer_311_right PlayTrailer_311_enter PlayTrailer_311_back ShowImages_312_left ShowImages_312_right ShowImages_312_enter ShowImages_312_back Close_313_left Close_313_back PlayTrailer_316_right PlayTrailer_316_enter PlayTrailer_316_back ShowImages_317_left ShowImages_317_right ShowImages_317_enter ShowImages_317_backClose_318_leftClose_318_back PlayTrailer_321_right PlayTrailer_321_enter PlayTrailer_321_back ShowImages_322_left ShowImages_322_right ShowImages_322_enter ShowImages_322_back Close_323_left Close_323_back PlayTrailer_326_right PlayTrailer_326_enter PlayTrailer_326_back ShowImages_327_left ShowImages_327_right ShowImages_327_enter ShowImages_327_back Close_328_left Close_328_back PlayTrailer_331_right PlayTrailer_331_enter PlayTrailer_331_back ShowImages_332_left ShowImages_332_right ShowImages_332_enter ShowImages_332_back Close_333_left Close_333_back PlayTrailer_336_right PlayTrailer_336_enter PlayTrailer_336_back ShowImages_337_left ShowImages_337_right ShowImages_337_enter ShowImages_337_back Close_338_left Close_338_back PlayTrailer_341_right PlayTrailer_341_enter PlayTrailer_341_back ShowImages_342_left ShowImages_342_right ShowImages_342_enter ShowImages_342_back Close_343_left Close_343_back PlayTrailer_346_right PlayTrailer_346_enter PlayTrailer_346_back ShowImages_347_left ShowImages_347_right ShowImages_347_enter ShowImages_347_backClose_348_left Close_348_back PlayTrailer_351_rightPlayTrailer_351_enter PlayTrailer_351_back ShowImages_352_left ShowImages_352_right ShowImages_352_enter ShowImages_352_back Close_353_left Close_353_back PlayTrailer_356_right PlayTrailer_356_enter PlayTrailer_356_back ShowImages_357_left ShowImages_357_right ShowImages_357_enter ShowImages_357_back Close_358_left Close_358_back PlayTrailer_361_right PlayTrailer_361_enter PlayTrailer_361_back ShowImages_362_left ShowImages_362_right ShowImages_362_enter ShowImages_362_back Close_363_left Close_363_back TheBigBangTheory_366_left TheBigBangTheory_366_right TheBigBangTheory_366_enter TheBigBangTheory_366_back SouthPark_367_left SouthPark_367_right SouthPark_367_enter SouthPark_367_back TheWalkingDead_368_left TheWalkingDead_368_right TheWalkingDead_368_enter TheWalkingDead_368_back DoctorWho_369_left DoctorWho_369_right DoctorWho_369_enter DoctorWho_369_back MoneyHeist_370_left MoneyHeist_370_right MoneyHeist_370_enter MoneyHeist_370_back BreakingBad_371_left BreakingBad_371_right BreakingBad_371_enter BreakingBad_371_back OnceUponaTime_372_left OnceUponaTime_372_right OnceUponaTime_372_enter OnceUponaTime_372_back FamilyGuy_373_left FamilyGuy_373_right FamilyGuy_373_enter FamilyGuy_373_back TheMissing_374_left TheMissing_374_right TheMissing_374_enter TheMissing_374_back MarvelsAgentsofSHIELD_375_left MarvelsAgentsofSHIELD_375_right MarvelsAgentsofSHIELD_375_enter MarvelsAgentsofSHIELD_375_back Gotham_376_left Gotham_376_right Gotham_376_enter Gotham_376_back Pokmon_377_left Pokmon_377_right Pokmon_377_enter Pokmon_377_back LawOrderSpecialVictimsUnit_378_left LawOrderSpecialVictimsUnit_378_right LawOrderSpecialVictimsUnit_378_enter LawOrderSpecialVictimsUnit_378_back Homeland_379_left Homeland_379_right Homeland_379_enter Homeland_379_back GreysAnatomy_380_left GreysAnatomy_380_right GreysAnatomy_380_enter GreysAnatomy_380_back Arrow_381_left Arrow_381_right Arrow_381_enter Arrow_381_back Mindhunter_382_left Mindhunter_382_right Mindhunter_382_enter Mindhunter_382_back Supernatural_383_leftSupernatural_383_right Supernatural_383_enter Supernatural_383_back TheFlash_384_left TheFlash_384_right TheFlash_384_enter TheFlash_384_back TheSimpsons_385_left TheSimpsons_385_right TheSimpsons_385_enter TheSimpsons_385_back PlayTrailer_386_right PlayTrailer_386_enter PlayTrailer_386_back ShowImages_387_left ShowImages_387_right ShowImages_387_enter ShowImages_387_back Close_388_left Close_388_back PlayTrailer_391_right PlayTrailer_391_enter PlayTrailer_391_back ShowImages_392_left ShowImages_392_right ShowImages_392_enter ShowImages_392_back Close_393_left Close_393_back PlayTrailer_396_right PlayTrailer_396_enter PlayTrailer_396_back ShowImages_397_left ShowImages_397_right ShowImages_397_enter ShowImages_397_back Close_398_left Close_398_back PlayTrailer_401_right PlayTrailer_401_enter PlayTrailer_401_back ShowImages_402_left ShowImages_402_right ShowImages_402_enter ShowImages_402_back Close_403_left Close_403_back PlayTrailer_406_right PlayTrailer_406_enter PlayTrailer_406_back ShowImages_407_left ShowImages_407_right ShowImages_407_enter ShowImages_407_back Close_408_left Close_408_back PlayTrailer_411_right PlayTrailer_411_enter PlayTrailer_411_back ShowImages_412_left ShowImages_412_right ShowImages_412_enter ShowImages_412_back Close_413_left Close_413_back PlayTrailer_416_right PlayTrailer_416_enter PlayTrailer_416_back ShowImages_417_left ShowImages_417_right ShowImages_417_enter ShowImages_417_back Close_418_left Close_418_back PlayTrailer_421_right PlayTrailer_421_enter PlayTrailer_421_back ShowImages_422_left ShowImages_422_right ShowImages_422_enter ShowImages_422_back Close_423_left Close_423_back PlayTrailer_426_right PlayTrailer_426_enter PlayTrailer_426_back ShowImages_427_left ShowImages_427_right ShowImages_427_enter ShowImages_427_back Close_428_left Close_428_back PlayTrailer_431_right PlayTrailer_431_enter PlayTrailer_431_back ShowImages_432_left ShowImages_432_right ShowImages_432_enter ShowImages_432_back Close_433_left Close_433_back PlayTrailer_436_right PlayTrailer_436_enter PlayTrailer_436_back ShowImages_437_left ShowImages_437_right ShowImages_437_enter ShowImages_437_back Close_438_left Close_438_back PlayTrailer_441_right PlayTrailer_441_enter PlayTrailer_441_back ShowImages_442_left ShowImages_442_right ShowImages_442_enter ShowImages_442_back Close_443_left Close_443_back PlayTrailer_446_right PlayTrailer_446_enter PlayTrailer_446_back ShowImages_447_left ShowImages_447_right ShowImages_447_enter ShowImages_447_back Close_448_left Close_448_back PlayTrailer_451_right PlayTrailer_451_enter PlayTrailer_451_back ShowImages_452_left ShowImages_452_right ShowImages_452_enter ShowImages_452_back Close_453_left Close_453_back PlayTrailer_456_right PlayTrailer_456_enter PlayTrailer_456_back ShowImages_457_left ShowImages_457_right ShowImages_457_enter ShowImages_457_back Close_458_left Close_458_back PlayTrailer_461_right PlayTrailer_461_enter PlayTrailer_461_back ShowImages_462_left ShowImages_462_right ShowImages_462_enter ShowImages_462_back Close_463_left Close_463_back PlayTrailer_466_right PlayTrailer_466_enter PlayTrailer_466_back ShowImages_467_left ShowImages_467_right ShowImages_467_enter ShowImages_467_back Close_468_left Close_468_back PlayTrailer_471_right PlayTrailer_471_enter PlayTrailer_471_back ShowImages_472_left ShowImages_472_right ShowImages_472_enter ShowImages_472_back Close_473_left Close_473_back PlayTrailer_476_right PlayTrailer_476_enter PlayTrailer_476_back ShowImages_477_left ShowImages_477_right ShowImages_477_enter ShowImages_477_back Close_478_left Close_478_back PlayTrailer_481_rightPlayTrailer_481_enter PlayTrailer_481_back ShowImages_482_left ShowImages_482_right ShowImages_482_enter ShowImages_482_back Close_483_left Close_483_back Coco_486_left Coco_486_right Coco_486_enter Coco_486_back DenofThieves_487_left DenofThieves_487_right DenofThieves_487_enter DenofThieves_487_back BlackPanther_488_left BlackPanther_488_right BlackPanther_488_enter BlackPanther_488_back TruthorDare_489_left TruthorDare_489_right TruthorDare_489_enter TruthorDare_489_back LoveSimon_490_left LoveSimon_490_right LoveSimon_490_enter LoveSimon_490_back YouWereNeverReallyHere_491_left YouWereNeverReallyHere_491_right YouWereNeverReallyHere_491_enter YouWereNeverReallyHere_491_back 12Strong_492_left 12Strong_492_right 12Strong_492_enter 12Strong_492_back Annihilation_493_left Annihilation_493_right Annihilation_493_enter Annihilation_493_back ThreeBillboardsOutsideEbbingMissouri_494_left ThreeBillboardsOutsideEbbingMissouri_494_right ThreeBillboardsOutsideEbbingMissouri_494_enter ThreeBillboardsOutsideEbbingMissouri_494_back MollysGame_495_left MollysGame_495_right MollysGame_495_enter MollysGame_495_back PacificRimUprising_496_left PacificRimUprising_496_right PacificRimUprising_496_enter PacificRimUprising_496_back Rampage_497_left Rampage_497_right Rampage_497_enter Rampage_497_back JumanjiWelcometotheJungle_498_left JumanjiWelcometotheJungle_498_right JumanjiWelcometotheJungle_498_enter JumanjiWelcometotheJungle_498_back TheCommuter_499_left TheCommuter_499_right TheCommuter_499_enter TheCommuter_499_back ThePost_500_left ThePost_500_right ThePost_500_enter ThePost_500_back TheShapeofWater_501_left TheShapeofWater_501_right TheShapeofWater_501_enter TheShapeofWater_501_back TombRaider_502_left TombRaider_502_right TombRaider_502_enter TombRaider_502_back PitchPerfect3_503_left PitchPerfect3_503_right PitchPerfect3_503_enter PitchPerfect3_503_back AQuietPlace_504_left AQuietPlace_504_right AQuietPlace_504_enter AQuietPlace_504_back ReadyPlayerOne_505_left ReadyPlayerOne_505_right ReadyPlayerOne_505_enter ReadyPlayerOne_505_back PlayTrailer_506_right PlayTrailer_506_enter PlayTrailer_506_backShowImages_507_left ShowImages_507_right ShowImages_507_enter ShowImages_507_back Close_508_left Close_508_back PlayTrailer_511_right PlayTrailer_511_enter PlayTrailer_511_back ShowImages_512_left ShowImages_512_right ShowImages_512_enter ShowImages_512_back Close_513_left Close_513_back PlayTrailer_516_right PlayTrailer_516_enter PlayTrailer_516_back ShowImages_517_left ShowImages_517_right ShowImages_517_enter ShowImages_517_back Close_518_left Close_518_back PlayTrailer_521_right PlayTrailer_521_enter PlayTrailer_521_back ShowImages_522_left ShowImages_522_right ShowImages_522_enter ShowImages_522_back Close_523_left Close_523_back PlayTrailer_526_right PlayTrailer_526_enter PlayTrailer_526_back ShowImages_527_left ShowImages_527_right ShowImages_527_enter ShowImages_527_back Close_528_left Close_528_back PlayTrailer_531_right PlayTrailer_531_enter PlayTrailer_531_back ShowImages_532_leftShowImages_532_right ShowImages_532_enter ShowImages_532_back Close_533_left Close_533_back PlayTrailer_536_right PlayTrailer_536_enter PlayTrailer_536_back ShowImages_537_leftShowImages_537_right ShowImages_537_enter ShowImages_537_back Close_538_left Close_538_back PlayTrailer_541_right PlayTrailer_541_enter PlayTrailer_541_back ShowImages_542_leftShowImages_542_right ShowImages_542_enter ShowImages_542_back Close_543_left Close_543_back PlayTrailer_546_right PlayTrailer_546_enter PlayTrailer_546_back ShowImages_547_left ShowImages_547_right ShowImages_547_enter ShowImages_547_back Close_548_left Close_548_back PlayTrailer_551_right PlayTrailer_551_enter PlayTrailer_551_back ShowImages_552_left ShowImages_552_right ShowImages_552_enter ShowImages_552_back Close_553_left Close_553_back PlayTrailer_556_right PlayTrailer_556_enter PlayTrailer_556_back ShowImages_557_left ShowImages_557_right ShowImages_557_enter ShowImages_557_backClose_558_left Close_558_back PlayTrailer_561_right PlayTrailer_561_enter PlayTrailer_561_back ShowImages_562_left ShowImages_562_right ShowImages_562_enter ShowImages_562_back Close_563_left Close_563_back PlayTrailer_566_right PlayTrailer_566_enter PlayTrailer_566_back ShowImages_567_leftShowImages_567_right ShowImages_567_enter ShowImages_567_back Close_568_leftClose_568_back PlayTrailer_571_right PlayTrailer_571_enter PlayTrailer_571_back ShowImages_572_left ShowImages_572_right ShowImages_572_enter ShowImages_572_back Close_573_left Close_573_back PlayTrailer_576_right PlayTrailer_576_enter PlayTrailer_576_back ShowImages_577_leftShowImages_577_right ShowImages_577_enter ShowImages_577_back Close_578_left Close_578_back PlayTrailer_581_right PlayTrailer_581_enter PlayTrailer_581_back ShowImages_582_left ShowImages_582_right ShowImages_582_enter ShowImages_582_back Close_583_left Close_583_back PlayTrailer_586_right PlayTrailer_586_enter PlayTrailer_586_back ShowImages_587_left ShowImages_587_right ShowImages_587_enter ShowImages_587_back Close_588_left Close_588_back PlayTrailer_591_right PlayTrailer_591_enter PlayTrailer_591_back ShowImages_592_left ShowImages_592_right ShowImages_592_enter ShowImages_592_back Close_593_left Close_593_back PlayTrailer_596_right PlayTrailer_596_enter PlayTrailer_596_back ShowImages_597_left ShowImages_597_right ShowImages_597_enter ShowImages_597_back Close_598_left Close_598_back PlayTrailer_601_right PlayTrailer_601_enter PlayTrailer_601_back ShowImages_602_left ShowImages_602_right ShowImages_602_enter ShowImages_602_back Close_603_left Close_603_back ReadyPlayerOne_606_left ReadyPlayerOne_606_right ReadyPlayerOne_606_enter ReadyPlayerOne_606_back KyrsyTuftland_607_left KyrsyTuftland_607_right KyrsyTuftland_607_enter KyrsyTuftland_607_back AQuietPlace_608_left AQuietPlace_608_right AQuietPlace_608_enter AQuietPlace_608_back FilmStarsDontDieinLiverpool_609_left FilmStarsDontDieinLiverpool_609_right FilmStarsDontDieinLiverpool_609_enter FilmStarsDontDieinLiverpool_609_back AfterAuschwitz_610_left AfterAuschwitz_610_right AfterAuschwitz_610_enter AfterAuschwitz_610_back Winchester_611_left Winchester_611_right Winchester_611_enter Winchester_611_back Tully_612_left Tully_612_right Tully_612_enter Tully_612_back SherlockGnomes_613_left SherlockGnomes_613_right SherlockGnomes_613_enter SherlockGnomes_613_back Wildling_614_left Wildling_614_rightWildling_614_enter Wildling_614_back GameNight_615_left GameNight_615_right GameNight_615_enter GameNight_615_back TheDeathofStalin_616_left TheDeathofStalin_616_right TheDeathofStalin_616_enter TheDeathofStalin_616_back Taxi5_617_left Taxi5_617_right Taxi5_617_enter Taxi5_617_back IsleofDogs_618_left IsleofDogs_618_right IsleofDogs_618_enter IsleofDogs_618_back LadyBird_619_left LadyBird_619_right LadyBird_619_enter LadyBird_619_back Overboard_620_left Overboard_620_right Overboard_620_enter Overboard_620_back TruthorDare_621_left TruthorDare_621_right TruthorDare_621_enter TruthorDare_621_back YouWereNeverReallyHere_622_left YouWereNeverReallyHere_622_right YouWereNeverReallyHere_622_enter YouWereNeverReallyHere_622_back 12Strong_623_left 12Strong_623_right 12Strong_623_enter 12Strong_623_back Rampage_624_left Rampage_624_right Rampage_624_enter Rampage_624_back AvengersInfinityWar_625_left AvengersInfinityWar_625_right AvengersInfinityWar_625_enter AvengersInfinityWar_625_back PlayTrailer_626_right PlayTrailer_626_enter PlayTrailer_626_back ShowImages_627_left ShowImages_627_right ShowImages_627_enter ShowImages_627_back Close_628_left Close_628_back PlayTrailer_631_right PlayTrailer_631_enter PlayTrailer_631_back ShowImages_632_left ShowImages_632_right ShowImages_632_enter ShowImages_632_back Close_633_left Close_633_back PlayTrailer_636_right PlayTrailer_636_enter PlayTrailer_636_back ShowImages_637_left ShowImages_637_right ShowImages_637_enter ShowImages_637_back Close_638_left Close_638_back PlayTrailer_641_right PlayTrailer_641_enter PlayTrailer_641_back ShowImages_642_left ShowImages_642_right ShowImages_642_enter ShowImages_642_back Close_643_left Close_643_back PlayTrailer_646_right PlayTrailer_646_enter PlayTrailer_646_back ShowImages_647_left ShowImages_647_right ShowImages_647_enter ShowImages_647_back Close_648_left Close_648_back PlayTrailer_651_right PlayTrailer_651_enterShowImages_652_rightShowImages_652_left PlayTrailer_651_back ShowImages_652_enter ShowImages_652_back Close_653_leftClose_653_back PlayTrailer_656_right PlayTrailer_656_enter PlayTrailer_656_back ShowImages_657_leftShowImages_657_right ShowImages_657_enter ShowImages_657_back Close_658_left Close_658_back PlayTrailer_661_right PlayTrailer_661_enter PlayTrailer_661_back ShowImages_662_left ShowImages_662_right ShowImages_662_enter ShowImages_662_back Close_663_left Close_663_back PlayTrailer_666_right PlayTrailer_666_enter PlayTrailer_666_back ShowImages_667_left ShowImages_667_right ShowImages_667_enter ShowImages_667_back Close_668_left Close_668_backPlayTrailer_671_right PlayTrailer_671_enter PlayTrailer_671_back ShowImages_672_left ShowImages_672_right ShowImages_672_enter ShowImages_672_back Close_673_left Close_673_back PlayTrailer_676_right PlayTrailer_676_enter PlayTrailer_676_back ShowImages_677_left ShowImages_677_right ShowImages_677_enter ShowImages_677_back Close_678_left Close_678_back PlayTrailer_681_right PlayTrailer_681_enter PlayTrailer_681_back ShowImages_682_left ShowImages_682_right ShowImages_682_enter ShowImages_682_back Close_683_left Close_683_back PlayTrailer_686_right PlayTrailer_686_enter PlayTrailer_686_back ShowImages_687_left ShowImages_687_right ShowImages_687_enter ShowImages_687_back Close_688_left Close_688_back PlayTrailer_691_right PlayTrailer_691_enter PlayTrailer_691_back ShowImages_692_left ShowImages_692_right ShowImages_692_enter ShowImages_692_backClose_693_left Close_693_back PlayTrailer_696_right PlayTrailer_696_enter PlayTrailer_696_back ShowImages_697_left ShowImages_697_right ShowImages_697_enter ShowImages_697_back Close_698_left Close_698_back PlayTrailer_701_right PlayTrailer_701_enter PlayTrailer_701_back ShowImages_702_left ShowImages_702_right ShowImages_702_enterShowImages_702_back Close_703_left Close_703_back PlayTrailer_706_right PlayTrailer_706_enter PlayTrailer_706_back ShowImages_707_left ShowImages_707_right ShowImages_707_enter ShowImages_707_back Close_708_left Close_708_back PlayTrailer_711_right PlayTrailer_711_enter PlayTrailer_711_back ShowImages_712_left ShowImages_712_right ShowImages_712_enter ShowImages_712_back Close_713_left Close_713_back PlayTrailer_716_right PlayTrailer_716_enter PlayTrailer_716_back ShowImages_717_left ShowImages_717_right ShowImages_717_enter ShowImages_717_back Close_718_leftClose_718_back PlayTrailer_721_right PlayTrailer_721_enter PlayTrailer_721_backShowImages_722_left ShowImages_722_right ShowImages_722_enter ShowImages_722_back Close_723_leftClose_723_back

Fig. 5: The Mega-model with Sub-models Highlighted for the CineMup Smart TV app

in Fig. 5. The following section shows the test generation and execution algorithm for the sub-models.

V. THETESTGENERATIONSTRATEGY

To generate the test cases for the smart TV app from the sub-model graph, we introduce a testing criteria, All Edge Coverage, that requires to cover all the edges between the nodes to execute all transitions from a widget to another. A test case t is a sequence of nodes n1, n2, .., nn, with a sequence of edges e1, e2, .., en−1, where ei= (ni,ni+1), ei ∈ E, ni∈ N . Further on, n1= ns, and nn ∈ Ne. The Test Set T is a set of test cases. T achieves the All Edge Coverage criterion if each edge e ∈ E is traversed at least one by a test case in T . The Algorithm 2 shows the pseudocode of the used test generation algorithm.

Algorithm 2: The test generation algorithm from the sub-model

Input: A sub-model Graph (G) Output: The test set T

1 T ← ∅, COV ER ← ∅, ALL ← ∅

2 for e ∈ E do // build the COV ER set with all the edges to be covered

3 let n1and n2be the head and tail of e, where {n1, n2} ∈ N , e ∈ E; 4 COV ER ← COV ER ∪ {(n1, e, n2)}

5 for c ∈ COV ER do // build all the useful paths that can be traversed

6 Let z be a path in G starting with ns∈ N and ending with any ne∈ Ne

that covers c;

7 ALL ← ALL ∪ {z};

8 while COV ER 6= ∅ do // select the best paths as tests 9 best ← a path from ALL, which contains maximal number of elements

from COV ER as its sub-paths ;

10 T ← T ∪ best;

11 Let x be the set of edges of best;

Figure

Fig. 2: Representation of the states in the Fig. 1a with the right and wrong state transitions
Fig. 5: The Mega-model with Sub-models Highlighted for the CineMup Smart TV app
Fig. 7: Testing Framework for Smart TV apps
TABLE II: Apps used in the case study
+3

References

Related documents

[60] Karim Chatti and Kyong K. SAPSI-M: Computer program for analysing asphalt concrete pavements under moving arbitrary loads, pages 88–95. Trans- portation Research Record

Comparison of the adaptive filtering used in this study (middle column) with an anisotropic diffusion scheme from [13] (right column) with a slice from the original data (left

Syftet med denna studie är att undersöka eventuella samband mellan ungdomar med olika grad och typer av smärta och deras sociala fungerande, detta med hänvisning till upplevd

strömkraftverk hinner lösa de problem som kvarstår, se 3.1.5, innan de kan vara en del av Sveriges elproduktion är svårt att säga men 40 år är inte en lång tid i dessa

Genom att undersöka hur anhörigkonsulenter tillämpar stöd till anhöriga i form av hälso- främjande arbete, kan samhället ta del av nya fynd för att skapa möjligheter

There are five criteria that used to demonstrate results for approach. of test cases: This is used to indicate that how many test cases are generated after applying the approach. b)

För den aktuella studien formulerades fem utmaningar. Alla fem utmaningar varierade i målbeteende och var placerade i prototypens sida för Utmaningar. Utmaningarna

We show how transmission without channel state information can be done in massive mimo by using a fixed precoding matrix to reduce the pilot overhead and simultaneously apply