ソフトウェアのテストしてますか?では、ドキュメントは?

A presentation at DevRel/Japan Conference 2019 in September 2019 in Tokyo, Japan by Jun Ohtani

Slide 1

Slide 1

ソフトウェアのテストしてますか? では、ドキュメントは? Jun Ohtani / Community Advocate at Elastic 2019/09/07 DevRel JP Conference

Slide 2

Slide 2

about • • !2 Me, Jun Ohtani / Community Advocate ‒ lucene-gosenコミッター ‒ データ分析基盤構築入門 共著 ‒ http://blog.johtani.info Elastic, founded in 2012 ‒ Products: Elasticsearch, Logstash, Kibana, Beats Elastic APM, Elastic Cloud, Swiftype Professional services: Support & development subscriptions Trainings, Consulting, SaaS

Slide 3

Slide 3

話をする前に質問

Slide 4

Slide 4

マーケティングでDevRelの人?

Slide 5

Slide 5

エンジニアでDevRelの人?

Slide 6

Slide 6

こんな経験ありませんか?

Slide 7

Slide 7

Getting StartedにあるAPIを叩い たら、エラーが出たんです が。。。 とある初心者

Slide 8

Slide 8

この引数、バージョンアップで 名前が変わったんだけどなぁ とあるエバンジェリスト

Slide 9

Slide 9

公式リファレンスは サービス、プロダクトの顔! 特に初心者ユーザーにとって

Slide 10

Slide 10

アジェンダ • Elastic/Elasticsearchとは? • Elasticsearchの(ソフトウェア)テストとは? • 公式リファレンスって? • リファレンスのテスト対象とテスト方法 • その他 10

Slide 11

Slide 11

Elastic / Elaticsearch とは? !11

Slide 12

Slide 12

Application Search Site Search Metrics Elastic Stack APM Enterprise Search Logging Business Analytics Security Analytics Future ソリューション Kibana 可視化、管理 Elasticsearch 保存、検索、分析 Beats SaaS Elastic Cloud Logstash インジェスト Self Managed Elastic Cloud Enterprise Standalone デプロイ

Slide 13

Slide 13

!13

Slide 14

Slide 14

Elasticsearch Heart of the Elastic Stack 分散型、スケーラブル OSSベース Java 開発者フレンドリー リアルタイム、全文検索 マルチテナント 14

Slide 15

Slide 15

Elasticsearchとは?

Slide 16

Slide 16

フリーワード検索 !16

Slide 17

Slide 17

絞り込み !17

Slide 18

Slide 18

ハイライト !18

Slide 19

Slide 19

ソート !19

Slide 20

Slide 20

ページング !20

Slide 21

Slide 21

集計 !21

Slide 22

Slide 22

サジェスト !22

Slide 23

Slide 23

Rest API curl -XPUT localhost:9200/books/book/1 -d ’ { “title” : “authors” “started” “pages” : “Elasticsearch - The definitive guide”, : “Clinton Gormley”, : “2013-02-04”, 230 }’ 23

Slide 24

Slide 24

Elasticsearchのテスト !24

Slide 25

Slide 25

Elasticsearchのテストいろいろ 開発者にもコントリビューターにも便利 • Pre-commit Check(NOT TEST) • Unit Test • Integration Test • REST Test • Packaging Test • Documentation Test • BWC Test • Performance Test 25

Slide 26

Slide 26

Elasticsearchのテストいろいろ 開発者にもコントリビューターにも便利 • Pre-commit Check(NOT TEST) • Unit Test • Integration Test • REST Test • Packaging Test • Documentation Test • BWC Test • Performance Test 26

Slide 27

Slide 27

Pre-commit Check 開発者にもコントリビューターにも便利 • コミット前に、コードに関するフォーマットなどをチェック ‒ フォーマット (checkstyle) ‒ ライセンスヘッダー (独自チェック) ‒ 利用してはいけないメソッドやクラスを利用していないかチェック (forbidden API checker) ‒ などなど 27

Slide 28

Slide 28

Checkstyle 静的ソースコード解析 28

Slide 29

Slide 29

Forbidden API Checker 使用禁止APIのチェック 29

Slide 30

Slide 30

Elasticsearchのテストいろいろ 開発者にもコントリビューターにも便利 • Pre-commit Check(NOT TEST) • Unit Test • Integration Test • REST Test • Packaging Test • Documentation Test • BWC Test • Performance Test 30

Slide 31

Slide 31

REST Test Rest APIの仕様の確認にも使えるテスト • Rest Specとテストの組み合わせ • Rest Spec ‒ Rest APIのURIやパラメーターの説明 • Rest Test ‒ Rest APIに対してのテスト (実際にElasticsearchサーバーに対して外から実行できるテスト) 31

Slide 32

Slide 32

Rest API Spec Subtitle sentence case (Open Sans 18pt) 32 Source: Gray Open Sans 10pt

Slide 33

Slide 33

Rest API Test 33 Source: Gray Open Sans 10pt

Slide 34

Slide 34

Elasticsearchのテストいろいろ 開発者にもコントリビューターにも便利 • Pre-commit check(NOT TEST) • Unit Test • Integration Test • REST Test • Packaging Test • Documentation Test • BWC Test • Performance Test 34

Slide 35

Slide 35

Elasticsearch Benchmarks • ベンチマークテストも実施 35

Slide 36

Slide 36

Elasticsearchのテストいろいろ 開発者にもコントリビューターにも便利 • Pre-commit Check(NOT TEST) • Unit Test • Integration Test • REST Test • Packaging Test • Documentation Test • BWC Test • Performance Test 36

Slide 37

Slide 37

公式リファレンスって? !37

Slide 38

Slide 38

Elasticのリファレンス https://elastic.co/guide/ • バージョンごとに公開 • GitHubで管理 • ソースコードと同一リポジトリ • ドキュメント単体リポジトリもある • Asciidocで記載 38

Slide 39

Slide 39

Elasticのリファレンス • バージョンごとに公開 • GitHubで管理 • ソースコードと同一リポジトリ • ドキュメント単体リポジトリもある • Asciidocで記載 39

Slide 40

Slide 40

Elasticのリファレンス • バージョンごとに公開 • GitHubで管理 • ソースコードと同一リポジトリ • ドキュメント単体リポジトリもある • Asciidocで記載 40

Slide 41

Slide 41

リファレンスのテスト対象 とテスト方法 !41

Slide 42

Slide 42

実際にテストされるのは? • Rest APIの部分が対象 • テストのセットアップなども可能 • 独自の作り込み • Asciidocファイルを対象に Rest APIを抜き出して テストとして実行可能な ファイルに変換 42

Slide 43

Slide 43

実際にテストされるのは? • Rest APIの部分が対象 • テストのセットアップなども可能 • 独自の作り込み • Asciidocファイルを対象に Rest APIを抜き出して テストとして実行可能な ファイルに変換 43

Slide 44

Slide 44

そのほか? !44

Slide 45

Slide 45

テストだけではありません • 新機能などのコードレビューで 指摘 • リファレンスからPull Request! 45

Slide 46

Slide 46

テストだけではありません • 新機能などのコードレビューで 指摘 • リファレンスからPull Request! 46

Slide 47

Slide 47

Thank you! ● Web : https://www.elastic.co/jp/ ● Forums : https://discuss.elastic.co/ ● Twitter : @johtani