SWitCH_QA - Curso de Especialização em Garantia de Qualidade de Software

Este curso nasce de uma parceria entre a associação Porto Tech Hub e o ISEP, pretendendo construir a possibilidade de reconversão de carreira a talentos que tenham motivação para transitar para as áreas de Tecnologias da Informação.

1º ano | 1º semestre

  • 7 ECTS

    Desenvolvimento de Software e Teste I

    ECTS
    7
    Período
    1º semestre
    Responsável
    Paulo Baltarejo Sousa
    Teórica
    1 hora
    Prática laboratorial
    3 horas

    Esta UC fornece os conhecimentos, compreensão e competências iniciais e fundamentais sobre:
    1. Algoritmia e programação
    2. Processo de desenvolvimento de software (PDS) iterativo e incremental (I&I), em particular de sistemas de informação (SI)
    3. Engenharia de requisitos (em particular de SI)
    4. Análise de software Orientado por Objetos (OO)
    5. Design de software OO
    6. Programação OO
    7. Testes de Software
    No final da UC, o aluno deverá ser capaz de:
    CO1. Interpretar e aplicar as dimensões e intervenientes do PDS, e em particular de SI (NB:2);
    CO2. Implementar o PDS, em particular do processo I&I, de forma determinística (NB:3);
    CO3. Implementar métodos de análise OO (NB:3);
    CO4. Implementar métodos determinísticos de passagem da análise para o design (NB:3);
    CO5. Implementar métodos, princípios e padrões simples (nomeadamente GRASP e SOLID) de design de software OO e boas práticas como Tell Don?t Ask, DRY, etc. (NB:3);
    CO6. Implementar métodos e ferramentas de passagem do design para a implementação (NB:3);
    CO7. Implementar artefactos e notações apropriadas na descrição do problema, da análise, do design e da solução (NB:3).

    P1. Algoritmia e programação
    - Estruturas de dados
    - Estruturas de controlo de fluxo
    - Procedimentos e funções
    - Classe, objeto e método
    P2. PDS
    - Disciplinas (e.g. Requisitos, Análise, Design, Codificação, Teste)
    - Tipos de processos (e.g. cascata, I&I, ágil)
    P3. Engenharia de requisitos
    - Análise de requisitos
    - Requisitos funcionais e não funcionais
    - Modelação visual: diagramas UML de casos de uso e de sequência
    P4. Análise OO
    - Métodos de identificação dos conceitos do domínio e suas relações
    - Modelo de domínio
    - Modelação visual: diagramas UML de classes e de estado
    P5. Design OO
    - Princípios RDD, GRASP, SOLID e TDD
    - Definição de responsabilidades e comportamento
    - Modelação visual: diagramas UML de classes, de sequência e de estado
    - Introdução ao design de arquitetura de software por camadas
    - Especificação de testes como design de software (TDD, BDD)
    P6. Codificação OO
    - Testes automáticos unitários (de regressão)
    - Métodos de passagem do design para a implementação

  • 5,5 ECTS

    Garantia de Qualidade de Software I

    ECTS
    5,5
    Período
    1º semestre
    Responsável
    Alberto Sampaio
    Teórica
    1 hora
    Prática laboratorial
    3 horas

    O aluno deverá:
    1. Conhecer o processo de planeamento e implementação do teste de uma aplicação.
    2. Conhecer os papéis envolvidos e selecionar os artefactos apropriadas a cada fase.
    3. Analisar, projetar, implementar e apresentar os resultados do teste duma aplicação Web usando um processo de desenvolvimento ágil, iterativo e incremental, orientado a testes.
    4. Trabalhar em equipa usando um sistema de controlo de versões.

    Conceitos básicos de processo de desenvolvimento de software, especialmente ágil
    Conceitos básicos de garantia de qualidade teste e processo de teste
    Aplicação de testes ao longo do processo de desenvolvimento de software
    Teste de aplicações desenvolvidas com métodos ágeis

  • 10 ECTS

    Projeto I

    ECTS
    10
    Período
    1º semestre
    Responsável
    Paulo Matos
    Orientação tutorial
    6 horas

    No final da UC, o aluno deverá ser capaz de:
    CO1. Identificar os intervenientes de um Processo de Desenvolvimento de Software (PDS) e compreender os diferentes papeis de cada interveniente, nomeadamente, do cliente (dono do sistema) e do desenvolvedor (integrado numa equipa de desenvolvimento de software) assim como atividades específicas, tais como assegurar a qualidade.
    CO2. Aplicar os artefactos e notações adequadas a cada fase do PDS na produção de documentação técnica.
    CO3. Aplicar técnicas de comunicação eficazes com os intervenientes no PDS.
    CO4. Aplicar regras de trabalho em equipa num PDS, nomeadamente o controle de versões e gestão de tarefas.
    CO5. Criar aplicações de média complexidade com aplicação de padrões e princípios de desenho OO assim como modelos arquiteturais adequados.
    CO6. Desenvolvimento do software de acordo com a metodologia test-driven development (TDD).
    CO7. Conceber e implementar sistemas de integração e implantação contínuas, utilizando virtualização, contentores e ferramentas de automação.

    P1. Realização de um projeto em equipa de média complexidade de acordo com o paradigma OO.
    P2. Aplicação de metodologias ágeis no PDS para a realização de P1 assim como ferramentas e abordagens adequadas a cada fase do PDS.
    P3. Comunicação, documentação e trabalho em equipa.
    P4. Construção de sistemas e infraestruturas computacionais baseadas em virtualização e contentores aplicados ao PDS com o propósito de integração e entregas contínuas.

