SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
単体テストのすすめ
 A recommendation of
      unit testing

   KOMATSU Seiji (comutt)
        atWare, Inc.
     September 14, 2012
   skomatsu [at] atware.co.jp
     facebook.com/comutt
           @comutt
About

名前: 小松 聖司
職業: システムエンジニア
職歴: 株式会社アットウェアにて、
    Web アプリ開発に携わること4年目
言語: 日本語, 英語, Java, Python, etc
Note

ソースコードは、(ハンズオン完成版ですが)
以下で公開しています。
https://github.com/comutt/unittest-study
まったくもって Timetable 通りには進みませ
んでした。(タイムアップ)
Purpose


 単体テストを
おすすめ・布教する
Timetable
19:00 - 19:30
  単体テストについて説明
19:30 - 20:00
  単体テストを実際に書いてみよう
20:00 - 20:15
  自動テスト(CI)について説明
20:15 - 20:30
  自動テスト(CI)の実演
20:30 - 20:40
  まとめ
20:40 - 21:00
  質疑応答、撤収
Target
対象
Lv.0 単体テストを知らない方
Lv.1 単体テストの書き方を知らない方
Lv.2 単体テストの書き方は知ってるけど、
     書くメリットがわからない方
非対象
Lv.3 単体テストを書くメリットは
     理解してるけど、面倒な方
Lv.4 ばりばり単体テストを書いてる方
What is Unit Test?
Unit Test?

ユニット(モジュール、クラス、メソッド)
単位でテストするからユニットテストと
いいます
(日本語訳: 単体テスト)
アプリケーションを横断的・全体的に
テストする結合テストに比べて、
非常に小さい、軽量なテストです
Principle
  モジュールの数だけ、
 テストコードを書きます
               Pair
Module1               Test for Module1
               Pair
Module2               Test for Module2
               Pair
Module3               Test for Module3

Application           Test for Application
Principle
 パターンの数だけ、
テストコードを書きます

                   Test for Input1
            Pair
Function           Test for Input2

                   Test for Input3

                   Test for Function
Example 1
コード

 int sum(int n, int m) {
     return n + m;
 }



テストパターン

  1 + 1 = 2    // 正常系1
  -1 + -1 = -2 // 正常系2
Example 2
コード
 // n を m で割った値を返す
 int divide(int n, int m) {
     // 0除算防止
     if (m == 0)
         return 2147483647;

       return n / m;
 }

テストパターン
     9/ 2 = 4             // 正常系1
     -5 / 3 = -1          // 正常系2
     1 / 0 = 2147483647   // 異常系
Point

テストコードは正常系だけではなく、異常系も
書きます
アプリが「予期せずエラーを吐いて終了」
そんな経験ありませんか?
 テストコードを書けば、
 その可能性をぐんと減らせます
Point

テストコードは、適切な粒度で書きます
実は何気に難しいスキルです
パターンを網羅することを意識しすぎると、
冗長すぎるテストコードが完成します
テストコードがないことに比べれば
1000倍良いですが、
保守性を低下させるなどの弊害が生じます
Principle


テストコードは、
 実装ではなく
仕様に基づいて書く
Reason



実装に基づいてテストコードを書いてしまう
と、仕様との相違を検出できません
Merit


ソースコードレベルで仕様が明確になります
仕様書と辻褄の合わないソースコード、
経験ありませんか?
Merit


機能追加やリファクタリングが容易になります
機能追加・リファクタリングしたら、
動作が変わってしまう(デグレ)かもしれな
い、という不安・リスクから解放されます
Optional Merit


引き継ぎのコストが下がります
テストコードで仕様が分かること
ソースコードを修正するリスクが低いこと
が主な理由です
Principle


テストコードは
こまめに書く
Reason

間違っても、「アプリケーション組み上げたら
まとめて書く」なんて考えてはいけません
テストによって見つけられるはずの
早期不具合発見ができなくなります
実装を忘れてしまうリスクがあります
往々にして、
一気にテストコードを書くのは「苦痛」です
More


