2022/3/11 JaSST'22 Tokyo f8)テストエンジニアのための初めてのプログラミング 発表資料
関連サイト
https://yoshikiito.github.io/programming4testers/
初めてのプログラミングYoshiki Ito / JaSST’22 Tokyo, Mar 11テストエンジニアのための
View Slide
おことわり:資料の公開や質問回答など◼ 資料はあとでSpeaker Deckに公開予定◼ スライドのスクショ撮影、SNSシェア等OK◼ コメントや感想などDiscordで⚫ ワイガヤ推奨!⚫ 各参加者からの個別の質問(動きません、エラーが出ました、など)には基本的にお答えできません。⚫ 他の参加者にも関連するような質問については、講師含む運営判断でいくつかお答えする予定です。時間の都合上、全ての質問への回答ができない点、ご了承ください。⚫ ワーク終了後、Ask the speakerも予定していますので、ご活用ください。◼ ワークショップのための事前準備や詳細の補足等は以下専用ページからご覧くださいhttps://yoshikiito.github.io/programming4testers2
目次1. はじめに2. プログラミング概説3. ワーク4. この先の学び方5. まとめ3
セッション概要◼ タイトル⚫ テストエンジニアのための初めてのプログラミング◼ ターゲット⚫ プログラミングに興味があるテストエンジニアの方⚫ プログラミング未経験OK!⚫ 簡単なPC操作が出来る方⚫ テスト実行の経験がある方4
今回のゴール◼ プログラミングの学習を始められるようになる=自走できるようになる⚫ 一歩目のハードルをみんなで越えよう!◼ プログラミングを日常業務でどう役に立てていくのか、のヒントを得る⚫ 日常的に使おう!◼ 「開発経験がないから・・・」を払拭する「プログラミング、やっていけそう感」をぜひ持ち帰ってください👌5
伊藤由貴 / Yoshiki Ito◼ テスト自動化エヴァンジェリスト◼ 仕事の経歴⚫ 2012年 株式会社ベリサーブに新卒入社⚫ 2019年~ 自動テスト推進課を立ち上げ活動中⚫ テスト自動化・プログラミング教育など◼ コミュニティ活動⚫ JaSST東北 実行委員⚫ JSTQB AL シラバス テスト自動化エンジニア日本語翻訳ワーキンググループ6
目次1. はじめに2. プログラミング概説① プログラミングとはなにか② できるメリット③ 学習の難しさ3. ワーク4. この先の学び方5. まとめ7
そもそもプログラミングとは・・・◼ おおざっぱには「コンピュータに命令すること」⚫ 人間には出来ないことや、出来るけどめんどくさいことをコンピュータにやってもらう⚫ コンピュータは融通がきかないが、決まったことを高速に行うのが得意◼ 命令の仕方⚫ コンピュータにわかる言葉で⚫ コンピュータにわかる粒度で8
コンピュータにわかる言葉で=プログラミング言語で~してくださいWould you ~for _ in range(10):print ~9
今回使うプログラミング言語:Python(ぱいそん)◼ 選んだ理由⚫ 流行っているから⚫ 書籍やネット上の情報が豊富で、学習環境が整っている⚫ 比較的シンプルに書けるから10
コンピュータにわかる粒度で=「手順書」を書くつもりで◼ 大きな単位の命令は、そのままではコンピュータは理解できないコンピュータに理解できる詳細さで手順を教える必要がある⚫ 誰がやっても同じ結果になるように、とも言える◼ 例「カレーを作りなさい」「人参じゃがいも玉ねぎ牛肉を用意しなさい。次に各材料を2cm角に切りなさい。・・・」11
テストエンジニアは普段から手順書を書いている◼ 手順1.トップ画面のメニューバー右上にある「ログイン」を押下2.ログイン画面で、Adminユーザー(ユーザ一覧シート参照)のアカウントでログインする3.左のメニューから「退会処理」を選択(略)◼ 期待結果以下のクエリを実行して、deletedカラムがTrueになっていることSELECT * FROM ~~~(略)テスト手順書を作れたらプログラミングもできるはず?12
プログラミングができる(仕事上の)メリット◼ 開発者とのコミュニケーションが円滑になる◼ テスト業務の効率化ができる13
プログラミング学習の難しさ:入門書で入門できない◼ 一般的なプログラミング言語入門書の構成⚫ はじめに⚫ 変数とデータ型⚫ 条件分岐⚫ 繰り返し⚫ 関数⚫ クラスとオブジェクト・・・初めての単語ばかりでさっぱりわからん・・・14
プログラミング学習の難しさ:仕事に活かすまでが遠い◼ 一般的なプログラミング言語入門書の序盤で作るプログラム⚫ 画面に「Hello! World」と表示するプログラム⚫ 1+2を計算するプログラムなど「で?」となってしまう・・・15
本ワークでの学習について◼ やりかた⚫ テスト業務で使えるかもしれない小さなプログラムを配り、そのプログラムに手を加えて機能を足していく◼ メリット⚫ 小さいとはいえ動くモノが手に入る◼ デメリット⚫ 用語の意味や理屈の詳細な説明はしないので、一つ一つ理解を積み上げていきたい方には説明不足感があるかもしれない16
プログラミングに対するよくある誤解◼ たくさんのことを覚える必要がある◼ エラーばかり出てしまうので自分には向いていない17
プログラミングは暗記ではない◼ 誤解⚫ プログラミングができる人はたくさんの処理を覚えていて、何も見ないでずっとキーボードを叩いている◼ 実際⚫ プログラミングができる人でも、キーボードを打っている時間より考えている時間が長い⚫ プログラミングができる人は検索が上手な人。よくググるプログラミングに「カンニング」は無い。意味を理解して真似するのであればOK。18
エラーは友達、怖くないよ◼ 誤解⚫ プログラミングができる人は一回で正しいプログラムを書け、エラーを出さない◼ 実際⚫ プログラミングができる人もエラーにはよく遭遇するエラーは問題点を指摘してくれる情報源。ちゃんと読もう。むしろ今日何種類のエラーが出せるか競争するくらいの気持ちで。19
目次1. はじめに2. プログラミング概説3. ワーク4. この先の学び方5. まとめ20
ワーク◼ 概要⚫ 事前に用意したGoogle Colabを使い、実際にプログラムを書く◼ 道具⚫ Python(プログラミング言語)⚫ Google Colab(Webブラウザ上でプログラムを書いて実行するためのツール)21
ワークの進め方22説明 プログラム書く説明 プログラム書く説明 プログラム書く ・・・
おしらせ◼ 時間配分がわりとタイトめです⚫ 間に合わなくても気にしすぎないでください(そもそもタイトなので)⚫ 各ワークのあとには、講師が実際にコードを書いてお見せします◼ 休憩時間もはさみます⚫ ちょうど本セッションの真ん中くらいにやるワークの際、プログラミング+お手洗い+飲み物用意ができるように少し長めの時間を確保します。23
目次1. はじめに2. プログラミング概説3. ワーク4. この先の学び方5. まとめ24
この先の学び方◼ プログラミング学習の方法は色々ある⚫ 書籍⚫ オンライン学習サイト⚫ 仕事でプログラミングを行う⚫ コミュニティに参加するなど25
この先の学び方:書籍のおすすめ◼ ふりがなプログラミングシリーズ⚫ 書籍の中では最も「やさしい」部類で、厚さは薄め⚫ これを1冊読めばプログラミングは完璧!とはいかないが、まずはここから始めて、物足りなくなったら別の書籍へ26
この先の学び方:オンライン学習サイトのおすすめ◼ Progate⚫ 説明を読んで学習し、学習した内容を実際に書いて身につけられる⚫ 無料お試しあり◼ paizaラーニング⚫ 説明を読んで学習し、学習した内容を実際に書いて身につけられる⚫ 無料お試しあり⚫ 転職斡旋の色が強め◼ ドットインストール⚫ 1本2,3分の動画を見て学ぶスタイル⚫ Web上でコードを書いたりはできないが、通勤電車内でも学べる27
この先の学び方:仕事でプログラミングをする◼ テストエンジニアの業務における、プログラミングの使いどころ⚫ テスト自動化⚫ 画面操作を伴うシステムテストやE2Eテスト⚫ APIテスト⚫ テストデータの生成⚫ 新規ユーザー登録100アカウント分⚫ テスト結果の収集や管理⚫ 複数のテスト結果をテスト管理ツールにインポートなど一定のレベルに達するまでは、やらないと忘れてしまいます。プログラミングに触れる時間を確保しましょう。28
学ぶ上でのポイント:質問の仕方◼ 相手が答えやすい、助けたくなるような質問をする◼ 答えやすい質問の構成⚫ 達成したい状態⚫ 実際にやったこと⚫ やった結果たどり着いた状態⚫ 環境(OS、デバイス、ネットワークなどなど)テストエンジニアは不具合起票だと思ってやればバッチリ!29
目次1. はじめに2. プログラミング概説3. ワーク4. この先の学び方5. まとめ30
再掲:今回のゴール◼ プログラミングの学習を始められるようになる=自走できるようになる⚫ 一歩目のハードルをみんなで越えよう!◼ プログラミングを日常業務でどう役に立てていくのか、のヒントを得る⚫ 日常的に使おう!◼ 「開発経験がないから・・・」を払拭する「プログラミング、やっていけそう感」をぜひ持ち帰ってください👌31
まとめ◼ プログラミングは、やればできる!⚫ テストエンジニアの業務に通じる部分もある◼ 少しずつでも、学び続けよう!⚫ 日々の業務のなかで、使えそうなところを探そう32
ありがとうございました質問・感想・ご意見などあれば以下までお願いします ☺◼ e-mail: yoshikiito.elあっとgmail.com◼ Twitter: @yoshikiito