A qualidade tem sido, e continua a ser, uma preocupação constante da Sinfic ao longo do tempo. É uma empresa certificada ISO 9001:2000 desde Junho de 2004 e obteve o reconhecimento CMMI nível dois (modelo Staged) por parte do ESI (European Software Institute) em Outubro de 2005 para as suas unidades de negócio mais orientadas para o desenvolvimento de software. Como os testes de software são imprescindíveis na garantia da qualidade dos produtos finais, esta área está presente na actividade da empresa.
Em tempos que já lá vão (ou que seria desejável que já tivessem ido), o software era desenvolvido quase sem a intervenção do cliente. Os requisitos deste último não iam normalmente além de um briefing e os especialistas em desenvolvido criavam a solução e testavam-na. Quando o produto era entregue ao cliente, este testava-o e devolvia os problemas para serem resolvidos.
Actualmente, procura-se inverter essa situação. Em primeiro lugar, procura-se começar com uma análise de requisitos o mais aprofundada possível. Isto permitirá responder às reais necessidades do cliente e, ao mesmo tempo, evitar trabalho de desenvolvimento inconsequente (que não vai de encontro aos requisitos). Ou seja, nesta fase procuram-se alinhar as ideias do cliente com as de quem vai desenvolver o software. O primeiro comunica aquilo que pretende e o segundo encontra formas de dar resposta a essas necessidades.
Fases do ciclo de desenvolvimento previstas pelo RUP.
(Clique na imagem para a visualizar em tamanho maior)
Inclusivamente, é comum efectuarem-se anteprojectos em que são alinhados os requisitos do cliente com os de quem desenvolve para se conseguir efectuar uma proposta eficaz ao cliente. É frequente os clientes fornecerem folhas de requisitos com redundâncias e falhas. O cliente tem sobretudo uma visão funcional. Com base nessa visão, quem desenvolve terá que encontrar as formas de responder às funcionalidades pretendidas. A visão do cliente e do fornecedor têm assim que ser congregadas e alinhadas.
No final da fase de análise, os requisitos devem estar definidos, sabendo a equipa de desenvolvimento aquilo que tem que fazer. Desta forma, no final da fase de análise e na fase de desenho, será possível efectuar uma especificação funcional de todos os testes. Isto só é possível graças à existência dos requisitos.
Na unidade estratégica de Projectos Especiais da Sinfic, na fase de análise é criado um esboço do chamado plano de testes e, sempre que possível, são definidos alguns testes funcionais. Na fase de desenho, como já se conhece o que tem de ser feito e como de forma mais aprofundada, é feita a especificação de uma bateria de testes bastante alargada que comporte as várias componentes dos testes.
De acordo com Humberto Bento, coordenador de equipas na unidade de Projectos Especiais da Sinfic, é sempre aconselhável que o cliente participe nas diferentes fases de desenvolvimento do produto. Este envolvimento permitirá obter o feed-back do cliente ao longo de todo o ciclo, de modo a chegar ao fim com um produto que responda cabalmente às suas necessidades. Além disso, este envolvimento permite economias de tempo e de dinheiro, dado que se conseguem diminuir significativamente ou mesmo eliminar as repetições de trabalho já realizado por rejeição do lado do cliente.
Em todas as fases, os testes podem ser manuais ou automáticos. Normalmente, estes últimos seguem-se aos primeiros. Humberto Bento também destacou o facto de que os testes custam dinheiro. No entanto, o seu custo não deverá ser uma desculpa para os efectuar, dado que a não realização de testes costuma sair mais cara do que a sua realização.
Testes de implementação e de aceitação
Os testes repetem-se ao longo de todo o ciclo iterativo. A cada iteração é necessário testar os resultados da mesma, dado que cada iteração deve dar origem a um produto funcional mais evoluído do que o resultante da iteração anterior. Além destes testes, não nos podemos esquecer que, depois do desenvolvimento e finalização do produto, é necessário implementar o produto no terreno. Entram aqui os testes de implementação, destinados a testar o produto com as especificações do cliente. Garante-se assim que o produto trabalha devidamente com as máquinas e com as infra-estruturas do cliente.
Após a fase de implementação, também deverão ser realizados testes de aceitação do cliente. Com estes testes, garante-se que o cliente fica satisfeito com a solução depois da mesma ter sido implementada. Também há que ter em conta que quem desenvolve não deve efectuar os testes finais ao produto. No entanto, ao longo do ciclo de desenvolvimento, quem desenvolve terá que realizar testes integrados, unitários, etc.
De igual modo, as ferramentas de teste deverão variar de acordo com o produto. Por exemplo, os testes em Java e .NET na unidade de Projectos Especiais da Sinfic estão ser efectuados com o IBM Rational Robot, JUnit e NUnit.
O desenvolvimento de software realizado na Sinfic segue actualmente o modelo SM3 (Sinfic Métricas 3). Todas as fases de teste estão definidas no SM3 e são seguidas pela unidade de Projectos Especiais. Recorde-se que o SM3 segue as linhas de orientação do referencial Métricas 3 seguido pelo governo espanhol. Este guia também foi beber aos grandes referencias internacionais que servem de orientação ao desenvolvimento de software, nomeadamente o RUP (Rational Unified Process), o PMBOK (do mundo da gestão de projectos), ou mesmo o modelo SPICE (ISO 15504).
O SM3 é assim como uma grande escadaria em que cada degrau representa uma tarefa a realizar. Desta forma, o desenvolvimento de software na unidade de Projectos Especiais da Sinfic segue sempre um guia uniforme e com provas dadas, garantindo um produto final de qualidade.
Antes da adopção do referencial SM3, a unidade de Projectos Especiais da Sinfic utilizava o modelo de desenvolvimento preconizado pelo RUP (ver figura). Recorde-se que a Sinfic já tem um histórico de aposta na qualidade. Além de ser uma empresa certificada de acordo com o referencial ISO 9001:2000 (desde Junho de 2004), obteve o reconhecimento CMMI nível dois (modelo Staged) por parte do ESI (European Software Institute) em Outubro de 2005. Este reconhecimento foi atribuído às unidades de negócio da Sinfic mais orientadas para o desenvolvimento de software, incluindo a unidade de Projectos Especiais.