Capítulo 4 — Replicação da linha de base e piloto
Mapa da aula
Aula 04 publicada. Mapa, exemplo, EX021.
flowchart TD
N0["4.1 Por que primeiro uma linha de base"]
N1["Laboratório — Auditoria de linha de base"]
N2["4.2 Ler a linha de base"]
N3["4.3 Planejar a partir da linha de base"]
N4["4.4 O piloto"]
N5["4.5 Revisões antes do estudo principal"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX021"]
Desenho lógico
flowchart LR
N0["4.1 Por que primeiro uma linha de base"]
N1["Laboratório — Auditoria de linha de base"]
N2["4.2 Ler a linha de base"]
N3["4.3 Planejar a partir da linha de base"]
N4["4.4 O piloto"]
N5["4.5 Revisões antes do estudo principal"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX021"]
[4.1 Por que primeiro uma linha de base]
|
v
[Laboratório — Auditoria de linha de base]
|
v
[4.2 Ler a linha de base]
|
v
[4.3 Planejar a partir da linha de base]
|
v
[4.4 O piloto]
|
v
[4.5 Revisões antes do estudo principal]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX021]
Objetivos de aprendizagem
Você vai (1) medir uma taxa de uso indevido de linha de base a partir de uma auditoria histórica; (2) conduzir um piloto que testa procedimentos, e não efeitos; (3) revisar os instrumentos antes do estudo principal.
4.1 Por que primeiro uma linha de base
Uma linha de base diz a Nadia quão comum já é o uso indevido, o que molda o poder estatístico, e replica uma afirmação em que a Meridian acredita, mas nunca conferiu: a de que sua biblioteca wrapper tornou o uso indevido raro. Dois auditores, cegos em relação ao estudo que virá, revisam uma amostra aleatória de 80 mudanças integradas no ano anterior que tocam criptografia, usando o livro de códigos do capítulo 1 com sua nova regra de sobreposição. Cada achado confirmado é ligado a um identificador pseudonimizado da mudança. Nada da amostra é compartilhado fora da Meridian até que as correções de eventuais problemas em aberto tenham sido implantadas.
Laboratório — Auditoria de linha de base
"""Baseline count of confirmed crypto-misuse in 80 synthetic merged changes (read-only)."""
from collections import Counter
# (change id, confirmed misuse category or None) -- synthetic audit of last year's merges
CHANGES = ([("nonce-iv")] * 7 + [("key-handling")] * 9 + [("primitive-choice")] * 5 +
[("other")] * 2 + [None] * 57)
def main():
c = Counter(x for x in CHANGES if x)
n = len(CHANGES); m = sum(c.values())
print(f"changes {n}, with confirmed misuse {m} ({100 * m / n:.1f}%)")
for k, v in c.most_common():
print(f" {k:<17} {v}")
if __name__ == "__main__":
main()
Execute com python3 lab_baseline.py. Saída verificada:
changes 80, with confirmed misuse 23 (28.8%)
key-handling 9
nonce-iv 7
primitive-choice 5
other 2
4.2 Ler a linha de base
Vinte e três de oitenta mudanças, 28,8 por cento, contêm pelo menos um uso indevido confirmado. Key-handling lidera com nove, seguido por nonce-iv com sete, primitive-choice com cinco e other com dois. A replicação, portanto, derruba a crença da Meridian: o wrapper reduziu alguns erros de algoritmo, mas as chaves ainda acabam em arquivos de configuração, e os nonces ainda às vezes são derivados de carimbos de tempo. Nadia registra a taxa como cerca de 2,9 achados a cada dez mudanças para fins de planejamento, observando que uma mudança pode conter vários achados e que seu desfecho primário conta achados, e não mudanças.
4.3 Planejar a partir da linha de base
Com uma média de controle perto de 1,5 a 2 achados a cada dez mudanças, por equipe, por trimestre, Nadia julga que uma redução pela metade seria detectável com doze equipes por braço, mas uma redução de 20 por cento não. Ela escreve isso num adendo ao registro, com carimbo de tempo anterior ao início do estudo principal, para que os examinadores vejam que a aritmética do planejamento não foi ajustada depois. Ela também observa que a distribuição é assimétrica, com muitos zeros, outro motivo pelo qual o teste de permutação pré-registrado se ajusta melhor aos dados do que um teste t.
4.4 O piloto
Duas equipes voluntárias, excluídas do estudo principal, usam o checklist e a etapa de lint por quatro semanas. O piloto faz apenas perguntas de procedimento. Os revisores preenchem o checklist? A regra de lint para nonces constantes dispara nas chamadas ao wrapper? O auditor cego consegue confirmar os achados sem ver qual braço os produziu? Os revisores preenchem 31 de 34 checklists. A regra de nonce produz falsos positivos nos fixtures de teste, que usam nonces fixos de propósito, com chaves descartáveis. Um auditor adivinha o braço pelos comentários do checklist deixados nas descrições de merge, um vazamento do cegamento.
4.5 Revisões antes do estudo principal
Nadia faz três mudanças e registra cada uma como revisão anterior ao estudo. A regra de lint ignora os arquivos sob diretórios de teste, o que fica documentado para que os examinadores possam julgar o trade-off. As respostas do checklist saem das descrições de merge para um formulário separado que o auditor nunca vê, fechando o vazamento do cegamento. Uma pergunta do checklist sobre a rotação de chaves é reescrita depois que os revisores leram "rotação" como rotação de logs do sistema de arquivos. Ela deliberadamente não calcula um efeito a partir do piloto, porque duas equipes não aleatórias ao longo de quatro semanas não conseguem estimá-lo, e um número tentador poderia enviesar as escolhas posteriores.
Exemplo resolvido
A partir da linha de base, Nadia relata 23 de 80 mudanças com uso indevido, key-handling em primeiro, e planeja para uma redução pela metade; a partir do piloto, corrige o falso positivo dos fixtures de teste, o vazamento do cegamento e uma pergunta ambígua.
Caso sintético. As 80 mudanças auditadas e as duas equipes do piloto são inventadas para fins didáticos.
Erros e limites
Uma amostra histórica de um ano pode subcontar o uso indevido que os auditores não conseguiam ver, como chaves definidas nos ambientes de implantação. Os pilotos testam a viabilidade; relatar efeitos de piloto como evidência é um erro comum.
Exercícios
-
EX021 — Taxa de linha de base. Que parcela das mudanças auditadas continha uso indevido? Rubrica: 3 = 23 de 80, 28,8 por cento;; 2 = só a porcentagem;; 1 = contagem de achados por categoria;; 0 = nenhuma.
-
EX022 — Categoria líder. Que categoria liderou a linha de base, e com quantos achados? Rubrica: 3 = key-handling, 9;; 2 = só a categoria;; 1 = nonce-iv;; 0 = nenhuma.
-
EX023 — Crença testada. Que crença da Meridian a linha de base não conseguiu replicar? Rubrica: 3 = que a biblioteca wrapper tornou o uso indevido raro;; 2 = wrapper eficaz;; 1 = genérica;; 0 = nenhuma.
-
EX024 — Efeito detectável. Que tamanho de efeito Nadia julgou detectável, e qual não? Rubrica: 3 = redução pela metade detectável, redução de 20 por cento não, com 12 equipes por braço;; 2 = um;; 1 = "grande";; 0 = nenhuma.
-
EX025 — Achados do piloto. Cite os três problemas que o piloto expôs. Rubrica: 3 = falsos positivos de nonce nos fixtures de teste, vazamento do cegamento pelos comentários de merge, pergunta ambígua sobre rotação;; 2 = dois;; 1 = um;; 0 = nenhuma.
-
EX026 — Nenhum efeito de piloto. Por que Nadia se recusa a estimar um efeito a partir do piloto? Rubrica: 3 = duas equipes não aleatórias em quatro semanas não conseguem estimá-lo, e um número poderia enviesar as escolhas;; 2 = pequeno demais;; 1 = esqueceu;; 0 = nenhuma.
Síntese
Uma linha de base replicada estabelece expectativas realistas, e um piloto que caça falhas de procedimento, e não efeitos, torna o estudo principal confiável.
Continue estudando — aula 04 (capítulo 04 de 08)
← Capítulo 03 · Índice das aulas · Capítulo 05 →
Continue para a próxima aula já escrita.