Pular para o conteúdo principal

Scrum - Manifesto de testes

Testes são muito importantes no cenário do desenvolvimento atual, logo nada mais natural que os testes passem a ser encarados dentro de uma perspectiva ágil. Sam Laing elaborou um manifesto com os seguintes diretrizes:

TestingManifesto

Testar durante o desenvolvimento, mais que testar somente ao final

Os testes ágeis devem começar logo no início do projeto e durante o desenvolvimento.

É dever do time pensar e definir quais testes deverão ser criados e como serão criados, quais as estratégias de teste serão adotadas, quais riscos deverão ser evitados ou mitigados.

Trabalhar a prevenção de defeitos, mais que procurar defeitos

Via de regra, bom design, boa arquitetura e um desenvolvimento orientado a testes vai fazer com que se tenha menos defeitos. 

Outro ponto essencial é o foco no valor, desenvolver somente o código estritamente necessário para atender ao que o cliente vai precisar ou que irá gerar valor para ele. E nada mais do que isso.

Testar entendimentos, mais que checar funcionalidades

Sempre validar se o que o time entendeu sobre a necessidade do cliente é realmente o que o cliente precisa, o cliente precisa participar dessa validação. Protótipos são uma forma de tornar esse processo mais claro.

Construir o melhor sistema, mais que quebrar o sistema

O time de desenvolvimento deve sempre focar no melhor, quanto maior o esforço para a entrega, quanto maior o foco no resultado maiores as chances de se entregar algo de valor ao cliente.

Time responsável pela qualidade, mais que responsabilidade exclusiva dos analistas de testes

Toda equipe é responsável pela qualidade, todos os envolvidos tem o compromisso com a entrega e com a qualidade, analistas, desenvolvedores e clientes. No momento que todos estão participando ativamente do progresso da solução falhas podem ser identificadas de forma rápida assim como o foco no valor gerado também.




Comentários

Mais visitadas

Aplicação Flask usando Nginx e Gunicorn

Aplicação Flask usando Nginx e Gunicorn Se você já desenvolveu uma aplicação Flask básica, sabe que o servidor de desenvolvimento embutido não é ideal para produção. Ele não é projetado para lidar com altos volumes de tráfego ou conexões simultâneas. Para tornar sua aplicação Flask mais robusta e pronta para produção, podemos usar o Gunicorn como servidor de aplicação e o Nginx como proxy reverso. Neste artigo, vamos adaptar o exemplo anterior ( Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker ) para incluir o Nginx e o Gunicorn. O que são Nginx e Gunicorn? Gunicorn O Gunicorn (Green Unicorn) é um servidor de aplicação WSGI que roda aplicações Python como o Flask. Ele é eficiente e simples de configurar, lidando com múltiplas requisições ao mesmo tempo, algo que o servidor embutido do Flask não faz bem. Nginx O Nginx é um servidor web que atua como um proxy reverso. Ele recebe requisições HTTP e as encaminha ao Gunicorn. Além disso, o Nginx pode: Servir arquivos ...

Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker

Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker Neste guia, vamos criar uma aplicação básica que acessa um banco de dados PostgreSQL e realiza operações CRUD (Create, Read, Update, Delete). Vamos usar Flask e executar tudo com Docker. Sem estilos ou extras, apenas o essencial. Estrutura do Projeto crud-app/ |-- app/ | |-- app.py | |-- templates/ | | |-- index.html | | |-- edit.html |-- Dockerfile |-- requirements.txt |-- docker-compose.yml Passo 1: Dependências Crie um arquivo requirements.txt com as seguintes linhas: Flask==2.2.2 Flask-SQLAlchemy==3.0.2 psycopg2-binary==2.9.3 Werkzeug==2.2.2 Passo 2: Aplicação Flask Arquivo app/app.py : from flask import Flask, render_template, request, redirect, url_for from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # Configuração do banco de dados app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:password@db:5432/crud_db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db...

Centralizar Texto em Edit

Como todos sabemos o Edit mantém todo texto digitado a esquerda, o que não fica bem quando o usamos para a entrada de números, pois bem, o exemplo abaixo apresenta uma alternativa para centralizar um determinado valor dentro de um Edit: procedure EditChange(Sender: TObject); var vl_label : TLabel; //variável do tipo Label begin vl_label := TLabel.Create(self); //criamos um label WITH vl_label DO BEGIN Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit Caption := TEdit(sender).Text; //pegamos o conteúdo do edit SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN, (TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit END ; vl_label.Free; end ;