Sobre o ETAP-Pro

A execução de testes automáticos tem vindo gradualmente a assumir um papel cada vez mais importante nas equipas de quality assurance (QA) das organizações, possibilitando:

  • A repetição (sem esforço) da execução dos casos de teste agilizando, por exemplo, os testes de regressão a cada nova versão ou release do sistema em teste;
  • A redução do tempo de execução de testes complexos, eliminando o tempo como fator de restrição ao universo dos testes executados;
  • A eliminação de tarefas humanas repetitivas de preparação, prévias à execução dos testes, sujeitas a falhas;
  • O aumento da cobertura dos testes aos sistemas;
  • A criação expedita da massa de dados necessária à execução de testes manuais.

Atendendo a estes benefícios a automação de testes deverá claramente ser sempre tida em consideração em qualquer iniciativa de QA. No entanto, as iniciativas de automação tem algumas dificuldades intrínsecas que fazem com que muitas destas iniciativas não avancem ou não cheguem a bom porto.

 

Ao longo de mais de 15 anos de prestação contínua de serviços de qualidade de software em empresas de grande porte e em segmentos de elevada complexidade como a banca e as telecomunicações, a Link tem participado em diversos projetos de automação de testes e constatado quais os problemas e necessidades mais comuns dos seus clientes em relação à automação (e que este projeto irá procurar mitigar ou colmatar):

1 Necessidade de assegurar a qualidade de processos de negócio ponta a ponta:

Atualmente as organizações dependem cada vez mais de sistemas informatizados, que suportam os seus processos vitais de negócio, sendo por isso críticos ao seu bom funcionamento. Em paralelo, são cada vez mais frequentes e profundas as mudanças de contexto a nível do negócio, que obrigam as áreas de TI das empresas a reestruturar constantemente aos seus sistemas, potenciando o risco de ocorrência de falhas ao longo do processo, dada a elevada e crescente complexidade dos mesmos.

Atendendo a estas circunstâncias a preocupação das áreas de QA das organizações tem-se vindo a voltar para a garantia da qualidade dos processos de negócio como um todo, em detrimento de um foco apenas restrito à qualidade de cada projeto ou sistema individualmente. Desta forma o campo de atuação das áreas de QA tem vindo a ser estendido para que estejam cada vez mais comprometidas com a qualidade global dos processos de negócio.

No entanto este objetivo é ainda hoje é difícil de assegurar pelas equipas de QA atendendo ao elevado número de fluxos passiveis de serem testados em cada processo, que inviabilizam a execução de testes manuais. A criação de baterias de testes de regressão automatizados aos processos de negócio ajudaria a alcançar este objetivo, mas a sua implementação é complexa tendo em conta o enorme leque de aplicações e sistemas de diferentes tecnologias transversais aos processos de negócio.

2  Limitação das ferramentas de automação disponíveis no mercado:

As ferramentas de automação de testes existentes atualmente no mercado estão tendencialmente vocacionadas para um único tipo de tecnologia (Ex: Aplicações Web, Mobile, Web services, mainframe, SAP), limitando a automação de testes que abarquem sistemas baseados em diferentes tipos de tecnologias.

Isto obriga muitas vezes a recorrer a mais do que uma ferramenta para automatizar os diversos passos de um teste o que leva a uma gestão dos testes automatizados complexa, não dando resposta cabal e completa às necessidades das empresas e impossibilitando uma gestão de testes transversal aos processos de negócio.

 

Desta insuficiência (ausência de uma plataforma que possibilite automatizar e gerir os testes de todo um processo de negócio), advêm uma série de problemas graves para as organizações, a que é urgente dar resposta, como a falta de confiança na entrada em produção das aplicações/sistemas, incumprimento do prazo de “time to market”; insatisfação do cliente final e até mesmo prejuízos financeiros.

 

3 Necessidade de recursos especializados.

A necessidade de recursos com valências técnicas avançadas é outra das dificuldades recorrentes que afetam, e por vezes inviabilizam, as incitavas de automação de testes funcionais.

