• No results found

Coordination and commitment

In document National strategy and policy options (sider 63-66)

6. An´alise dos resultados obtidos.

Figura 4.: Processo de MBT do TOM Generator

Nas pr ´oximas sec¸ ˜oes pretende-se explorar detalhadamente o processo definido na Figura

4, com ˆenfase nos detalhes t´ecnicos das validac¸ ˜oes e mutac¸ ˜oes.

3.1 m o d e l a c¸ ˜ao do sistema

O modelo do sistema ´e uma parte crucial no processo de testes baseados em modelos. No caso da interfaces gr´aficas o modelo exprime os aspectos chaves da interac¸˜ao do utilizador

com estas (Paterno,2000).

O sistema ´e definido com recurso a m´aquinas de estado, que, neste caso, representam a interac¸˜ao e navegac¸˜ao do utilizador na interface gr´afica de uma aplicac¸˜ao web. Assim, cada p´agina web ´e representada atrav´es de um estado. Em cada estado podem existir transic¸ ˜oes para novos estados, correspondentes a cliques em links para outras p´aginas, formul´arios onde o utilizador preenche com dados as informac¸ ˜oes solicitadas na p´agina e validac¸ ˜oes quando se pretende validar a existˆencia de certos elementos na p´agina web.

3.1.1 Elementos principais da m´aquina de estados

As m´aquinas de estados s˜ao modelos utilizados recorrentemente na engenharia de software. S˜ao vistas como uma forma ´util de pensar sobre o comportamento dos sistemas, desde a

fase inicial do desenho at´e ao teste de software (Belli,2001).

Para modelar o comportamento daGUIvamos recorrer aState Chart XML (SCXML), uma

3.1. Modelac¸˜ao do sistema 20

de forma limpa e organizada. Os elementos principais deSCXMLque s˜ao utilizados para

descrever a interac¸˜ao e validac¸˜ao na interface gr´afica s˜ao os seguintes:

<STATE>

´E o elemento principal do modelo e representa um estado. Os pr´oximos elementos, a apresentar, existem dentro deste elemento. Representa habitualmente uma p´agina web. Quando se est´a a preencher um formul´ario na interface gr´afica utiliza-se este elemento dentro do atual estado, criando-se assim um sub-estado.

<TRANSITION>

´E utilizado quando estamos perante um evento de transic¸˜ao entre estados. Este evento pode ter origem em cliques de links, bot ˜oes ou submiss˜ao de formul´arios. Dentro deste elemento podem existir os seguintes elementos, step, submit e error, sendo expli- cada a seguir a necessidade de utilizac¸˜ao de cada um.

<STEP>

´E utilizado quando ´e necess´ario mais do que uma ac¸˜ao para atingir um deter- minado estado. Por exemplo, quando ´e necess´ario abrir a barra de navegac¸˜ao e clicar em um link que nos leva para uma nova p´agina web. O step nesta situac¸˜ao acontece porque ´e necess´ario primeiramente haver um clique para abrir o menu.

<SUBMIT>

Quando se est´a a preencher um formul´ario s´ıncrono ´e necess´ario no final fazer a submiss˜ao ao servidor que nos leve a uma nova p´agina. Este elemento define qual o estado para o qual se vai transitar depois da submiss˜ao.

<ERROR>

A framework tem a particularidade de criar e aceitar mutac¸ ˜oes no preenchimento de formul´arios, tal como explicado mais `a frente. Caso a mutac¸˜ao escolhida interfira com o decorrer normal do teste ´e necess´ario definir neste elemento o estado para o qual se vai transitar.

<SEND>

Este elemento ´e utilizado para representar a introduc¸˜ao de informac¸˜ao do utilizador no preenchimento dos formul´arios (inputs).

<ONENTRY>

Utilizado para representar uma validac¸˜ao na entrada de uma p´agina web, isto ´e, na entrada de um estado.

<ONEXIT>

´E similar ao elemento anterior, mas a validac¸˜ao ocorre quando se est´a a sair de um determinado estado.

3.1. Modelac¸˜ao do sistema 21

Estruturalmente, os elementos descritos anteriormente podem ser combinados tal como

ilustrado no exemplo3.1, onde ´e percet´ıvel a estrutura hier´arquica da m´aquina de estados.

Nesta estrutura ainda n˜ao est˜ao representados os atributos de cada elemento.

< s t a t e ... > < s t a t e ... > < s e n d ... / > < t r a n s i t i o n ... > < s u b m i t ... / > < e r r o r ... / > < / t r a n s i t i o n > < o n e x i t ... / > < / s t a t e > < t r a n s i t i o n ... / > < o n e n t r y ... / > < o n e x i t ... / > < / s t a t e >

Listing 3.1: Exemplo da estrutura dos elementos.

3.1.2 Atributos dos elementos da m´aquina de estados

Como anteriormente referido, por si s ´o os elementos da m´aquina de estados n˜ao conseguem transmitir informac¸˜ao sobre o tipo de ac¸ ˜oes que o utilizador executa ou deve executar na interface gr´afica. Como tal, ´e necess´ario recorrer a atributos para definir essa informac¸˜ao. Nas tabelas que se seguem iremos encontrar os atributos que fazem parte de cada elemento,

e quando e como devem ser utilizados. A Tabela1, apresenta os atributos do elemento state,

as Tabelas 2 e 3, os atributos do elemento transition, a Tabela4, os atributos do elemento

send, e, finalmente, na Tabela5, s˜ao apresentados os atributos dos elementos onentry e onexit.

<state id=”” type=””> ...

</state>

id

Atributo obrigat ´orio que ´e utilizado para identificar cada estado.

type

Atributo utilizado quando se est´a a preencher um formul´ario na interface gr´afica, tomando o valor ”form”. Caso contr´ario, n˜ao ´e definido.

3.1. Modelac¸˜ao do sistema 22

<transition id=”” label=”” /> Para transic¸ ˜oes simples entre p´aginas.

id

Atributo obrigat ´orio que se utiliza como identificador da ac¸˜ao.

target O id do estado para o qual se pretende transitar. Tabela 2.: Tabela com os atributos do elemento transition.

<transition type=”” label=”” > <submit target=””/>

<error target=”” /> </transition>

G´enero de transic¸˜ao que ´e utilizado quando se est´a a modelar o preenchimento de um formul´ario na interface gr´afica. O elemento error ´e opcional, e usa-se em caso de mutac¸˜ao de falha.

type

Serve para identificar o tipo de transic¸˜ao da p´agina web, depois da submiss˜ao do formul´ario. Assume o valor de ”form” quando se preenche um formul´ario normal, ”alert” quando surge uma alert window e ”ajax” para eventos ass´ıncronos.

label

Atributo utilizado para representar identificar a ac¸˜ao de submiss˜ao de um formul´ario.

target O id do estado para o qual se pretende transitar. Tabela 3.: Tabela com os atributos do elemento transition nos formul´arios.

<send label=”” type=””

element=”” /> Correspondem `a introduc¸˜ao de informac¸˜ao nos formul´arios.

label ´E utilizado como identificador da ac¸˜ao.

type

Indica se a informac¸˜ao a ser introduzida no formul´ario ´e obrigat ´oria ou opcional. ”required’ ou ”optional” s˜ao os valores poss´ıveis.

element

Este atributo ´e somente utilizado quando a informac¸˜ao que se vai adicionar ao formul´ario ´e do tipo checkbox ou

selectbox, sendo estes os valores poss´ıveis de entrada. Tabela 4.: Tabela com os atributos do elemento send.

In document National strategy and policy options (sider 63-66)