Slide 1

Slide 1 text

初めてのプログラミング Yoshiki Ito / JaSST’22 Tokyo, Mar 11 テストエンジニアのための

Slide 2

Slide 2 text

おことわり:資料の公開や質問回答など ◼ 資料はあとでSpeaker Deckに公開予定 ◼ スライドのスクショ撮影、SNSシェア等OK ◼ コメントや感想などDiscordで ⚫ ワイガヤ推奨! ⚫ 各参加者からの個別の質問(動きません、エラーが出ました、など)には基本的にお答えできません。 ⚫ 他の参加者にも関連するような質問については、講師含む運営判断でいくつかお答えする予定です。 時間の都合上、全ての質問への回答ができない点、ご了承ください。 ⚫ ワーク終了後、Ask the speakerも予定していますので、ご活用ください。 ◼ ワークショップのための事前準備や詳細の補足等は 以下専用ページからご覧ください https://yoshikiito.github.io/programming4testers 2

Slide 3

Slide 3 text

目次 1. はじめに 2. プログラミング概説 3. ワーク 4. この先の学び方 5. まとめ 3

Slide 4

Slide 4 text

セッション概要 ◼ タイトル ⚫ テストエンジニアのための初めてのプログラミング ◼ ターゲット ⚫ プログラミングに興味があるテストエンジニアの方 ⚫ プログラミング未経験OK! ⚫ 簡単なPC操作が出来る方 ⚫ テスト実行の経験がある方 4

Slide 5

Slide 5 text

今回のゴール ◼ プログラミングの学習を始められるようになる=自走できるようになる ⚫ 一歩目のハードルをみんなで越えよう! ◼ プログラミングを日常業務でどう役に立てていくのか、のヒントを得る ⚫ 日常的に使おう! ◼ 「開発経験がないから・・・」を払拭する 「プログラミング、やっていけそう感」 をぜひ持ち帰ってください👌 5

Slide 6

Slide 6 text

伊藤由貴 / Yoshiki Ito ◼ テスト自動化エヴァンジェリスト ◼ 仕事の経歴 ⚫ 2012年 株式会社ベリサーブに新卒入社 ⚫ 2019年~ 自動テスト推進課を立ち上げ活動中 ⚫ テスト自動化・プログラミング教育など ◼ コミュニティ活動 ⚫ JaSST東北 実行委員 ⚫ JSTQB AL シラバス テスト自動化エンジニア 日本語翻訳ワーキンググループ 6

Slide 7

Slide 7 text

目次 1. はじめに 2. プログラミング概説 ① プログラミングとはなにか ② できるメリット ③ 学習の難しさ 3. ワーク 4. この先の学び方 5. まとめ 7

Slide 8

Slide 8 text

そもそもプログラミングとは・・・ ◼ おおざっぱには「コンピュータに命令すること」 ⚫ 人間には出来ないことや、出来るけどめんどくさいことをコンピュータにやってもらう ⚫ コンピュータは融通がきかないが、決まったことを高速に行うのが得意 ◼ 命令の仕方 ⚫ コンピュータにわかる言葉で ⚫ コンピュータにわかる粒度で 8

Slide 9

Slide 9 text

コンピュータにわかる言葉で=プログラミング言語で ~してください Would you ~ for _ in range(10): print ~ 9

Slide 10

Slide 10 text

今回使うプログラミング言語:Python(ぱいそん) ◼ 選んだ理由 ⚫ 流行っているから ⚫ 書籍やネット上の情報が豊富で、 学習環境が整っている ⚫ 比較的シンプルに書けるから 10

Slide 11

Slide 11 text

コンピュータにわかる粒度で=「手順書」を書くつもりで ◼ 大きな単位の命令は、そのままではコンピュータは理解できない コンピュータに理解できる詳細さで手順を教える必要がある ⚫ 誰がやっても同じ結果になるように、とも言える ◼ 例 「カレーを作りなさい」 「人参じゃがいも玉ねぎ牛肉を用意しなさい。次に各材料を2cm角に切りなさい。・・・」 11

Slide 12

Slide 12 text

テストエンジニアは普段から手順書を書いている ◼ 手順 1.トップ画面のメニューバー右上にある「ログイン」を押下 2.ログイン画面で、Adminユーザー(ユーザ一覧シート参照)のアカウントでログインする 3.左のメニューから「退会処理」を選択 (略) ◼ 期待結果 以下のクエリを実行して、deletedカラムがTrueになっていること SELECT * FROM ~~~(略) テスト手順書を作れたら プログラミングもできるはず? 12

Slide 13

Slide 13 text

プログラミングができる(仕事上の)メリット ◼ 開発者とのコミュニケーションが円滑になる ◼ テスト業務の効率化ができる 13

Slide 14

Slide 14 text

プログラミング学習の難しさ:入門書で入門できない ◼ 一般的なプログラミング言語入門書の構成 ⚫ はじめに ⚫ 変数とデータ型 ⚫ 条件分岐 ⚫ 繰り返し ⚫ 関数 ⚫ クラスとオブジェクト ・・・ 初めての単語ばかりで さっぱりわからん・・・ 14

Slide 15

Slide 15 text

プログラミング学習の難しさ:仕事に活かすまでが遠い ◼ 一般的なプログラミング言語入門書の序盤で作るプログラム ⚫ 画面に「Hello! World」と表示するプログラム ⚫ 1+2を計算するプログラム など 「で?」となってしまう・・・ 15

Slide 16

Slide 16 text

本ワークでの学習について ◼ やりかた ⚫ テスト業務で使えるかもしれない小さなプログラムを配り、 そのプログラムに手を加えて機能を足していく ◼ メリット ⚫ 小さいとはいえ動くモノが手に入る ◼ デメリット ⚫ 用語の意味や理屈の詳細な説明はしないので、 一つ一つ理解を積み上げていきたい方には説明不足感があるかもしれない 16

