$30 off During Our Annual Pro Sale. View Details »

テストエンジニアのための初めてのプログラミング

 テストエンジニアのための初めてのプログラミング

2022/3/11 JaSST'22 Tokyo
f8)テストエンジニアのための初めてのプログラミング
発表資料

関連サイト

https://yoshikiito.github.io/programming4testers/

YoshikiIto

March 12, 2022
Tweet

More Decks by YoshikiIto

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide