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

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

話をする前に質問

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

エンジニアでDevRelの人?

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

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

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

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

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

Elastic / Elaticsearch とは? !11

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 デプロイ

!13

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

Elasticsearchとは?

フリーワード検索 !16

絞り込み !17

ハイライト !18

ソート !19

ページング !20

集計 !21

サジェスト !22

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

Elasticsearchのテスト !24

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

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

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

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

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

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

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

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

Rest API Test 33 Source: Gray Open Sans 10pt

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

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

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

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

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

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

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

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

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

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

そのほか? !44

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

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

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