RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

【開発×テストLT まとめ】テストが書きたくなる、11選

こんにちは、技術広報のyayawowoです。

システム開発で重要な『開発とテスト』について、
エンジニアの体験談やTipsを覗いてみませんか?

延べ450名以上の参加申込をいただいた、
『開発×テスト LT会』全2開催分の資料をまとめて紹介します!

イベント詳細はこちらをご確認ください!
開発×テスト LT会
開発×テスト LT会 - vol.2

開発×テスト Tips 11選

絶対にテストコードを書かないチームのテストルール

発表者:ヒグ!さん
speakerdeck.com

◆ 発表内容
・テストコードのいいところ
 →テストを自動化して効率化
 →単体テストを入れることでコードの品質を評価
 →修正して再テストが容易
・手動テスト/自動テストのメリット/デメリット
・自動テストデータの扱いやすさ、手動テストの柔軟性
 →双方の長所を活かして生産性向上に繋げていきたい

意外とカンタン!?テストコードの改善から始めるシステム開発の効率化

発表者:面川泰明さん
speakerdeck.com

◆ 発表内容
・テストやっててつらいことはありませんか?
 →考慮漏れしたテストケースで不具合を発見できない
 →テスト用のドキュメントをいちいち作成/更新するのが面倒
・今回取り組んだ内容
 ① テストコードは適切にケース分けする
 ② あえてDRYをやめ、べた書きする
・続けて良かったこと
 エンジニア:テストケースの考慮漏れに気づきやすくなった
 テスター :テスト用のドキュメントを作成/更新する手間が削減された

テスト嫌いなプログラマがテストを語る

発表者:白柳隆司さん
speakerdeck.com

◆ 発表内容
・テストが「嫌い」なプログラマは多いはず
 →おおっぴらに「嫌い」とも言えない空気感
・「嫌い」だから遠ざけていいわけではない
・「嫌い」の理由を見つめる
 →そこから出てくる視点を活用する

ISTQB/JSTQBシラバスから学ぶAgileTesting

発表者:Daiki Tanoguchiさん
speakerdeck.com

◆ 発表内容
・品質はチームのもの
・リスク評価は「相対見積もり」でできる
・探索的テストはセッションベースドかつテストチャーターを用いて行おう
・要求エンジニアリングの技法を使ってテストを考えよう

単体テストゼロからテスト文化を醸成させた話

発表者:southさん
speakerdeck.com

◆ 発表内容
・やったこと
 →ライブラリ導入(Jest/Testing Library)
 →ドキュメント(ライブラリの主要なAPI/テスト観点/サンプルコード)
 →モック関数を用意
 →読書&発表
 →ペアプロ・モブプロ
・ライブラリを導入して終わりではなくテストが書きやすい環境を整備
・テストは慣れるしかない!が段階的に慣れていくための支援をしよう

少しずつ手厚くして不具合や仕様漏れを防ぐために

発表者:fumiyasacさん

www.slideshare.net

◆ 発表内容
・少しずつUnitTestを手厚くして複雑になっても仕様を読み取れる様にする
 ① 仕様を良い意味で疑いながら必要な観点を洗い出す
 ② UnitTestがあると以前の仕様の確認もできる
 ③ 言葉だけでは紛らわしい部分にはテストを手厚く書く様にする

CircleCIでtiming dataに基づいたテスト分割をDartで利用できるようにした話

発表者:operandoOSさん
speakerdeck.com

◆ 発表内容
Dart testsでCircleCIのtiming dataを利用して良い感じにテスト分割/並行実行したい…!
 ① Dart testの結果をJunit XMLで出力する
 ② 出力したJunit XMLをテストメタデータとしてCircleCIに認識させる
 ③ テスト実行のコマンドを書き換える
・"No timing found for <ファイル>"というエラーが出た場合
 原因:timing dataのfile keyの値がnull
 対応
 ・dart-junitreportの内部で利用しているdart-testreportライブラリの修正
 ・dart-junitreportでJunit XML出力する際、testcase elementにfile attributeの追加
 ・file attributeに記載されたfile pathをCI上でsedコマンドを利用して書き換え

ソフトウェアエンジニアが品質保証を学んでわかったこと

発表者:hisaichi5518さん
speakerdeck.com

◆ 発表内容
・品質を定義するのが重要
・プロダクト品質を保証するには、品質を作りこむことが大事
・品質を作り込むには、チーム全員が開発プロセスをすべてフェーズでテストをする=Holistic testing
・テストとは、開発プロセスのフェーズで出来た成果物に対してチーム全員が想定したものか確認すること

個人開発でテストを書いてみて良かったこと&伸びしろ

発表者:あきおさん
akio-blogger.blogspot.com

◆ 発表内容
・なんで個人開発でテストを書こうと思ったのか?
 →個人開発では0からテストを書くことができる
 →個人開発だから自由に技術選定ができる
 →若干仕様が複雑な部分がある
・良かったこと
 →テストが開発記録代わりになる
 →最初以外はテストのメンテコストを感じない
 →少し時間はかかるけどチャレンジングなことができる

UTアンチパターン

発表者:ryo07さん

www.slideshare.net

◆ 発表内容
アンチパターン
 ① 「そもそもテストが存在しない!」
 ② 「テスト名が雑!」
 ③ 「mock, verify に any を使うな!」
 ④ 「テストの中に実装コードを混ぜるな!」
 ⑤ 「なにもアサートしていない」
 ⑥ 「Null チェックが甘い」

インシデントゼロを支える技術

発表者:Yuji Yamaguchiさん
speakerdeck.com

◆ 発表内容
・フロントエンドテストのつらみ
 →単体テストは問題ないのに手戻りや結合バグが多くなりがち
・testing-libraryの導入で良かったこと/難しかったこと
・testing-libraryを使うと、実態に近い状態でテストをすることができる
・全体仕様を把握するための材料として、テストケースを作成するのもオススメ
単体テストよりもコストがかかるので、やりすぎないように注意が必要

最後に

『開発×テスト LT会』のまとめはいかがでしたでしょうか?
参考になるシステム開発/テストのTIpsが1つでもありましたら、幸いです。
また、『開発×テスト LT会 vol.3』が7/20(水)19:00~、開催を予定しております!

rakus.connpass.com

登壇/視聴ともに募集をしておりますので、是非お気軽にご参加ください!
最後までお読みいただきありがとうございました!


◆TECH PLAY
techplay.jp

◆connpass
rakus.connpass.com

Copyright © RAKUS Co., Ltd. All rights reserved.