不具合発見の早さと修正コスト
In general, the earlier you get rid of a bug,
the less it costs you.
翻訳: 不具合発見が早ければ早いほど、修正コ
ストは安くなる
6
Slide 7
Slide 7 text
早期発見しないと、文脈の喪失によ
りコストが増大する
Bringing testing forward in the software
development life cycle decreases the cost
and complexity of fixing bugs because they
are found closer to when they were created,
which establishes more of a context for
what could have caused things to go wrong.
翻訳: 早い段階でテストを行うことは、バグ修
正のコストと複雑さを低減させます。なぜな
ら、バグが作られた時点に近い場所で発見され
るため、何が問題を引き起こしたかの文脈がよ
り明確になるからです。 7
Slide 8
Slide 8 text
コストの増大は指数関数的なのでシ
フトレフトが重要
Shifting problem detection to the "left,"
earlier on this timeline, makes it cheaper to
fix than waiting longer, …
翻訳: 問題の発見をタイムラインの「左」
、つま
りより早い段階にシフトすることで、後で待つ
よりも修正コストが安くなります。
8
Slide 9
Slide 9 text
シフトレフトの考え方に立ち戻る
熟練したテスターは、開発サイクルの最初から
関与している
Skilled testers are involved from the start of
the development cycle and are given time
and resources to do an adequate job of all
necessary forms of testing.
本書の序文で、成功するチームの共通点として
「熟練したテスターが開発サイクルの最初から
関与している」ことを挙げています。
9
テスタビリティレビューの経済的効
果
At least half of your testing costs can be cut
before anybody ever runs a test, if only your
systems are designed with testability in
mind.
翻訳: テストのしやすさを念頭に置いて設計さ
れているだけで、実際にテストを実行する前
に、テストコストの少なくとも半分は削減でき
る
19
Slide 20
Slide 20 text
テスタビリティは設計段階で考えた
い
Failing to review designs and code for
testability: At least half of your testing costs
can be cut before anybody ever runs a test,
if only your systems are designed with
testability in mind.
翻訳:
もしシステムがテストのしやすさを念頭に置い
て設計されているだけで、実際に誰かがテスト
を実行する前に、テストコストの少なくとも半
分は削減できるのです。
20
実例:設計段階でのQAの介入
During one iteration planning meeting that I
was in, the programmers started talking
about implementation and drawing pictures
on the whiteboard to show what they were
thinking.
翻訳: イテレーション計画ミーティングで、プ
ログラマーたちが実装について話し合い、ホワ
イトボードに図を描いていた。
25
Slide 26
Slide 26 text
QAからの問いかけ
I thought about it for a bit and asked the
question, "Can it be done more simply?
The permutations and combinations for
testing your proposed implementation
will make testing horrendous."
翻訳: 少し考えてから質問した。
「もっとシンプ
ルにできませんか?その実装案だと、テストの
順列組み合わせが膨大になり、テストが地獄に
なります。
」
26
Slide 27
Slide 27 text
その後の展開
The programmers thought about it for a
couple of minutes and suggested an
alternative that not only met the customer's
needs, but was simpler and easier to test. It
was a win-win combination for everyone.
翻訳: プログラマーたちは数分考え、顧客のニ
ーズを満たしつつ、よりシンプルでテストしや
すい代替案を提案した。全員にとってWin-Win
の結果となった。
27
YAGNI原則
You Aren't Gonna Need It
YAGNI stands for "You aren't gonna need it"
and advocates against investing time in
functionality that's not needed right now.
翻訳: YAGNIは「どうせそれは必要にならない」
の略で、今すぐ必要とされていない機能に時間
を投資することに反対します。
47
Slide 48
Slide 48 text
YAGNIが言及しているコスト
The less code in the project, the better.
Introducing code just in case without an
immediate need unnecessarily increases
your code base's cost of ownership.
翻訳: プロジェクトのコードは少ないほど良
い。差し迫った必要性がないのに「念のため」
にコードを導入すると、コードベースの所有コ
ストを不必要に増大させます。
48