Slide 17

Slide 17 text

プログラミングに対するよくある誤解 ◼ たくさんのことを覚える必要がある ◼ エラーばかり出てしまうので自分には向いていない 17

Slide 18

Slide 18 text

プログラミングは暗記ではない ◼ 誤解 ⚫ プログラミングができる人はたくさんの処理を覚えていて、何も見ないで ずっとキーボードを叩いている ◼ 実際 ⚫ プログラミングができる人でも、キーボードを打っている時間より考えている時間が長い ⚫ プログラミングができる人は検索が上手な人。よくググる プログラミングに「カンニング」は無い。 意味を理解して真似するのであればOK。 18

Slide 19

Slide 19 text

エラーは友達、怖くないよ ◼ 誤解 ⚫ プログラミングができる人は一回で正しいプログラムを書け、エラーを出さない ◼ 実際 ⚫ プログラミングができる人もエラーにはよく遭遇する エラーは問題点を指摘してくれる情報源。ちゃんと読もう。 むしろ今日何種類のエラーが出せるか競争するくらいの気持ちで。 19

Slide 20

Slide 20 text

目次 1. はじめに 2. プログラミング概説 3. ワーク 4. この先の学び方 5. まとめ 20

Slide 21

Slide 21 text

ワーク ◼ 概要 ⚫ 事前に用意したGoogle Colabを使い、実際にプログラムを書く ◼ 道具 ⚫ Python(プログラミング言語) ⚫ Google Colab(Webブラウザ上でプログラムを書いて実行するためのツール) 21

Slide 22

Slide 22 text

ワークの進め方 22 説明 プログラム 書く 説明 プログラム 書く 説明 プログラム書く ・・・

Slide 23

Slide 23 text

おしらせ ◼ 時間配分がわりとタイトめです ⚫ 間に合わなくても気にしすぎないでください(そもそもタイトなので) ⚫ 各ワークのあとには、講師が実際にコードを書いてお見せします ◼ 休憩時間もはさみます ⚫ ちょうど本セッションの真ん中くらいにやるワークの際、 プログラミング+お手洗い+飲み物用意ができるように 少し長めの時間を確保します。 23

Slide 24

Slide 24 text

目次 1. はじめに 2. プログラミング概説 3. ワーク 4. この先の学び方 5. まとめ 24

Slide 25

Slide 25 text

この先の学び方 ◼ プログラミング学習の方法は色々ある ⚫ 書籍 ⚫ オンライン学習サイト ⚫ 仕事でプログラミングを行う ⚫ コミュニティに参加する など 25

Slide 26

Slide 26 text

この先の学び方:書籍のおすすめ ◼ ふりがなプログラミングシリーズ ⚫ 書籍の中では最も「やさしい」部類で、厚さは薄め ⚫ これを1冊読めばプログラミングは完璧!とはいかないが、 まずはここから始めて、物足りなくなったら別の書籍へ 26

Slide 27

Slide 27 text

この先の学び方:オンライン学習サイトのおすすめ ◼ Progate ⚫ 説明を読んで学習し、学習した内容を実際に書いて身につけられる ⚫ 無料お試しあり ◼ paizaラーニング ⚫ 説明を読んで学習し、学習した内容を実際に書いて身につけられる ⚫ 無料お試しあり ⚫ 転職斡旋の色が強め ◼ ドットインストール ⚫ 1本2,3分の動画を見て学ぶスタイル ⚫ Web上でコードを書いたりはできないが、通勤電車内でも学べる 27

Slide 28

Slide 28 text

この先の学び方:仕事でプログラミングをする ◼ テストエンジニアの業務における、プログラミングの使いどころ ⚫ テスト自動化 ⚫ 画面操作を伴うシステムテストやE2Eテスト ⚫ APIテスト ⚫ テストデータの生成 ⚫ 新規ユーザー登録100アカウント分 ⚫ テスト結果の収集や管理 ⚫ 複数のテスト結果をテスト管理ツールにインポート など 一定のレベルに達するまでは、 やらないと忘れてしまいます。 プログラミングに触れる時間を 確保しましょう。 28

Slide 29

Slide 29 text

学ぶ上でのポイント:質問の仕方 ◼ 相手が答えやすい、助けたくなるような質問をする ◼ 答えやすい質問の構成 ⚫ 達成したい状態 ⚫ 実際にやったこと ⚫ やった結果たどり着いた状態 ⚫ 環境(OS、デバイス、ネットワークなどなど) テストエンジニアは 不具合起票だと思ってやれば バッチリ! 29

Slide 30

Slide 30 text

目次 1. はじめに 2. プログラミング概説 3. ワーク 4. この先の学び方 5. まとめ 30

Slide 31

Slide 31 text

再掲:今回のゴール ◼ プログラミングの学習を始められるようになる=自走できるようになる ⚫ 一歩目のハードルをみんなで越えよう! ◼ プログラミングを日常業務でどう役に立てていくのか、のヒントを得る ⚫ 日常的に使おう! ◼ 「開発経験がないから・・・」を払拭する 「プログラミング、やっていけそう感」 をぜひ持ち帰ってください👌 31

Slide 32

Slide 32 text

まとめ ◼ プログラミングは、やればできる! ⚫ テストエンジニアの業務に通じる部分もある ◼ 少しずつでも、学び続けよう! ⚫ 日々の業務のなかで、使えそうなところを探そう 32

Slide 33

Slide 33 text

ありがとうございました 質問・感想・ご意見などあれば以下までお願いします ☺ ◼ e-mail: yoshikiito.elあっとgmail.com ◼ Twitter: @yoshikiito