·
Análise e Desenvolvimento de Sistemas ·
Qualidade de Software
Send your question to AI and receive an answer instantly
Recommended for you
11
Aula 04 - Principais Conceitos do Processo de Teste de Software
Qualidade de Software
UNOPAR
11
Aula 02 - Modelos de Ciclo de Vida de Software
Qualidade de Software
UNOPAR
4
00 - Apresentação - Qualidade e Testes de Software
Qualidade de Software
UNOPAR
11
Aula 01 - o que É Engenharia de Software
Qualidade de Software
UNOPAR
11
Aula 05 - Ciclo de Vida do Processo de Testes de Software
Qualidade de Software
UNOPAR
2
Aula 01 - o que É Engenharia de Software anexo 1
Qualidade de Software
UNOPAR
7
Atividade 3 - Qualidade e Teste de Software
Qualidade de Software
FMU
3
Qualidade e Testes de Software
Qualidade de Software
UMG
5
Eps_ Alunos10
Qualidade de Software
UMG
7
Prova N2 - Qualidade e Teste de Software
Qualidade de Software
FMU
Preview text
Qualidade e teste de software\nAula 3: Qualidade de teste de software\n\nApresentação\nEsta aula tem como proposta discutir a importância dos testes de software, apresentando sua evolução histórica desde as décadas de 1950 e 1960, quando surgiram as primeiras linguagens de programação ditas modernas, algumas delas ainda em uso até hoje, como por exemplo o Cobol.\n\nNeste contexto, apresentaremos algumas das principais características e exigências dos projetos de software baseados em processos de controle da qualidade.\n\nObjetivos\n- Esclarecer por que é necessário ter qualidade nos testes;\n- Identificar nos softwares as suas características e utilizar um teste adequado para eles;\n- Relatar o que deve ser entregue como garantia para o teste com o cliente. Histórico\nNo início do desenvolvimento dos softwares, quando só existia a função de programador, que era exercida por poucos, não havia atividades de testes no processo de seu desenvolvimento. Na verdade, antes dos anos 1970, não havia nem processo definido de desenvolvimento de software.\n\nComentário\nO que ocorria nessa época?\n- Tendo em vista que os erros ocorriam, após o software estar pronto, o próprio programador percorria o código para solucionar possíveis erros;\n- Os testes eram feitos pelo próprio usuário.\n\nJá no final dos anos 1960 e início dos anos 1970, surgiu a \"programação estruturada\", que recomendava, basicamente, evitar o uso de goto, ou seja, desvios incondicionais. Há um consenso entre os programadores que o desvio incondicional é um mau estilo de programação, que gera códigos com baixa qualidade.\n\nComentário\nNessa época, surgiram, então, os primeiros conceitos de engenharia de software, adotados, principalmente, como modelo nos cursos de Exatas nas universidades em todo o mundo. Assim, os primeiros procedimentos de testes passaram a ser usados, porém de forma bastante tímida.\n\nEm 1979, Genford J. Myers, autor do livro The Art of Software Testing, apresentou um trabalho pioneiro e profundo sobre um processo de teste de software. Foi criador de termos muito usados como \"caixa branca\", \"caixa preta\" e \"caso de teste\".\n\nMyers também ficou conhecido pela Regra de 10 de Myers, que mostra que \"quanto mais tarde os defeitos forem encontrados, tanto mais caro serão corrigí-los\".\n\nEntenda graficamente a regra de 10 de Myers: Qualidade de software\nNos anos 1980, surgiu o conceito de qualidade de software, processo fortemente relacionado à conformidade com requisitos e à satisfação do cliente, que envolve a delimitação do escopo de um sistema e a volatilidade dos requisitos, lugar-comum no desenvolvimento de software.\n\nAlguns fatores afetam o desenvolvimento do software e influenciam na avaliação do usuário, como:\n\nTamanho e complexidade do software.\nNúmero de pessoas envolvidas no projeto.\nMétodos, técnicas e ferramentas utilizadas.\nRelação custo x benefício do sistema.\nCustos referentes à correção e remoção de erros.\n\nOs testes acontecem desde a fase inicial do projeto de software até a fase de encerramento e entrega do produto final.\n\nAlguns padrões foram criados para a medição e avaliação do processo de desenvolvimento, e o modelo que ganhou maior credibilidade e importância para as empresas desenvolvedoras foi o Capability Maturity Model (CMM) apresentado pelo SEI.\n\nNos anos 1990, surgiram algumas ferramentas de teste que proporcionaram alta produtividade e qualidade no processo.\n\nAssim, determinados tipos de testes, que antes não eram possíveis de serem executados, tornaram-se de fato uma realidade, proporcionando alta produtividade e qualidade no processo de teste e, consequentemente, na qualidade do software. Cenário atual do desenvolvimento de software\nA era digital exige que os softwares fossem se adaptando à realidade. Hoje eles fazem parte do nosso cotidiano, estando presentes, por exemplo, nos aplicativos das mais diversas áreas das atividades humanas, como alimentação, transações bancárias, compra e aquisição de produtos, contratação de serviços etc.\n\nA Globalização é o processo que proporciona a integração entre diversas sociedades, países e comunidades em todo o mundo, aproximando pessoas, empresas e seus departamentos, clientes, fornecedores etc., seja no âmbito político, cultural, financeiro ou comercial.\n\nO destaque maior da Globalização está na integração de mercado existente entre os países.\n\nAssim, a exigência pela qualidade, funcionalidade, portabilidade e tantas outras características fizeram com que esses aplicativos atingissem um grau elevado de complexidade e integridade.\n\nPor outro lado, provavelmente você já teve experiência com algum software ou aplicativo que não funcionasse a contento.\n\nO que pode acontecer se:\nBancos perderem milhões?\nClientes virem saldos de suas contas sumirem de repente?\nTelefones pararem de funcionar?\nAviões tiverem suas rotas desviadas?\nVários trens do metrô forem colocados no mesmo trilho? Atenção\nSoftwares que apresentam bugs podem acarretar diversos problemas, como supressão de negócio, prejuízos financeiros, além de perda de tempo e, principalmente, queda na reputação das empresas.\nAssim sendo, os processos de gerenciamento de testes ganham cada vez mais importância no contexto do desenvolvimento do software, uma vez que vulnerabilidades ou falhas podem gerar riscos e causar perdas, em muitos casos, irreparáveis.\n\nApesar disso, algumas empresas ainda resistem em investir na área de segurança e testes, por considerarem seu custo alto e desnecessário.\n\nEssas empresas precisaram quebrar paradigmas e considerar que a implantação de um processo que garanta a qualidade do software é estratégico e vital para a continuidade dos negócios, em um mercado cada vez mais exigente e competitivo.\n\nPrincipais demandas de software atuais e a evolução do processo de qualidade e de teste, segundo Bartié (2002)\n\nCaracterísticas\n1960\n1980\n2000\nTamanho do software\nPequeno\nMédio\nMuito Grande\nComplexidade do Software\nBaixa\nMédia\nAlta\nTamanho da Equipe de Desenvolvimento\nPequeno\nMédio\nGrande\nPadrões de Metodologia de Desenvolvimento\nInterno\nModerado\nSofisticado\nPadrões e Metodologias de Qualidade e Testes\nInterno\nEmergente\nSofisticado\nOrganização de Qualidade e Testes\nBem poucas\nAlgumas\nMuitas\nReconhecimento da Importância da Qualidade\nPequeno\nAlgum\nSignificante\nTamanho da Equipe de Qualidade e Testes\nPequeno\nPequeno\nGrande\n\nTabela: Evolução das empresas desenvolvedoras de softwares.\n\nQual a realidade dos softwares atuais?\n\nVocê deve ter percebido que toda a sociedade tornou-se dependente de sistemas de software, que hoje são parte integrante do nosso dia a dia. As empresas desenvolvedoras estão percebendo que os processos de desenvolvimento são estratégicos e agregam valor aos seus negócios, valorizando seus produtos e serviços.\n\nNa realidade, a indústria de software não está preparada para atender as exigências do mercado em constante evolução porque não investe em seus processos internos.\n\nUm estudo feito recentemente nos EUA mostra o quanto a indústria de softwares está deficitária:\n\n30% dos projetos são cancelados\n70% dos projetos falham nas funcionalidades\nOs custos extrapolam em 180% a previsto\nOs orçamentos e prazos extrapolam em 200% os cronogramas iniciais.\n\nAtenção! Aqui existe uma videolação, acesse pelo conteúdo online.\n\nA necessidade de testes no desenvolvimento de softwares\nA necessidade e a importância dos testes vão depender do tipo de uso que o software terá. São mais críticos aqueles que podem causar danos à vida humana ou levar a grandes perdas financeiras.\n\nComo vimos com Myers, quanto mais precoce a detecção de falhas ocorre, menores os gastos do projeto com reparos e planejamento.\n\nPor esse motivo, a utilização de ferramentas de suporte a testes tem se tornado uma regra no desenvolvimento de softwares. Atenção\nA qualidade de um produto ou artefato reúne um conjunto de características e propriedades que devem ser satisfeitas segundo as exigências do usuário, de modo a atender a uma medida de conformidade com as especificações, como defeito zero nos componentes e no produto final, obtendo benefício com o alcance da qualidade.\n\nDefinição sobre qualidade de software\nSegundo Pressman (2016), em seu livro Engenharia de Software:\n\n\"Qualidade de software é a conformidade a requisitos funcionais e de desempenho que foram explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software desenvolvido por profissionais.\"\n\n- Pressman, 2016.\n\nEsse processo visa garantir a uniformidade dos processos e produtos, eliminando defeitos e melhorando o desempenho de suas funcionalidades.\n\nPara desenvolver softwares de qualidade, é necessário investir em processos de gestão de qualidade, atuando em todas as fases do ciclo de vida.\n\nAlguns fatores internos e externos podem afetar a qualidade do software. Vejamos alguns exemplos:\n\n1\nFatores externos\nSão percebidos tanto pelas pessoas que desenvolvem softwares quanto pelos usuários.\n\n2\nFatores internos\nSão percebidos apenas pelas pessoas que desenvolvem softwares.\n\nExemplo\nSão exemplos de Fatores externos: confiabilidade, eficiência e facilidade de uso.\nSão exemplos de Fatores internos: modularidade e legibilidade. É importante notar que a garantia de qualidade de software (Software Quality Assurance) não é algo com o que começamos a nos preocupar depois que o código foi gerado, e sim \"ao longo de todo o processo de engenharia de software\".\n\nTodos os métodos, ferramentas e procedimentos definidos pela Engenharia de Software buscam um único objetivo: produzir softwares de alta qualidade.\n\nSegundo Philip Crosby (Quality is Free): \"o problema do gerenciamento da qualidade não é o que as pessoas não sabem. O problema é o que as pessoas acham que sabem\".\n\nGarantia da qualidade\nOs testes também fazem parte dos procedimentos seguidos para garantir a qualidade do processo de desenvolvimento de softwares, assegurada por certificações concedidas por organizações que avaliam o processo, considerando modelos de qualidade, como o CMMI (Capability Maturity Model Integration) e a ISO-12207.\n\nAtenção! Aqui existe uma videoaula, acesse pelo conteúdo online\n\nGarantia da qualidade de software (SQA)\nUm grande desafio para qualquer programa de qualidade, considerado crítico, é possibilitar que qualquer pessoa faça revisões no trabalho de profissionaisexperientes.\n\nOs gerentes sempre querem que seus profissionais possam projetar o produto, mas geralmente o SQA não pode fazê-los. É necessário conectar esforços em métodos de SQA que permitam um desenvolvimento que possa ser revisado também por pessoas que não seja desenvolvedores. Nesse caso, qual o papel do SQA?\n\nMonitorar os métodos e os padrões que os engenheiros de software usam e verificar se eles estão usando apropriadamente seus conhecimentos.\n\nÉ importante compreender que as pessoas podem ser experientes em SQA sem, no entanto, serem experientes em projetos de software. É impossível obter um software com qualidade com processos de desenvolvimento ineficientes.\n\nNos processos de gestão de qualidade, o software deverá atender a todas as exigências do cliente/ usuário.\n\nSoftwares mal testados causam prejuízos às empresas, como retrabalho, aumento de custo do projeto e informações inconsistentes que podem acarretar decisões equivocadas, além da insatisfação dos usuários.\n\nTemos a aplicação de qualidade em duas dimensões:\n\nQualidade do Processo\nQualidade do Produto\n\nQualidade do processo\nA preocupação com a qualidade deve estar presente em todas as fases do ciclo de desenvolvimento, inclusive no início e na fase de análise de requisitos do sistema.\n\nQuanto mais cedo os problemas forem detectados e corrigidos, mais rápido será o desenvolvimento e com menor custo.\n\nComo medir?\nMétricas de software são usadas para ajudar os desenvolvedores a criar softwares com qualidade reconhecida.\n\nAlguns garantem que o software é inconmensurável, porém desconhecem que existem técnicas que colocam as métricas e medições como práticas fundamentais para a determinação do grau de maturidade dos processos de desenvolvimento, conforme definido nas plataformas CMMI e MPS-BR (melhoria do processo de software brasileiro).\n\nO software pode ser medido aplicando-se testes na documentação gerada em cada fase do ciclo de vida. São chamados testes de verificação.\n\nAlém disso, existem outras técnicas de medição, como a Análise de Pontos de Função - APF, usada para a medição de projetos de software, segundo alguns parâmetros de medida de tamanho, em pontos de função - PF, considerando a funcionalidade implementada, sob o ponto de vista do usuário. I Atividade\n\n1. O teste do software deve acontecer: (assinale a única opção correta)\na) No início do processo de desenvolvimento\nb) No final do processo de desenvolvimento\nc) No meio do processo de desenvolvimento\nd) No início ou no final do processo de desenvolvimento\ne) Em todo o processo de desenvolvimento\n\n2. Com relação ao tamanho e complexidade de software, assinale a opção correta, considerando tais características nos anos 1960, 1980 e 2000.\na) Em 1980, o tamanho era pequeno e a complexidade alta.\nb) Em 1960, o tamanho era mínimo e, em 1980, a complexidade era relativa.\nc) Em 1960, o tamanho era mínimo e, em 2000, a complexidade era média.\nd) Em 1980, a complexidade era média e, em 2000, a complexidade era alta.\ne) Em 1960, o tamanho era mínimo e, em 2000, o tamanho é o mesmo.\n\n3. O que estabeleceu a regra de 10 de Myers?\na) Quanto mais tardiamente descobrimos os erros, mais caros eles ficam.\nb) Os testes tornam-se mais complexos, pois os riscos de os softwares não funcionarem a conteúdo cresce de forma exponencial.\nc) Não existe garantia de que a solução tecnológica contratada será entregue no prazo e nos custos negociados.\nd) A partir de processos uniformes e consistentes, a tendência é que o produto final gerado, ou seja, o software seja eficiente.\ne) Todas as decisões tomadas durante o processo de desenvolvimento do software podem comprometer a sua qualidade final.\n\n4. Podemos conceituar qualidade de software como:\na) Um processo sistemático que focaliza todas as etapas e artefatos gerados com o objetivo de garantir a conformidade e uniformidade de processos e produtos, prevenindo e eliminando defeitos.\nb) Um processo que foca em todos os produtos de software gerados pela equipe de desenvolvimento.\nc) Um processo que demonstra que algo funciona corretamente.\nd) Um processo para provar que determinadas funções fazem o que devem fazer.\ne) Um processo para demonstrar que os defeitos não estão presentes.\n\n5. Myers concluiu que \"zero defeito\" é algo inatingível, porém a qualidade de software trabalha com o conceito de zero defeito. O que isto quer dizer?
Send your question to AI and receive an answer instantly
Recommended for you
11
Aula 04 - Principais Conceitos do Processo de Teste de Software
Qualidade de Software
UNOPAR
11
Aula 02 - Modelos de Ciclo de Vida de Software
Qualidade de Software
UNOPAR
4
00 - Apresentação - Qualidade e Testes de Software
Qualidade de Software
UNOPAR
11
Aula 01 - o que É Engenharia de Software
Qualidade de Software
UNOPAR
11
Aula 05 - Ciclo de Vida do Processo de Testes de Software
Qualidade de Software
UNOPAR
2
Aula 01 - o que É Engenharia de Software anexo 1
Qualidade de Software
UNOPAR
7
Atividade 3 - Qualidade e Teste de Software
Qualidade de Software
FMU
3
Qualidade e Testes de Software
Qualidade de Software
UMG
5
Eps_ Alunos10
Qualidade de Software
UMG
7
Prova N2 - Qualidade e Teste de Software
Qualidade de Software
FMU
Preview text
Qualidade e teste de software\nAula 3: Qualidade de teste de software\n\nApresentação\nEsta aula tem como proposta discutir a importância dos testes de software, apresentando sua evolução histórica desde as décadas de 1950 e 1960, quando surgiram as primeiras linguagens de programação ditas modernas, algumas delas ainda em uso até hoje, como por exemplo o Cobol.\n\nNeste contexto, apresentaremos algumas das principais características e exigências dos projetos de software baseados em processos de controle da qualidade.\n\nObjetivos\n- Esclarecer por que é necessário ter qualidade nos testes;\n- Identificar nos softwares as suas características e utilizar um teste adequado para eles;\n- Relatar o que deve ser entregue como garantia para o teste com o cliente. Histórico\nNo início do desenvolvimento dos softwares, quando só existia a função de programador, que era exercida por poucos, não havia atividades de testes no processo de seu desenvolvimento. Na verdade, antes dos anos 1970, não havia nem processo definido de desenvolvimento de software.\n\nComentário\nO que ocorria nessa época?\n- Tendo em vista que os erros ocorriam, após o software estar pronto, o próprio programador percorria o código para solucionar possíveis erros;\n- Os testes eram feitos pelo próprio usuário.\n\nJá no final dos anos 1960 e início dos anos 1970, surgiu a \"programação estruturada\", que recomendava, basicamente, evitar o uso de goto, ou seja, desvios incondicionais. Há um consenso entre os programadores que o desvio incondicional é um mau estilo de programação, que gera códigos com baixa qualidade.\n\nComentário\nNessa época, surgiram, então, os primeiros conceitos de engenharia de software, adotados, principalmente, como modelo nos cursos de Exatas nas universidades em todo o mundo. Assim, os primeiros procedimentos de testes passaram a ser usados, porém de forma bastante tímida.\n\nEm 1979, Genford J. Myers, autor do livro The Art of Software Testing, apresentou um trabalho pioneiro e profundo sobre um processo de teste de software. Foi criador de termos muito usados como \"caixa branca\", \"caixa preta\" e \"caso de teste\".\n\nMyers também ficou conhecido pela Regra de 10 de Myers, que mostra que \"quanto mais tarde os defeitos forem encontrados, tanto mais caro serão corrigí-los\".\n\nEntenda graficamente a regra de 10 de Myers: Qualidade de software\nNos anos 1980, surgiu o conceito de qualidade de software, processo fortemente relacionado à conformidade com requisitos e à satisfação do cliente, que envolve a delimitação do escopo de um sistema e a volatilidade dos requisitos, lugar-comum no desenvolvimento de software.\n\nAlguns fatores afetam o desenvolvimento do software e influenciam na avaliação do usuário, como:\n\nTamanho e complexidade do software.\nNúmero de pessoas envolvidas no projeto.\nMétodos, técnicas e ferramentas utilizadas.\nRelação custo x benefício do sistema.\nCustos referentes à correção e remoção de erros.\n\nOs testes acontecem desde a fase inicial do projeto de software até a fase de encerramento e entrega do produto final.\n\nAlguns padrões foram criados para a medição e avaliação do processo de desenvolvimento, e o modelo que ganhou maior credibilidade e importância para as empresas desenvolvedoras foi o Capability Maturity Model (CMM) apresentado pelo SEI.\n\nNos anos 1990, surgiram algumas ferramentas de teste que proporcionaram alta produtividade e qualidade no processo.\n\nAssim, determinados tipos de testes, que antes não eram possíveis de serem executados, tornaram-se de fato uma realidade, proporcionando alta produtividade e qualidade no processo de teste e, consequentemente, na qualidade do software. Cenário atual do desenvolvimento de software\nA era digital exige que os softwares fossem se adaptando à realidade. Hoje eles fazem parte do nosso cotidiano, estando presentes, por exemplo, nos aplicativos das mais diversas áreas das atividades humanas, como alimentação, transações bancárias, compra e aquisição de produtos, contratação de serviços etc.\n\nA Globalização é o processo que proporciona a integração entre diversas sociedades, países e comunidades em todo o mundo, aproximando pessoas, empresas e seus departamentos, clientes, fornecedores etc., seja no âmbito político, cultural, financeiro ou comercial.\n\nO destaque maior da Globalização está na integração de mercado existente entre os países.\n\nAssim, a exigência pela qualidade, funcionalidade, portabilidade e tantas outras características fizeram com que esses aplicativos atingissem um grau elevado de complexidade e integridade.\n\nPor outro lado, provavelmente você já teve experiência com algum software ou aplicativo que não funcionasse a contento.\n\nO que pode acontecer se:\nBancos perderem milhões?\nClientes virem saldos de suas contas sumirem de repente?\nTelefones pararem de funcionar?\nAviões tiverem suas rotas desviadas?\nVários trens do metrô forem colocados no mesmo trilho? Atenção\nSoftwares que apresentam bugs podem acarretar diversos problemas, como supressão de negócio, prejuízos financeiros, além de perda de tempo e, principalmente, queda na reputação das empresas.\nAssim sendo, os processos de gerenciamento de testes ganham cada vez mais importância no contexto do desenvolvimento do software, uma vez que vulnerabilidades ou falhas podem gerar riscos e causar perdas, em muitos casos, irreparáveis.\n\nApesar disso, algumas empresas ainda resistem em investir na área de segurança e testes, por considerarem seu custo alto e desnecessário.\n\nEssas empresas precisaram quebrar paradigmas e considerar que a implantação de um processo que garanta a qualidade do software é estratégico e vital para a continuidade dos negócios, em um mercado cada vez mais exigente e competitivo.\n\nPrincipais demandas de software atuais e a evolução do processo de qualidade e de teste, segundo Bartié (2002)\n\nCaracterísticas\n1960\n1980\n2000\nTamanho do software\nPequeno\nMédio\nMuito Grande\nComplexidade do Software\nBaixa\nMédia\nAlta\nTamanho da Equipe de Desenvolvimento\nPequeno\nMédio\nGrande\nPadrões de Metodologia de Desenvolvimento\nInterno\nModerado\nSofisticado\nPadrões e Metodologias de Qualidade e Testes\nInterno\nEmergente\nSofisticado\nOrganização de Qualidade e Testes\nBem poucas\nAlgumas\nMuitas\nReconhecimento da Importância da Qualidade\nPequeno\nAlgum\nSignificante\nTamanho da Equipe de Qualidade e Testes\nPequeno\nPequeno\nGrande\n\nTabela: Evolução das empresas desenvolvedoras de softwares.\n\nQual a realidade dos softwares atuais?\n\nVocê deve ter percebido que toda a sociedade tornou-se dependente de sistemas de software, que hoje são parte integrante do nosso dia a dia. As empresas desenvolvedoras estão percebendo que os processos de desenvolvimento são estratégicos e agregam valor aos seus negócios, valorizando seus produtos e serviços.\n\nNa realidade, a indústria de software não está preparada para atender as exigências do mercado em constante evolução porque não investe em seus processos internos.\n\nUm estudo feito recentemente nos EUA mostra o quanto a indústria de softwares está deficitária:\n\n30% dos projetos são cancelados\n70% dos projetos falham nas funcionalidades\nOs custos extrapolam em 180% a previsto\nOs orçamentos e prazos extrapolam em 200% os cronogramas iniciais.\n\nAtenção! Aqui existe uma videolação, acesse pelo conteúdo online.\n\nA necessidade de testes no desenvolvimento de softwares\nA necessidade e a importância dos testes vão depender do tipo de uso que o software terá. São mais críticos aqueles que podem causar danos à vida humana ou levar a grandes perdas financeiras.\n\nComo vimos com Myers, quanto mais precoce a detecção de falhas ocorre, menores os gastos do projeto com reparos e planejamento.\n\nPor esse motivo, a utilização de ferramentas de suporte a testes tem se tornado uma regra no desenvolvimento de softwares. Atenção\nA qualidade de um produto ou artefato reúne um conjunto de características e propriedades que devem ser satisfeitas segundo as exigências do usuário, de modo a atender a uma medida de conformidade com as especificações, como defeito zero nos componentes e no produto final, obtendo benefício com o alcance da qualidade.\n\nDefinição sobre qualidade de software\nSegundo Pressman (2016), em seu livro Engenharia de Software:\n\n\"Qualidade de software é a conformidade a requisitos funcionais e de desempenho que foram explicitamente declarados, a padrões de desenvolvimento claramente documentados e a características implícitas que são esperadas de todo software desenvolvido por profissionais.\"\n\n- Pressman, 2016.\n\nEsse processo visa garantir a uniformidade dos processos e produtos, eliminando defeitos e melhorando o desempenho de suas funcionalidades.\n\nPara desenvolver softwares de qualidade, é necessário investir em processos de gestão de qualidade, atuando em todas as fases do ciclo de vida.\n\nAlguns fatores internos e externos podem afetar a qualidade do software. Vejamos alguns exemplos:\n\n1\nFatores externos\nSão percebidos tanto pelas pessoas que desenvolvem softwares quanto pelos usuários.\n\n2\nFatores internos\nSão percebidos apenas pelas pessoas que desenvolvem softwares.\n\nExemplo\nSão exemplos de Fatores externos: confiabilidade, eficiência e facilidade de uso.\nSão exemplos de Fatores internos: modularidade e legibilidade. É importante notar que a garantia de qualidade de software (Software Quality Assurance) não é algo com o que começamos a nos preocupar depois que o código foi gerado, e sim \"ao longo de todo o processo de engenharia de software\".\n\nTodos os métodos, ferramentas e procedimentos definidos pela Engenharia de Software buscam um único objetivo: produzir softwares de alta qualidade.\n\nSegundo Philip Crosby (Quality is Free): \"o problema do gerenciamento da qualidade não é o que as pessoas não sabem. O problema é o que as pessoas acham que sabem\".\n\nGarantia da qualidade\nOs testes também fazem parte dos procedimentos seguidos para garantir a qualidade do processo de desenvolvimento de softwares, assegurada por certificações concedidas por organizações que avaliam o processo, considerando modelos de qualidade, como o CMMI (Capability Maturity Model Integration) e a ISO-12207.\n\nAtenção! Aqui existe uma videoaula, acesse pelo conteúdo online\n\nGarantia da qualidade de software (SQA)\nUm grande desafio para qualquer programa de qualidade, considerado crítico, é possibilitar que qualquer pessoa faça revisões no trabalho de profissionaisexperientes.\n\nOs gerentes sempre querem que seus profissionais possam projetar o produto, mas geralmente o SQA não pode fazê-los. É necessário conectar esforços em métodos de SQA que permitam um desenvolvimento que possa ser revisado também por pessoas que não seja desenvolvedores. Nesse caso, qual o papel do SQA?\n\nMonitorar os métodos e os padrões que os engenheiros de software usam e verificar se eles estão usando apropriadamente seus conhecimentos.\n\nÉ importante compreender que as pessoas podem ser experientes em SQA sem, no entanto, serem experientes em projetos de software. É impossível obter um software com qualidade com processos de desenvolvimento ineficientes.\n\nNos processos de gestão de qualidade, o software deverá atender a todas as exigências do cliente/ usuário.\n\nSoftwares mal testados causam prejuízos às empresas, como retrabalho, aumento de custo do projeto e informações inconsistentes que podem acarretar decisões equivocadas, além da insatisfação dos usuários.\n\nTemos a aplicação de qualidade em duas dimensões:\n\nQualidade do Processo\nQualidade do Produto\n\nQualidade do processo\nA preocupação com a qualidade deve estar presente em todas as fases do ciclo de desenvolvimento, inclusive no início e na fase de análise de requisitos do sistema.\n\nQuanto mais cedo os problemas forem detectados e corrigidos, mais rápido será o desenvolvimento e com menor custo.\n\nComo medir?\nMétricas de software são usadas para ajudar os desenvolvedores a criar softwares com qualidade reconhecida.\n\nAlguns garantem que o software é inconmensurável, porém desconhecem que existem técnicas que colocam as métricas e medições como práticas fundamentais para a determinação do grau de maturidade dos processos de desenvolvimento, conforme definido nas plataformas CMMI e MPS-BR (melhoria do processo de software brasileiro).\n\nO software pode ser medido aplicando-se testes na documentação gerada em cada fase do ciclo de vida. São chamados testes de verificação.\n\nAlém disso, existem outras técnicas de medição, como a Análise de Pontos de Função - APF, usada para a medição de projetos de software, segundo alguns parâmetros de medida de tamanho, em pontos de função - PF, considerando a funcionalidade implementada, sob o ponto de vista do usuário. I Atividade\n\n1. O teste do software deve acontecer: (assinale a única opção correta)\na) No início do processo de desenvolvimento\nb) No final do processo de desenvolvimento\nc) No meio do processo de desenvolvimento\nd) No início ou no final do processo de desenvolvimento\ne) Em todo o processo de desenvolvimento\n\n2. Com relação ao tamanho e complexidade de software, assinale a opção correta, considerando tais características nos anos 1960, 1980 e 2000.\na) Em 1980, o tamanho era pequeno e a complexidade alta.\nb) Em 1960, o tamanho era mínimo e, em 1980, a complexidade era relativa.\nc) Em 1960, o tamanho era mínimo e, em 2000, a complexidade era média.\nd) Em 1980, a complexidade era média e, em 2000, a complexidade era alta.\ne) Em 1960, o tamanho era mínimo e, em 2000, o tamanho é o mesmo.\n\n3. O que estabeleceu a regra de 10 de Myers?\na) Quanto mais tardiamente descobrimos os erros, mais caros eles ficam.\nb) Os testes tornam-se mais complexos, pois os riscos de os softwares não funcionarem a conteúdo cresce de forma exponencial.\nc) Não existe garantia de que a solução tecnológica contratada será entregue no prazo e nos custos negociados.\nd) A partir de processos uniformes e consistentes, a tendência é que o produto final gerado, ou seja, o software seja eficiente.\ne) Todas as decisões tomadas durante o processo de desenvolvimento do software podem comprometer a sua qualidade final.\n\n4. Podemos conceituar qualidade de software como:\na) Um processo sistemático que focaliza todas as etapas e artefatos gerados com o objetivo de garantir a conformidade e uniformidade de processos e produtos, prevenindo e eliminando defeitos.\nb) Um processo que foca em todos os produtos de software gerados pela equipe de desenvolvimento.\nc) Um processo que demonstra que algo funciona corretamente.\nd) Um processo para provar que determinadas funções fazem o que devem fazer.\ne) Um processo para demonstrar que os defeitos não estão presentes.\n\n5. Myers concluiu que \"zero defeito\" é algo inatingível, porém a qualidade de software trabalha com o conceito de zero defeito. O que isto quer dizer?