TESTES FUNCIONAIS AUTOMATIZADOS COM CYPRESS - Victor Rodrigues Sales, Mario; Santos, Ismayle de Sousa; Maria de Castro Andrade, Rossana (Encontros Universitários da UFC, 2021)
Para validar um produto, que dentro do contexto de computação trata-se de um sistema de software, é necessário que haja uma série de testes com o intuito de verificar se o sistema em questão está funcionando corretamente. Esses testes variam desde testes unitários, testes de Application Programming Interface (API), testes de integração e testes funcionais. Neste cenário, durante um período do estágio, foram realizados testes funcionais, que são testes relacionados às funcionalidades do sistema de forma automatizada. Umas das ferramentas utilizadas foi o Cypress, disponível no NodeJS e muito prático, pois ele funciona através de arquivos de testes que devem ser gerados dentro da pasta “integration” nomeados como “<nome>.spec.js”. Porém, apesar da simplicidade, alguns passos precisam ser seguidos para configuração do ambiente. Primeiro, o comando “npm init” para iniciar um projeto node, posteriormente, “npm install cypress” para instalar as dependências necessárias e, por último, o Cypress precisa ser executado uma primeira vez para que a pasta “integration” seja criada juntamente com os demais arquivos. Todavia, ao tentar executar o Cypress sem a devida configuração inicial o comando pode ser bloqueado. Contudo, para que não haja erro, o arquivo “package.json” precisa ser editado na parte de scripts, adicionando na linha seguinte "cypress:open": "cypress open", permitindo que o Cypress possa ser executado sem erros com o comando “npm run cypress:open”. Uma vez que os arquivos foram criados, os testes já podem ser executados, iniciando o Cypress, que abre uma janela com opções para escolher quais testes executar e em qual navegador, com a possibilidade de usar os navegadores Chrome, Firefox, Edge e Electron. A experiência de utilizar a ferramenta foi bastante satisfatória por se tratar de uma ferramenta já disponível no NodeJS e proporcionou uma experiência maior para o aluno nas atividades de automação de testes.