A elevada maioria das ferramentas de automação de testes existentes implicam, da parte do utilizador, conhecimentos de programação e o domínio da sintaxe de uma linguagem. Isto leva a que os colaboradores de negócio (que tipicamente não possuem este tipo de conhecimentos), não possam utilizar de forma autónoma estas ferramentas.

Esta dependência por parte dos colaboradores de negócios dificulta o processo de automação, que assim requer sempre a coordenação entre o negócio (que sabe o que deve ser testado) e os colaboradores técnicos (que dominam as ferramentas), o que nem sempre é possível viabilizar.

 

4 Nível de manutenção elevado

Por fim outro dos problemas que frequentemente surgem nas iniciativas de automação é a dificuldade em manter atualizadas as baterias de testes automatizados.

A constante dinâmica do negócio das organizações implica alterações frequentes aos sistemas que as sustentam. Como consequência destas alterações muitos dos testes automatizados deixam de funcionar ou até mesmo de fazer sentido, e necessitam de ser corrigidos ou (re)automatizados.

Este problema torna-se ainda mais agudo quando:

  • Não existe uma noção clara do que foi alterado ao nível dos sistemas, e dos impactos que essas alterações têm ao nível dos testes automatizados.
  • Os testes são automatizados com recurso a scripts lineares, que simulam fluxos funcionais extensos e assim mais sujeitos a ficarem desatualizados sempre que surge uma alteração funcional.
  • Não existe um processo fluido de comunicação entre o negócio (cintes das alterações e dos novos requisitos funcionais) e os técnicos (que têm a capacidade de alterar os requisitos)

 

Objetivos

O desígnio deste projeto é desenvolver uma plataforma (ETAP-Pro – End-to-end Test Automation Platform for Processes) que permita gerir de forma integrada a automação de testes a processos de negócio complexos que assentem nos diversos sistemas, aplicações e serviços existentes uma organização (Ex: SAP, CRM, Billing, Webservices, mainframe, aplicações moveis, etc..….).

Os principais objetivos que se visam atingir com o desenvolvimento da ETAP-Pro são os seguintes:

  1. Facilitar a automação de testes ponta a ponta aos diversos fluxos de um processo de negócio, disponibilizando mecanismos que permitam automatizar testes de forma agnóstica às aplicações e sistemas em que assenta o processo e respetivas tecnologias.
  2. Possibilitar aos utilizadores uma gestão integral dos testes automatizados permitindo registar na plataforma os diversos testes do processo (ao Happy path e fluxos alternativos), sistematizando todos os seus passos e resultados expectáveis. Será também possível guardar o resultado das execuções (e gravar o historial das execuções).
  3. Permitir a automação de testes por parte de colaboradores de negócio (não técnicos e sem conhecimentos de programação) através da criação na plataforma de uma metalinguagem com uma sintaxe simples (próxima da linguagem natural). Esta metalinguagem permitirá criar uma abstração entre os testes automatizados e os componentes de automação (que possibilitam a execução dos testes nas diversas aplicações) dando do autonomia ao negócio para criar os seus próprios testes automáticos.
  4. Possibilitar uma manutenção mais ágil dos testes automatizados através de uma visão de 360º das relações de cada teste automatizado com o processo (e respetivas atividades), aplicações, sistemas e serviços a que o teste diz respeito, permitindo assim conhecer os impactos que eventuais alterações a cada um destes elementos poderá ter na bateria de teste automatizada. Está visão 360º será suportada por um repositório (uma base conhecimento) que será automaticamente atualizada sempre que um testes a um processo for criado (ou executado) ou o próprio processo for alterado e importado na plataforma.
  5. Garantir a independência dos testes automatizados face aos motores de automação (software que permite a execução dos testes automatizados nos diferentes tipos de sistemas). A metalinguagem desenvolvida na plataforma e utilizada na automação dos testes irá permitir criar uma abstração relativamente aos motores de automação utilizados que possibilitará alterar estes motores, sem que isso implique que o teste tenha de ser totalmente (re)automatizado.
  6. Assegurar uma maior resiliência dos testes automatizados face a eventuais alterações funcionais através da decomposição funcional dos testes (em componentes de automação atómicas), evitando a construção de scripts lineares. Desta forma os testes automatizados ficarão menos sujeitos a desatualizações aquando de uma alteração funcional, sendo apenas necessário proceder-se à reconstrução do componente de automação impactado pela alteração funcional. As relações entre cada componente de automação, e os testes onde serão utilizadas bem como os processos e atividades do processo a que dizem respeito serão também registadas na base de conhecimento da plataforma e visíveis aos utilizadores.