できる限り、関数・メソッド単位で
テストコードを追加していきましょう
つきつめると、
TDD (Test Driven Development)、
ないしはそれに近い形になります
Cycle
 実装(修正)する
→テストコード書く
→テストを実行する
→実装(修正)する

 Write          Write
 Impl           Test


         Run
         Test
Principle


 テストコードは、
常にアップデートする
Reason

「仕様に基づいて書く」のだから、
仕様がアップデートされるたびに、
テストコードがアップデートされなければ
なりません
そうしないと、テストコードが腐ります
自動テスト(CI)を活用します(後述)
1 Minute Break
How to write
 Unit Test?
Unit Testing Library
単体テストのライブラリが存在するので、
言語・開発環境に合わせて選択します。
(標準で用意されている言語・開発環境もあります)

一例
 C: CUnit, CCUnit
 C++: CppUnit
 .NET Framework: Visual Studio 標準, NUnit
 Java: JUnit, TestNG
 iOS: Xcode 標準
 Android: Android SDK 標準 (JUnit)
 PHP: PHPUnit
 JavaScript: Jasmine, QUnit
How to Write?


言語、ライブラリ次第なので、
それに併せて覚える必要があります。
言語習得するのと同じように、
テスト記法を習得する必要がある、
と考えればよいと思います。
Try with JavaScript

本日は JavaScript で
単体テストを書いてみます
JavaScript を選んだ理由
 とりあえずブラウザがあれば動くためです
 「単体テストってどういうもの?」
 を理解するためには、言語は関係ないです
Jasmine

JavaScript の単体テストに使うライブラリは
「Jasmine」です
 以前に函館で Android ICS の講演をして
 くださったわかめさん (@vvakame) に
 おすすめされたので使ってみることにしました
 「Jasmineのここが優れているよ!」
 という趣旨ではありません
Jasmine
Jasmine を導入するためには、
 公式サイトから Standalone Release 版を取得
 ruby gems で gem install jasmine
 github リポジトリから clone
 のいずれかの方法でライブラリを取得します

 今回使用するのは、
 Standalone Release 版です
Jasmine
Jasmine 公式サイト
 http://pivotal.github.com/jasmine/
Jasmine
jasmine-1.2.0/
├── SpecRunner.html            テスト実行用HTML
├── lib/
│   └── jasmine-1.2.0/         Jasmine ライブラリ
│        ├── MIT.LICENSE
│        ├── jasmine-html.js
│        ├── jasmine.css
│        └── jasmine.js
├── spec/
│   ├── PlayerSpec.js
                               テストコード配置先
│   └── SpecHelper.js
└── src/                       ソースコード配置先
    ├── Player.js
    └── Song.js
Run Jasmine
お好きなブラウザで、
SpecRunner.html を開いてください。




上記のような画面が出力されればOKです。
Jasmine Spec

Jasmine のテストコードを記述したソース
ファイルは、決まりではありませんが、
<テスト対象js名> + Spec.js
とすることにします。
Jasmine に限らず、ほかの言語でも、
このような規則で、テストコードファイルの名
前を付けるのが一般的です。
Jasmine Spec
 Jasmine のテストコードは、
 おおざっぱに言って以下のように記述します。
describe( テスト説明1 , function() {
  // テスト対象クラスのインスタンス
  var target;
 beforeEach(function() {
   // インスタンス生成
   target = new TestTarget();
 });

  // テスト実行
  describe(“テスト説明1.1”, function() {
    it(“テスト説明1.1.1”, function() {
      expect(target.doSome()).toEqual(“期待値”);
    });
  });
});
Jasmine Spec

describe( テスト説明 , function(){...});
 第一引数は、「これが何のテストか」
 という説明文字列です。
 describeがネストされると、テスト結果も
 ネストされて表示されます。
 クラス名やメソッド名など、
 適切な説明文字列を指定します。
