Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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