O ETAP-Pro será portanto uma ferramenta de automação vocacionada não exclusivamente a utilizadores com um perfil técnico (como o são tradicionalmente as ferramentas de automação), mas sim uma ferramenta com a capacidade de agregar ao processo de automação de testes perfis mais funcionais, e que irá possibilitar às áreas de qualidade das organizações assegurar uma metodologia de automação de testes mais sustentada, evitando o afastamento de elementos chaves por falta de conhecimentos técnicos, ou a inadequação dos testes por falta de conhecimentos funcionais.

Para além de garantir uma maior cooperação entre os vários perfis comprometidos com a qualidade dos processos de negócio, os mecanismos de resiliência a alterações e manutenção dos casos de testes que a ETAP-Pro irá disponibilizar, irão também garantir às organizações um aumento do retorno do investimento em automação de testes, algo que as ferramentas atualmente disponíveis no mercado tipicamente não asseguram, levando a que muitas das iniciativas de automação sejam abandonadas a meio.

 

Conceito e solução proposta

A ETAP-Pro disponibilizará aos seus utilizadores um conjunto de funcionalidades que permitirão gerir as baterias de testes automatizados a processos de negócio desde a criação, automação e manutenção de casos de testes, até à sua execução e visualização dos resultados.

A ETAP-Pro irá estar organizada nos seguintes grandes módulos funcionais:

  • Módulo de gestão de testes: Onde serão disponibilizadas todas a funcionalidades relativas à importação de processos na plataforma, à organização das baterias de testes e à criação, especificação e planeamento de casos de teste dos processos de negócio.
  • Módulo de automação de casos de teste: Onde será efetuada a criação das componentes de automação e a automação dos casos de testes assim como a associação dos passos dos casos de testes às atividades dos processos importados na plataforma.
  • Módulo de execução de testes: Onde será permitido executar os testes automatizados na plataforma, visualizar os resultados das execuções, assim como as atividades dos processos que foram testadas com sucesso, insucesso ou não testadas.
  • Módulo de suporte: Conjunto de funcionalidades transversais à plataforma relacionadas com a atualização e visualização da informação da base de conhecimento e que irão auxiliar na criação e manutenção dos testes dos casos de testes automatizados.