1º ano | 2º semestre

  • 7 ECTS

    Desenvolvimento de Software e Teste II

    ECTS
    7
    Período
    2º semestre
    Responsável
    Paulo Baltarejo Sousa
    Teórica
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular proporciona conhecimentos e competências nas seguintes disciplinas:
    1. Processo intermédio de desenvolvimento de software orientado a objetos
    2. Metodologias e ferramentas para o projeto de software orientado a objetos e metodologias orientadas a testes
    No final do curso, o aluno deverá ser capaz de:
    CO1 ? Identificar o processo de desenvolvimento de software num projeto de médio porte (BL: 3)
    CO2 ? Aplicar princípios SOLID (BL 5)
    CO3 ? Usar sistemas de controle de revisão (BL 2)
    CO4 ? Aplicar técnicas e metodologias de BDD (BL 3)
    CO5 ? Trabalhar de forma colaborativa em uma equipa de desenvolvimento de software (BL 3)
    CO6 ? Utilizar artefactos e notações apropriadas, descrever as propostas e soluções envolvidas (BL 3)
    CO7 ? Criar, projetar e codificar uma solução de software (BL 6)

    P1. Conceitos intermédios de orientação a objetos (25%)
    P1.1. Design Orientado a Objetos
    P1.1. Desenvolvimento de Software Orientado a Objetos
    P2. Testes Funcionais (25%)
    P2.1. Implementação de Testes de Integração
    P2.2. Desenho de Testes de Aceitação Funcionais
    P2.3. Implementação de Testes de Aceitação Funcionais
    P3. Testes Não Funcionais (25%)
    P3.1. Implementação de Testes Não Funcionais
    P4. Metodologia de Behaviour-Driven Development (BDD) (25%)
    P4.1. Idiomas de Especificação
    P4.2. Behaviour-Driven Development (BDD)

  • 5,5 ECTS

    Garantia de Qualidade de Software II

    ECTS
    5,5
    Período
    2º semestre
    Responsável
    Alberto Sampaio
    Teórica
    1 hora
    Prática laboratorial
    3 horas

    O aluno deverá:
    CO1. Conhecer com detalhe os vários tipos de testes e critérios para geração de casos de teste.
    CO2. Desenhar e implementar os testes a realizar, tendo em atenção requisitos definidos para o projecto, e analisar os resultados.
    CO3. Conhecer a aplicar os principais processos de qualidade e características de qualidade do produto e do processo
    CO4. Conhecer e aplicar algumas medidas de software
    CO5. Trabalhar, enquanto QA, de forma colaborativa no projecto de uma aplicação web usando a metodologia BDD
    CO6. Preparar documentação técnica

    1. Importância da qualidade: razões para o sucesso e insucesso dos projectos
    2. Qualidade do desenho e do código
    2.1 Problemas no código fonte
    2.2 Características de um bom desenho
    2.3 Aplicação de princípios: SOLID, LoD, DRY
    3. Revisões pelos pares
    4. Processos ATDD e BDD
    5. Classificações dos tipos de testes
    6. Técnicas White-box, black-box
    7. Aplicação das técnicas no projecto
    8. Modelo de qualidade ISO/IEC/IEEE
    9. Medição
    10. Qualidade do processo
    11. Preparação de documentação técnica

  • 10 ECTS

    Projeto II

    ECTS
    10
    Período
    2º semestre
    Responsável
    Paulo Matos
    Orientação tutorial
    6 horas

    No final da UC, o aluno deverá ser capaz de:
    CO1. Aplicar o Processo de Desenvolvimento de Software (PDS) desempenhando as diferentes tarefas subjacentes aos diferentes intervenientes do PDS.
    CO2. Criar aplicações de média complexidade com aplicação de padrões de software consolidados, em especial para sistemas distribuídos e descentralizados.
    CO3. Desenvolvimento do software de acordo com a metodologia test-driven development (TDD) e Behaviour-Driven Development.
    CO4. Desenhar planos de testes e automatiza-los (i.e., unitários, integração, end-to-end, carga).
    CO5. Conceber e implementar sistemas de integração e implantação contínuas, utilizando virtualização, contentores e ferramentas de automação.
    CO6. Trabalhar em equipa, no contexto de um projeto de desenvolvimento de software, aplicando metodologia ágil (i.e., Scrum)
    CO7. Aplicar as melhores práticas de produção de relatórios e documentação de garantia de qualidade (QA) utilizando-os para comunicar os resultados de um projeto de software

    P1. Desenvolvimento de um projeto em equipa de média complexidade com aplicação das boas práticas de engenharia informática em todas as fases do projeto (para aplicação do método Project Based Learning).
    P2. Metodologias ágeis no PDS.
    P3. Comunicação, documentação e trabalho em equipa.
    P4. Aplicação e automatização de mecanismos de QA.
    P5. Construção de sistemas e infraestruturas computacionais baseadas em virtualização e contentores aplicados ao PDS com o propósito de integração e entregas contínuas.

Voltar ao topo