Jasmine Spec


it( テスト説明 , function(){...});
 第一引数は、describeと同じです
 こっちは、「どのパターンのテストか」
 という説明文字列にするのがおすすめです。
Jasmine Spec

expect(target.doSome()).toEqual( 期待値 );
 実際にテストを実行する文です。
 上記の場合は、doSome() が 期待値 を正
 しく返すかどうか、のテストです。
 toEqual以外にも、trueかどうかを検査する
 toBeTruthyなどがあります。
Try Jasmine


実際に、Jasmine を使ってテストコード
の作成をしてみましょう。
もちろん、ソースコードの実装も
してもらいます。
Try Jasmine
SpecRunner.html と同じところに、
GreetingSpecRunner.html があります。
これをブラウザで開くと、
テストが失敗します。
これを成功するように、実装およびテストコー
ドの作成を行ってください。
なお、 Greeting.html が、テスト対象のソー
スコードを使ったサンプルアプリです。
Try Jasmine
src/Greeting.js がソースコード、
spec/GreetingSpec.js がテストコードです。
src/Greeting.js は、肝心要の部分が全て未実
装です。
src/Greeting.js は、テストケースが1つ書か
れています。
このテストケースが成功したら、
テストケースを最低2つ追加してください。
Specification
仕様 ver.1 は以下の通りです。
午前の時間は「おはよう」を表示する
午後の時間は「こんにちは」を表示する
夕方の時間は「こんばんは」を表示する
未定義の時間の場合は、「エラー」を表示する
getGreeting の第1引数には、以下が渡される
  午前: morning
  午後: afternoon
  夕方: evening
  第1引数に未定義の時間が渡されたときは、
  undefined を返却する
仕様 ver.1 では、第2引数 name を無視する
Know How


テストは Greeter クラスの
getGreeting に対して行います。
Java Script では、
引数を省略することができます。
(省略時、undefined が渡される)
Test Patterns

仕様 ver.1 で必要なテストパターン(例)
 ( morning ) -> おはよう
 ( afternoon ) -> こんにちは
 ( evening ) -> こんばんは
 ( 不正な文字列 ) -> undefined
Run in Browser


    テストが全て通ったら、
 ブラウザでも確認してみてください。

当たり前ですが、問題なく動くと思います。
Specification


仕様 ver.2 は以下の通りです。
名前が指定されたときは、「∼さん、∼」を表示する。
getGreeting の第2引数 name には、名前が渡される。
名前が指定されない場合は、ver.1 と同じ挙動をする。
Run in Browser



   テストが全て通ったら、
ブラウザでも確認してみてください。
Test Patterns

仕様 ver.2 で必要な追加テストパターン(例)
 ( morning , 中村 ) -> 中村さん、おはよう
 ( afternoon , 山中 ) -> 山中さん、こんにちは
 ( evening , 黒田 ) -> 黒田さん、こんばんは
 ( 不正な文字列 , 田中 ) -> undefined
How do you feel?

いかがでしたでしょうか?
「仕様に合わせてテストを書き、テストが通るよ
うに実装する」という一連の流れが、なんとなく
お分かりいただけたでしょうか。
テストを書くというのは、この作業の繰り返すこ
とです。
5 Minute Break
Continuous
Integration
Continuous Integration
        (CI)
 繰り返しになりますが、
 テストコードを書くのは一回きりではありません。
 実装を続ける限り、
 テストコードの作成と実行を続けなければ
 意味がありません。
 そのために、
 継続的な統合(Continuous Integration; CI)
 と呼ばれる試みが必要になります。
 この会では、継続的な統合を「自動テスト」
 として呼ぶことにします。
What is CI?

