SDLC e STLC - porquê a existência de dois ciclos?

É verdade que nem todas as pessoas conhecem a existência do Software Testing Life Cycle embora a maioria delas o aplique de forma inconsciente no seu dia a dia e planeamento de tarefas.

E por isso surge várias vezes a questão: então mas qual a diferença entre ambas e qual a mais valia de uma definição concreta e implementação do STLC?

Vou apresentar-te de forma bastante resumida por agora cada um dos ciclos (com a promessa de voltar ao tema com mais detalhe!) e focar no porquê, como e quando usar/aplicar o STLC.


SDLC (Software Development Life Cycle)

O SDLC é uma framework que define as etapas e processos necessários para o desenvolvimento de software, desde a sua concepção até à sua entrega e manutenção.

As principais fases do SDLC incluem:

  • Planeamento: definição dos objetivos, escopo/objectivo e requisitos do projeto.

  • Análise de Requisitos: descrição e análise das necessidades do sistema e especificação dos requisitos.

  • Design: definição da arquitetura e design do sistema de forma detalhada, incluindo as interfaces, as bases de dados e lógica de negócio necessária.

  • Desenvolvimento: codificação e implementação do software.

  • Teste: verificação e validação do software, para garantir que o mesmo corresponde aos requisitos especificados e não tem nenhum erro não expectável.

  • Implantação: instalação/entrega do software no ambiente de produção.

  • Manutenção: correção de problemas, melhorias e actualizações contínuas.


STLC (Software Testing Life Cycle)

O STLC é um sub-conjunto do SDLC, focado exclusivamente nos aspectos de teste do software. O objectivo é definir todas as atividades que devem ser realizadas para garantir a qualidade do software. Acaba por ter nas fases uma grande semelhança com as que são definidas no SDLC.

Pode ser dividido em várias fases, como por exemplo:

  • Planeamento: definição da estratégia de teste, escopo/objectivos, recursos necessários e cronograma.

  • Análise de Requisitos: análise dos requisitos definidos, para identificar o que terá de ser testado.

  • Design: escrita dos casos de teste, roteiros/scripts e dados de teste.

  • Preparação: configuração do ambiente de teste e preparação dos testes.

  • Execução: executar os casos de teste definidos, segundo os roteiros e priorização e registo dos resultados obtidos.

  • Conclusão: revisão dos resultados de teste, relatório de defeitos e avaliação da cobertura de teste (com recurso a métricas para análise).

  • Hand-off: documentação e arquivo de todos os artefactos de teste, além de possíveis revisões/análises pós-projeto.

 
 

Como o SDLC e o STLC se complementam?

  • Integração de Fases

    Cada fase do STLC está alinhada com as fases do SDLC, garantindo assim que os testes são considerados em cada etapa do desenvolvimento.

    Por exemplo, durante a fase de análise de requisitos do SDLC deve decorrer em simultâneo a fase de análise de testes do STLC.

  • Qualidade Contínua

    O STLC ajuda a identificar e corrigir defeitos e problemas o mais cedo possível no ciclo de vida do software, permitindo assim reduzir o custo e o tempo para correção de erros em momentos mais avançados do ciclo (ou já mesmo em ambiente de produção). Esta antecipação é feita com base no conhecimento que é transferido durante os períodos de análise e concepção.

  • Feedback Contínuo

    O STLC fornece feedback contínuo ao SDLC sobre a qualidade do software, permitindo ajustes e melhorias de forma contínua e continuada.


Quais são as mais-valias do STLC ?

  • Detecção precoce e antecipada de defeitos: ao realizar testes em cada fase do desenvolvimento, os erros e defeitos são identificados e corrigidos mais cedo, reduzindo o custo e o esforço para correção.

  • Qualidade melhorada: ao ter testes sistemáticos e abrangentes é possível garantir que o software corresponde aos requisitos de qualidade e funciona conforme esperado.

  • Redução de riscos: ao identificar de forma precoce potenciais problemas existe uma maior capacidade de mitigar possíveis riscos associados ao desenvolvimento de software.

  • Planeamento estruturado: ao fornecer uma abordagem estruturada para planeamento e execução de testes, é possível garantir uma cobertura mais ampla e completa dos requisitos.

Como e Quando usar o STLC ?

Aplicação do STLC

  • durante TODO o processo de desenvolvimento: o STLC deve ser aplicado logo desde o início do desenvolvimento (análise de requisitos) até à conclusão e fecho do projeto (manutenção e suporte).

  • em projetos de qualquer tamanho: independentemente do tamanho ou complexidade do projeto, o STLC pode ser adaptado à realidade e necessidades do mesmo, por forma a para garantir a qualidade do software.

  • ambientes ágeis: em metodologias ágeis, o STLC é iterativo, com testes realizados em cada sprint ou iteração. Portanto, é mesmo uma roda sempre em movimento, um verdadeiro ciclo em execução contínua e continuada.

Implementação na Equipa

Mesmo que a prática de STLC não esteja formalmente estabelecida na equipa, você pode integrá-la da seguinte forma:

  • Definição de Estratégia de Testes: propõe e documenta uma estratégia de testes alinhada com as fases do projeto.

  • Criação de Casos de Teste: desenvolve casos de teste e roteiros desde a fase de design até a implementação.

  • Automação de Testes: introduz a automação (com a devida análise para o caso em questão. Nem todos os testes dão para ser automatizados) para garantir testes contínuos e regressivos.

  • Comunicação: comunica regularmente os resultados dos testes e os feedbacks à equipa de desenvolvimento.

  • Feedback e Melhoria Contínua: participa nas reuniões de revisão de sprint (ou de projeto), fornece feedback concreto e válido, e propõe melhorias com base nos resultados dos testes.

 
 

O SDLC e o STLC são frameworks essenciais para garantir a entrega de software de alta qualidade.

Enquanto o SDLC cobre todo o ciclo de vida do desenvolvimento de software, o STLC foca-se especificamente nos processos de teste, garantindo que a qualidade é mantida em cada etapa.

Integrar o STLC no teu dia a dia, mesmo em equipas que ainda não o utilizam formalmente, pode trazer benefícios significativos em termos de detecção precoce de defeitos, melhoria da qualidade e redução de riscos.

Anterior
Anterior

Cypress - testes web, open source e na moda

Próximo
Próximo

Pipeline - o que é?