Slide 1

Slide 1 text

@rainforestqa rainforest Nature Inspired QA Thoughts By Paul Burt (a very handsome mans)

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

@rainforestqa rainforest DNA vs RNA and their Transcription Polymerases

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

@rainforestqa rainforest DNA … + is strongly typed. + has unit tests. + is slow (harder to change).

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

@rainforestqa rainforest RNA … + is weakly typed. + does not test. + is fast (easy to change).

Slide 10

Slide 10 text

@rainforestqa rainforest RNA’s Transcription Enzyme Is “error prone […] It’s just a really crappy polymerase,” From Spillover, pg. 273

Slide 11

Slide 11 text

@rainforestqa rainforest Enter the Eigen Paradox! A Mathematical proof that says...

Slide 12

Slide 12 text

@rainforestqa rainforest Aw, Shit!

Slide 13

Slide 13 text

@rainforestqa rainforest You tell ‘em, Manfred Eigen!

Slide 14

Slide 14 text

@rainforestqa rainforest The Take-Away ● Scripts and other tiny software? Ok to roll without tests. ● Multi-file projects? You MUST test.

Slide 15

Slide 15 text

@rainforestqa rainforest So yeah, it’s hard. Fear not, JFK offers inspiring words: “We choose to go to the moon [write tests] in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills…”

Slide 16

Slide 16 text

@rainforestqa rainforest Tent Caterpillars and Gypsy Moths Boom and Bust Cycles

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

@rainforestqa rainforest Q: What happens when a bug catches a bug?

Slide 19

Slide 19 text

@rainforestqa rainforest Why the Boom and Bust? ● Predation?
 ● Food scarcity or abundance?
 ● Venus is in retrograde motion?

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

When a caterpillar wanders through a prior infection, it too becomes infected, then melts. The resulting melt drips on leaves. It’s neighbors (likely) become infected. Big population = Big problems

Slide 22

Slide 22 text

@rainforestqa rainforest The Take-Away ● Some bugs are only revealed in large sets. For example, lots of users. ● If you’re seeing erratic and seemingly random behavior in a bug report… ● It could be a melty bug! ● (bugs interacting with bugs)

Slide 23

Slide 23 text

@rainforestqa rainforest Adapt or Atrophy Our History n Frogs, Fish, and Everything

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

@rainforestqa rainforest Re-using code = Hello bugs

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Human Shark

Slide 28

Slide 28 text

The Take-Away Generally: It’s easier to modify something that exists, than to build it from scratch. Adapt, don’t create. That said... adapting is a shortcut. Shortcuts lead to bugs of their own. When bugs appear knowing why helps. Fixing the problem is often significantly easier.

Slide 29

Slide 29 text

@rainforestqa rainforest In Diversity, We Find Strength Stay away from your cousin

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

@rainforestqa rainforest Emacs vs Vim Python vs Ruby iOS vs Android

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

● Really, Natural Selection? ● Yup.

Slide 34

Slide 34 text

Competition = Strength ● (Even with competition, life is still relatively fragile)

Slide 35

Slide 35 text

@rainforestqa rainforest Take something out of it’s intended environment and … OH HAY, THATS Y U DO 
 12FACTOR APP!

Slide 36

Slide 36 text

The Take-Away Drift between teams / programming philosophies can be beneficial (breeds strength!) Don’t get carried away, though. Taking a creature (or piece of software) out of it’s native environment can have bad effects. Use common sense.
 Small drifts between highly similar products will drive fierce competition. Can be a great natural motivator.

Slide 37

Slide 37 text

@rainforestqa rainforest GMO, Hell No! Intelligent Design -- No, really

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

@rainforestqa rainforest Designing for any ONE attribute will lead you into a corner.

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

Software Analogues Making changes to code means you increase your ‘Unknowns’. Old features will break after making a change. It’s ok! Don’t need to fix it all, just need to know about it. Together, we determine what’s acceptable and what is not.


Slide 42

Slide 42 text

@rainforestqa rainforest Prions, Protists, and Viruses Oh My!

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

@rainforestqa rainforest How did we discover viruses? We couldn’t see them. The answer is theory.

Slide 47

Slide 47 text

Famous Viruses Influenza (Birds) Ebola (Bats, we’re pretty sure) HIV (Primates) SARS (Bats) Hendra (Bats) Nipah (Bats) Fuck Bats (!)

Slide 48

Slide 48 text

@rainforestqa rainforest Sterile Environments (ie Simulators) are shit. To find the right bug, the host matters.

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

The Take-Away Like viruses, prions, etc… some bugs are invisible. Bugs appear in every imaginable shape and size. As a result… “Bug Free” software is a unicorn. Simulators are sterile environments. To find bugs, you gotta get dirty (test on device / host).

Slide 51

Slide 51 text

Fin