Araújo et al. (2011) descrevem a trajetória percorrida no desenvolvimento da suíte de testes de conformidade para o Ginga-NCL. No artigo, são discutidas as peculiaridades do desenvolvimento dos testes de conformidade para sistemas projetados para linguagens declarativas, em particular a encontrada para o middleware Ginga-NCL baseada em XML. O trabalho de Araújo et al. (2011) faz uma análise sobre a dificuldade de se implementar testes unitários em ambiente declarativo NCL e da a sua natureza integrada. O trabalho também discorre sobre definições de testes de conformidade e como eles se aplicam ao contexto de linguagens baseadas em XML. Por fim, considera que para testar as aplicações
devem ser considerados vários fatores como ambiente e formas de execução dos testes tais como manual e automatizada. O artigo destaca uma metodologia semi-automatizada, que não é detalhada, e foi desenvolvida através de um núcleo que utiliza a própria NCL e a a linguagem de script Lua para validar a si própria de maneira reflexiva. O núcleo consiste de uma aplicação NCL responsável por iniciar e parar todas as implementações dos casos de teste e também por verificar o estado dos componentes presentes em cada caso de teste. Ainda nesse trabalho é reforçado que a maioria dos testes é realizado de forma manual ou semi-automática e que esforços para automatizar todo o processo são válidos mas ainda custosos, por exemplo, para verificar a posição das imagens na tela.
Pinheiro et al. (2012) apresentaram uma nova abordagem para os testes de confor- midade do Ginga-NCL através do desenvolvimento de uma metodologia baseada em um núcleo NCL/Lua para execução e controle dos testes e um módulo de software dependente do sistema em verificação que interagem com o núcleo NCL/Lua para gerar eventos e obter informações. Os resultados mostraram que através dessa abordagem foi possível avaliar uma boa parte da especificação Ginga-NCL com alto grau de automatização e tempo reduzido de execução. O trabalho faz um comparativo de que é uma abordagem mais interessante do que a apresentada por Araújo et al. (2011) sendo uma extensão da mesma. Nesse trabalho foi possível capturar eventos do usuário, interagindo com um injetor de eventos em Lua. É uma abordagem muito semelhante a que a empresa MOPA adota, pois o servidor também consegue fazer a captura de imagens e as mesmas vão para um servidor e podem ou não serem analisadas automaticamente. A diferença básica entre os estudos de Araújo et al.(2011) e Pinheiro et al. (2012) da metodologia proposta na MOPA é que a empresa desenvolveu uma ferramenta que realiza os testes funcionais através da implementação do código fonte do middleware. Os trabalhos relacionados citados incorporam a implementação dos testes no ambiente declarativo. Isso facilita a sua portabilidade, pois as aplicações NCL podem ser testadas em qualquer plataforma em que o middleware esteja implementado. A metodologia da MOPA, por outro lado, implementou os testes na linguagem nativa em que o middleware foi desenvolvido. Por um lado, falhas fatais podem ser vistas no sistema através dessa abordagem, por outro, a portabilidade fica comprometida quanto ao ambiente em que os testes são executados. O trabalho proposto nessa dissertação também agrega uma metodologia de avaliação de testes de sistema, que pode ser adaptada para as duas abordagens apresentadas.
Caroca(2010) propôs um processo de teste de software focado no núcleo comum do middleware Ginga Common Core. Esse processo define um roteiro básico de testes a serem adotados, fornecendo subsídios para evolução controlada e gradual da qualidade dos componentes do middleware do sistema brasileiro de TV Digital. Abre caminho para processos automatizados de teste de software para TV digital, porém não avalia a efetividade da suíte de teste e sim do processo. O trabalho dessa pesquisa de mestrado não elabora nenhum processo formal de teste e sim uma abordagem para avaliar a efetividade
da suíte de teste de sistema, mais precisamente no contexto do middleware Ginga atrelada aos testes de conformidade do fórum SBTVD.
Alves et al.(2015) realizou um trabalho para avaliar o processo de desenvolvimento do processo de testes na plataforma Ginga, focando nos testes de sistema para o Ginga- NCL. O trabalho é uma abordagem das melhores práticas e estratégias de processos de teste aplicadas ao middleware Ginga. Não faz referência com os testes do fórum SBTVD. Essa abordagem se assemelha com o que era praticado pela empresa MOPA nos testes manuais vistos na seção (1.1.1). Existe uma qualidade atrelada no processo porém não é o que se propõe o trabalho dessa pesquisa que é de automatizar testes do fórum SBTVD e verificar se a automatização atende critérios de efetividade em suítes de teste de sistema.
Além disso, trabalhos no desenvolvimento de testes para o middleware Ginga também foram citados Araújo et al. (2011), Pinheiro et al.(2012),Caroca(2010) e o que mais se aproximou desse trabalho foram o de Araújo et al. (2011) e Pinheiro et al. (2012), que realizaram trabalhos para criar suítes de testes que atendessem a conformidade de linguagens declarativas NCL, principalmente voltadas ao Ginga-NCL. Entretanto esses trabalhos se mostraram limitados ao funcionamento do middleware, não permitindo que se observassem falhas de característica impeditiva ao funcionamento do próprio middleware em algum dispositivo. Além do mais o trabalho nesse pesquisa de mestrado está voltado a avaliação da suíte de teste do fórum SBTVD e para isso considera uma abordagem de teste imperativa utilizada pela empresa MOPA de característica funcional e sistêmica. O processo, no entanto pode ser utilizado para outros tipos de teste de sistema.
Este trabalho, portanto, teve a proposta de agregar, além da automatização dos testes de sistema de conformidade com a norma ABNT do fórum SBTVD, uma avaliação dessa suíte baseada nas métrica de cobertura de código. A contribuição desse trabalho foi adaptar um processo que tipicamente tem bons resultados em nível unitário para utilizar em nível de sistema.
7 Considerações Finais
Essa pesquisa buscou avaliar e efetividade de uma suíte de teste de sistema utilizando a métrica de cobertura de linhas no contexto do middleware Ginga. A suíte de teste em questão foi a suíte de teste de conformidade do fórum SBTVD, utilizada pela empresa para validar as especificações do middleware de acordo com as normas da ABNT.
Este trabalho é o resultado do acompanhamento e consequente melhoria do processo de teste de software da empresa MOPA Embedded Systems. Inicialmente, o processo de teste realizado com a suíte de conformidade do Ginga era unicamente manual e dessa forma demandava tempo e recursos da empresa bem como a sua qualidade não podia ser aferida com acuidade. Esforços foram realizados pela empresa no caminho da automatização dos testes, onde foi possível constatar uma melhoria no tempo de execução dos testes em ambiente desktop. Os testes automatizados puderam auxiliar todo o processo no sentido de detectar falhas de regressão no middleware. Julgou-se, então, necessário realizar uma avaliação na suíte de teste automatizada para verificar o quão efetiva a mesma estava sendo em auxiliar a equipe de desenvolvimento em detectar falhas durante o ciclo de vida de desenvolvimento e se esse processo poderia ser ainda melhorado.
Para realizar essa avaliação foi proposta a análise da cobertura de código da suíte de teste de conformidade seguida de um estudo exploratório que buscou investigar e compreender através de entrevistas semiestruturadas e questionários o processo de teste de software da empresa e possíveis razões pelas quais o resultado da cobertura não estava atendendo níveis satisfatórios. Por fim, foram realizados testes exploratórios para validar pontos levantados na fase de estudo exploratório.
De maneira geral, foi possível estabelecer algumas linhas conclusivas a respeito do processo de teste de software praticado na empresa, da efetividade da suíte de teste do fórum SBTVD em cobrir o código do Ginga e das limitações encontradas na utilização da ferramenta screen-tester implementada pela empresa para automatizar os testes. As próximas seções descrevem em detalhes as descobertas encontradas. Por fim é apresentada a contribuição organizacional que essa pesquisa trouxe para a empresa e são sugeridos trabalhos futuros que podem ser derivados desse projeto de pesquisa e que serão de grande utilidade para a qualidade dos testes automatizados dentro da empresa.