O documento discute o conceito de "Shift Left" no desenvolvimento de software, que significa encontrar e corrigir defeitos o mais cedo possível no ciclo de desenvolvimento. Apresenta as seções sobre o que é, quando aplicar, quem deve estar envolvido, por que é importante, onde aplicar, como aplicar e exemplos de ferramentas que apoiam a abordagem "Shift Left".
3. Meu nome é Douglas Cardoso.
Sou graduado em Matemática, pós-
graduado em Inteligência Artificial,
Análise e Projeto de Sistemas, e
Gestão de Tecnologia da
Informação.
Desde 2010 atuo na área de teste e
qualidade de software, e qualidade
de processos.
douglas-cardosom
Shift Left
10. Por que?
“O usuário final tem muito tempo e criatividade
para encontrar defeitos no sistema e não
queremos que ele descubra essa habilidade.”
Douglas Cardoso, 2021
Shift Left
14. Como?
Shift Left
- Revisando a especificação
- Participando ativamente de reuniões
- Perguntando e validando
- Compartilhando informação
- Garantindo testabilidade
- Aplicando PDCA
15. Exemplos de software difícil de testar:
https://www.williams-sonoma.com/
Shift Left
16. Exemplos de software difícil de testar:
Shift Left
//selecting data from database
public DataTable Select()
{
//step 1: database connection
SqlConnection conn = new SqlConnection(myconnstring);
DataTable dt = new DataTable();
try
{
//step 2: writing sql query
string sql = "SELECT * FROM tbl_contact";
//creating and using sql and conn
SqlCommand cmd = new SqlCommand(sql, conn);
//creating SQL DataAdpter usind cmd
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
conn.Open();
adapter.Fill(dt);
}catch(Exception ex)
17. Exemplos de software difícil de testar:
Shift Left
class Prediction:
def __init__(self, messages, model, questions: set, answers: set,
pc_questions: dict, pc_answers: dict, tokenizer):
self.questions = questions
self.answers = answers
self.pc_questions = pc_questions
self.pc_answers = pc_answers
self.tokenizer = tokenizer
self.model = model
self.messages = messages
self.pp = PreProcessing()
self.s = Similarity(questions=self.questions,
answers=self.answers
)
def predict(self, msg):
if msg == '' or msg is None:
return emergency_message()
18. Exemplos de software difícil de testar:
Shift Left
def process_numbers(input):
"""
Create a list that has share of all even numbers in input list
Now in this list, if number is less then 20 return a list where
every element is a dictionary containing square and cube of a number
"""
return [{'square': n*n, 'cube': n*n*n} for n in [i*i for i in input if i%2==0] if n<20]