日本語訳の「継続的な統合」は、
いまいち意味が掴めない方が多いのではないで
しょうか。
簡単にいうと、ソフトウェアの品質を維持する
ために、継続的に、高頻度で品質管理(QC)を行う
仕組みです。
といってもまだ分かりづらいので、
さらに単純に言うと、定期的にテストコードを
実行する仕組みです。
CI System
CIサーバは、リポジトリからソースコード全体
を取得し、常にテストを実行する役割です。


                           CI
      Repository
                         Server




Dev     Dev        Dev
PC      PC         PC
CI Notifaction
CIサーバは、ビルド、テスト実行後、
その結果を通知することができます。


                                    CI
      Repository
                   2. Checkout    Server
                                 3. Build &
      1. Commit                  Run Tests

Dev                               4. Notify
PC         ex) Mail, RSS, etc
Merit
ビルドやテストが自動ですべてなされるため、
テストを全て実行するコストが
基本的にかかりません。(初期設定のみ)
定期的にビルドされるため、
万が一ビルドが壊れてもすぐに
開発者(チーム)が知ることができます。
また、どのコミットで、どの部分が壊れたか、
が簡単に分かります。
Merit
プロジェクトが大きくなれば大きくなるほ
ど、テストコードも増えます。
それらを、人の目だけでメンテナンスするこ
とは不可能です。
全テストの実行は、機械的に実行するのが
一番効率的です。
なので、全テスト実行は、
素直にコンピュータにお任せしましょう。
Jenkins
CI用ソフトウェアはいくつかあります。
その中でも、使いやすいと定評のある、
Jenkins がおすすめです
Jenkins

様々なプラットフォームに
対応しており、
専門的な知識がなくても、
簡単に導入できるのが
特徴です。
Jenkins

Jenkins のインストール・設定方法は、
ここでは触れません。
ほとんどのプラットフォームで動作するので、
お試しで動かすだけなら
どこで動かしてもよいです。
プロジェクトで本採用するときは、
きちんとCIサーバ用PCを構築しましょう。
Jasmine on Jenkins

Jasmine のテストケースを、
Jenkins で実行することは可能です。
ここでは、
Rhino + Jasmine + jasmine-reporters
にて動かしてみます。
興味のある方は、 GitHub をご覧ください。
Jasmine on Jenkins



      実演タイム
Conclusion
Conclusion
テストコードを書くのは当たり前、
と考えるようにしてください。
テストコードを書くコストは当然必要です。
が、それも、品質の良いソースコードを書くの
に必要なコストです。
テストコードを書くコストを削減することは、
ソフトウェアの品質を自分から下げている
ことに他なりません。
Conclusion

テストコードを書かずに、
実装後の結合テストでテストを
全て行う、というのはよくありません。
テストコードを書けば、
実装中にバグを早期に発見でき、
リファクタリングも安全に行うことができます。
Conclusion

アプリケーションを修正するコストは、
実装してからの経過時間が増すほど増える傾向に
あります。
その増えるコストを無視して、
「テストコードによって実装コストが増え、全体
のコストが増えてしまう」
と考えるのは短絡的といえます。
Conclusion

テストコードを書くことは、
チーム開発においてより威力を発揮します。
が、チーム内でテストコードを書く人、
書かない人が混在していては意味がありません。
テストコードは、「実装者全員が必ず書かなけれ
ばならない」と、あらかじめコミットすることが
大切です。
Conclusion
(まとめが5枚目になった。。。)
テストコードを書くためのコストは、
学習初期はある程度大きくなりますが、
数をこなすことで、要領が分かってきます。
「テストコードを書かないと不安だ。書かないな
んてあり得ない。」と思えれば、あなたは数段レ
ベルアップしています。そこを目指してくださ
い。

Mais conteúdo relacionado

Mais procurados

最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステムSEGADevTech
 
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術Hiroaki Nagashima
 
Spring bootでweb バリデート編
Spring bootでweb バリデート編Spring bootでweb バリデート編
Spring bootでweb バリデート編なべ
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころMasayuki Wakizaka
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門Shingo Tamaki
 