Abaixo resumem-se as funcionalidades previstas para cada módulo da ETAP-Pro:

  • Módulo de gestão de testes:
    • Criação de baterias e casos de testes: A ETAP-Pro irá permitir registar para cada processo que se pretenda testar uma bateira de testes (Test Suite), e os respetivos testes. No ato da criação de cada teste o utilizador poderá ainda especificar (manualmente em texto) os respetivos passos e resultados expectáveis de forma a facilitar no futuro a leitura e compreensão dos objetivos dos teste.
    • Importação de processos: A ETAP-Pro irá permitir ao utilizador importar a descrição de um processo do negócio no formato XPDL e visualizar graficamente o processo na plataforma (em notação BPMN). O processo importado ficará automaticamente associado uma test suite onde serão especificados os respetivos casos de testes.
    • Gestão de requisitos e defeitos: Para além das baterias de testes, a ETAP-Pro permitirá também a gestão dos requisitos de um processo assegurando a rastreabilidade entre os requisitos e os casos de testes que o validam. De igual forma a ETAP-Pro permitirá a gestão dos defeitos associados aos casos de testes executados sem sucesso garantindo a rastreabilidade entre os mesmos e os casos de testes que motivaram a sua deteção.
  • Módulo de automação de casos de teste:
    • Automação de casos de testes: Para cada caso de teste registado na ETAP-Pro será possível ao utilizador proceder à sua automação. Para tal a plataforma disponibilizará ao utilizador um editor onde este poderá, através de uma metalinguagem própria da plataforma, coreografar uma serie de componentes de automação (building blocks já previamente criados na plataforma) que permitirão automatizar o teste pretendido, e assim simular um fluxo do processo de negócio. A metalinguagem disponibilizada pela ETAP-Pro terá uma sintaxe simples e intuitiva, próxima da linguagem natural, e permitirá que colaboradores de negócio ou a testadores funcionais automatizarem os seus próprios testes sem necessidade de dominarem as linguagens de programação nativas dos motores de execução de testes automáticos ou qualquer outro tipo de conhecimentos técnicos avançados.
    • Criação de componentes de automação: A ETAP-Pro irá disponibilizar aos utilizadores um módulo para a criação e gestão dos componentes de automação referidos no ponto anterior. Um componente de automação trata-se de um artefacto (building block) que automatiza um teste (ou um passo de um teste) a uma etapa de um processo de negócio. Será com base nestes componentes de automação que utilizadores não técnicos poderão compor (ou coreografar) testes aos diferentes fluxos de um processo de negócio. A criação destes componentes de automação será possível de executar na plataforma (por utilizadores com um perfil mais técnico), que terá a capacidade de integrar as bibliotecas dos respetivos motores de execução de testes (Ex: Selenium, Apium, SoapUI, Junit) necessários para a sua criação e posterior execução no seio de um caso de teste.
    • Associação das etapas de um processo aos passos de um caso de teste: Após a automação de um caso de teste, a plataforma irá permitir que o utilizador associe os passos do caso de teste (tipicamente executados por uma componente de automação) às respetivas etapas do processo de negócio. Esta associação (realizada através de uma interface gráfica) permitirá que aquando da execução de um caso de testes se conheça quais as etapas/atividades de um processo de negócio foram testadas com sucesso e as que não foram.

 

  • Módulo de execução dos casos de testes: Após concluída a automação de um fluxo o utilizador poderá correr o teste automatizado e visualizar os resultados da sua execução. Em caso de insucesso na execução de um caso de teste a plataforma irá sinalizar (por meio de representação BPMN) quais as etapas ou atividades do processo que foram executadas (ou testadas) com sucesso, a etapa que não foi executada com sucesso (passo onde ocorreu um erro) e as que não chegaram a ser executadas. Para além da sinalização da etapa onde o teste não foi bem-sucedido, a ETAP-Pro apresentará informação relativa ao teste falhado, indicando qual o componente de automação que não foi executado com sucesso, o resultado obtido e o resultado esperado (que não foi atingido).

 

  • Módulo de suporte: A ETAP-Pro terá integrado um repositório (ou base de conhecimento) que permitirá administrar de forma mais eficaz todos os conceitos manipulados pela própria plataforma (casos de testes, processos, etapas dos processos, componentes de automação, etc..) e irá registar de forma automática as relações criadas entre todos estes conceitos. Por exemplo, quando um determinado componente de automação for utilizado na automação de um caso de testes, que por sua vez testa um determinado processo, todas estas relações serão automaticamente registadas pela plataforma no meta-modelo do repositório. Estas relações serão visíveis ao utilizador através da consulta de diversos mapas disponíveis na plataforma que auxiliarão quer na automação de novos casos de testes, quer na manutenção dos casos de testes já automatizados. A criação de novos casos de testes será mais simples e acessível para utilizadores não técnicos, pois permitirá no ato da automação consultar os componentes de automação que lhe são necessários, e conhecer os processos e atividades do processo que esse componente já testa. A manutenção dos casos de testes automatizados será facilitada pois será sempre possível conhecer quais os casos de teste afetados caso um processo seja alterado. Da mesma forma, caso uma determinada etapa de um processo seja modificada, é possível conhecer qual o componente de automação afetado e que eventualmente terá de ser refeito.