(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플SangIn Choung
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWayTakayuki Shimizukawa
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ SEGADevTech
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service EnvironmentSunao Tomita
 
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについてSEGADevTech
 
WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術Sho Okada
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門demuyan
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccYujiSoftware
 
EC2上のWordPressをShifterに移行してみた!
 EC2上のWordPressをShifterに移行してみた! EC2上のWordPressをShifterに移行してみた!
EC2上のWordPressをShifterに移行してみた!Eiji KOMINAMI
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis小川 昌吾
 
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)H Iseri
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話Ryosuke Uchitate
 

Mais procurados (20)

最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
 
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
 
Spring bootでweb バリデート編
Spring bootでweb バリデート編Spring bootでweb バリデート編
Spring bootでweb バリデート編
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
 
(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플(애자일) 테스트 계획서 샘플
(애자일) 테스트 계획서 샘플
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
Proxy War
Proxy WarProxy War
Proxy War
 
【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay【修正版】Django + SQLAlchemy: シンプルWay
【修正版】Django + SQLAlchemy: シンプルWay
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
 
俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment俺の俺による俺のための App Service Environment
俺の俺による俺のための App Service Environment
 
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
 
WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
 
EC2上のWordPressをShifterに移行してみた!
 EC2上のWordPressをShifterに移行してみた! EC2上のWordPressをShifterに移行してみた!
EC2上のWordPressをShifterに移行してみた!
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話
 

Destaque

初めての単体テスト
初めての単体テスト初めての単体テスト
初めての単体テストBasuke Suzuki
 
モックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-Cモックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-CShoichi Matsuda
 
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~Yuta Sakurai
 
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-Seiji KOMATSU
 
20140918 i os8勉強会_performance
20140918 i os8勉強会_performance20140918 i os8勉強会_performance
20140918 i os8勉強会_performanceTakeshi Fukasawa
 
.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分Fujio Kojima
 
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShellそれでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShellHidari Ikw
 
クラスとクラスの依存を薄くする
クラスとクラスの依存を薄くするクラスとクラスの依存を薄くする
クラスとクラスの依存を薄くするAkihiro Nakahara
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストShuji Watanabe
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDDYuuki Takezawa
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
自動化テスト VS 手動テスト
自動化テスト VS 手動テスト自動化テスト VS 手動テスト
自動化テスト VS 手動テストRyutaro YOSHIBA
 
UnitTestのためのクラス設計
UnitTestのためのクラス設計UnitTestのためのクラス設計
UnitTestのためのクラス設計Takeshi Ishida
 
C++でテスト駆動開発
C++でテスト駆動開発C++でテスト駆動開発
C++でテスト駆動開発Akineko Shimizu
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasstkyon mm
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talkkyon mm
 
Unit Test
Unit TestUnit Test
Unit Testykhr
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方Shuji Watanabe
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣Masahiro Nishimi
 

Destaque (20)

初めての単体テスト
初めての単体テスト初めての単体テスト
初めての単体テスト
 
モックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-Cモックライブラリを使ってきちんとユニットテストする #Objective-C
モックライブラリを使ってきちんとユニットテストする #Objective-C
 
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
 
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
 
20140918 i os8勉強会_performance
20140918 i os8勉強会_performance20140918 i os8勉強会_performance
20140918 i os8勉強会_performance
 
.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分.NET MVP によるドキドキ・ライブコーディング! 小島の分
.NET MVP によるドキドキ・ライブコーディング! 小島の分
 
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShellそれでも僕はユニットテストを書きたい - Pester powered by PowerShell
それでも僕はユニットテストを書きたい - Pester powered by PowerShell
 
クラスとクラスの依存を薄くする
クラスとクラスの依存を薄くするクラスとクラスの依存を薄くする
クラスとクラスの依存を薄くする
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
自動化テスト VS 手動テスト
自動化テスト VS 手動テスト自動化テスト VS 手動テスト
自動化テスト VS 手動テスト
 
UnitTestのためのクラス設計
UnitTestのためのクラス設計UnitTestのためのクラス設計
UnitTestのためのクラス設計
 
C++でテスト駆動開発
C++でテスト駆動開発C++でテスト駆動開発
C++でテスト駆動開発
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
 
Unit Test
Unit TestUnit Test
Unit Test
 
テスト駆動開発のはじめ方
テスト駆動開発のはじめ方テスト駆動開発のはじめ方
テスト駆動開発のはじめ方
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 

Semelhante a 第4回勉強会 単体テストのすすめ

テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門Satoshi Watanabe
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門iKenji
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?Shinichi Hirauchi
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!Funato Takashi
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化Shinichi Hirauchi
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上Tatsuya Ishikawa
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦urasandesu
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_testSho Shimauchi
 
ソフトウェア・テスト入門5
ソフトウェア・テスト入門5ソフトウェア・テスト入門5
ソフトウェア・テスト入門5Kenta Hattori
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリングShuji Watanabe
 
ソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テストソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テストToru Tamaki
 
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理慎一 古賀
 
TABOK Skill Category2解説
TABOK Skill Category2解説TABOK Skill Category2解説
TABOK Skill Category2解説Kinji Akemine
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法Toshiyuki Hirata
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナーTomoyuki Sato
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストTsutomu Chikuba
 

Semelhante a 第4回勉強会 単体テストのすすめ (20)

wankuma #28
wankuma #28wankuma #28
wankuma #28
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 
Casper導入資料
Casper導入資料Casper導入資料
Casper導入資料
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
 
テストコードの定型化
テストコードの定型化テストコードの定型化
テストコードの定型化
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_test
 
ソフトウェア・テスト入門5
ソフトウェア・テスト入門5ソフトウェア・テスト入門5
ソフトウェア・テスト入門5
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
 
ソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テストソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テスト
 
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
 
TABOK Skill Category2解説
TABOK Skill Category2解説TABOK Skill Category2解説
TABOK Skill Category2解説
 
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 
PHP agile test tips
PHP agile test tipsPHP agile test tips
PHP agile test tips
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 

Mais de hakoika-itwg

バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-hakoika-itwg
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会hakoika-itwg
 
第1回 モデリング勉強会
第1回 モデリング勉強会第1回 モデリング勉強会
第1回 モデリング勉強会hakoika-itwg
 
第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティーhakoika-itwg
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」hakoika-itwg
 
第8回勉強会 開発プロセス 「プロセス改善」
第8回勉強会 開発プロセス 「プロセス改善」第8回勉強会 開発プロセス 「プロセス改善」
第8回勉強会 開発プロセス 「プロセス改善」hakoika-itwg
 
第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎hakoika-itwg
 
第6回勉強会 はじめてのデータベース
第6回勉強会 はじめてのデータベース第6回勉強会 はじめてのデータベース
第6回勉強会 はじめてのデータベースhakoika-itwg
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向hakoika-itwg
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向hakoika-itwg
 

Mais de hakoika-itwg (11)

バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-
 
第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会
 
第1回 モデリング勉強会
第1回 モデリング勉強会第1回 モデリング勉強会
第1回 モデリング勉強会
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
 
第8回勉強会 開発プロセス 「プロセス改善」
第8回勉強会 開発プロセス 「プロセス改善」第8回勉強会 開発プロセス 「プロセス改善」
第8回勉強会 開発プロセス 「プロセス改善」
 
第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎第7回勉強会 ネットワークの基礎
第7回勉強会 ネットワークの基礎
 
第6回勉強会 はじめてのデータベース
第6回勉強会 はじめてのデータベース第6回勉強会 はじめてのデータベース
第6回勉強会 はじめてのデータベース
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
 

Último

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Último (9)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

第4回勉強会 単体テストのすすめ