SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
ソースコードを読んでみよう
Report
Shun Tsunoda
Follow
Dec. 17, 2017
•
0 likes
•
1,971 views
1
of
39
ソースコードを読んでみよう
Dec. 17, 2017
•
0 likes
•
1,971 views
Download Now
Download to read offline
Report
Software
in wacate 2017 winter
Shun Tsunoda
Follow
Recommended
#wacate 2017 冬 ISONO:REBOOT -評価することにこだわろう-
Kinji Akemine
1.6K views
•
36 slides
ユーザビリティテストをやってみよう
scarletplover
6.2K views
•
47 slides
はじめよう!レビューのいろは
scarletplover
4.1K views
•
81 slides
JaSST nano vol.1 "映え”を評価する~UXテストの取り組みなの
Touyou Horikawa
243 views
•
14 slides
レビュー方法を勉強してみよう
Masaki Nakahara
4.2K views
•
37 slides
レビュー方法を実践してみよう20150201
Masaki Nakahara
1.4K views
•
39 slides
More Related Content
What's hot
ソフトウェアテスト入門
Preferred Networks
15.4K views
•
39 slides
はじめてのScrum
Kenji Morita
1.8K views
•
40 slides
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
2.6K views
•
33 slides
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
38.2K views
•
49 slides
20191104 na te_samplequestion_r03
tomohiro odan
379 views
•
22 slides
Asian Automation Alliance システムテスト自動化構築時の考え方と進め方の一例
Noriyuki Mizuno
1.7K views
•
21 slides
What's hot
(20)
ソフトウェアテスト入門
Preferred Networks
•
15.4K views
はじめてのScrum
Kenji Morita
•
1.8K views
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
•
2.6K views
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
•
38.2K views
20191104 na te_samplequestion_r03
tomohiro odan
•
379 views
Asian Automation Alliance システムテスト自動化構築時の考え方と進め方の一例
Noriyuki Mizuno
•
1.7K views
レガシーコードとの付き合い方とテストでの話
H Iseri
•
27.2K views
テストエンジニアの品格 #automatornight
kyon mm
•
52.6K views
2016 新人研修 基本技術講座 (1)
エンジニア勉強会 エスキュービズム
•
1.8K views
Scrumfestmikawa2021
Noriyuki Nemoto
•
1.3K views
テストエンジニア版RPG風スキルマップ JaSST'17東北
Noriyuki Nemoto
•
9.3K views
STAC 2015 自動家は見た~自動化の現場の真実~ SIDE:マネージャ
Noriyuki Mizuno
•
41.1K views
Kaizen process with test #hackt
kyon mm
•
1.8K views
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
Noriyuki Mizuno
•
480 views
[JaSST nano] テストケースを作ってもらうときに気を付けていたことをお話するの
KazukiNishizono1
•
191 views
テスト計画セッション
Tomoaki Fukura
•
14.8K views
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
Masahiro Nishimi
•
71.8K views
Et west テスト自動化_公開版
Noriyuki Mizuno
•
1.6K views
○○したら受託開発が180°変わった
Atsushi Harada
•
4.2K views
AAA2015 関西風と欧米風 2つのTest Automation Patterns
Noriyuki Mizuno
•
1.8K views
Similar to ソースコードを読んでみよう
はじめてのテスト技法
Tatsuya Saito
1.9K views
•
15 slides
今日から始めるEnvoyの開発
Rei Shimizu
429 views
•
19 slides
推し技術書「ユースケース駆動開発実践ガイド」
keitasudo1
159 views
•
11 slides
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
1.6K views
•
31 slides
ソフトウェア開発の現場風景
Koichi ITO
4.1K views
•
108 slides
サポーターズ勉強会スライド 2018/2/27
Kensuke Mitsuzawa
789 views
•
70 slides
Similar to ソースコードを読んでみよう
(20)
はじめてのテスト技法
Tatsuya Saito
•
1.9K views
今日から始めるEnvoyの開発
Rei Shimizu
•
429 views
推し技術書「ユースケース駆動開発実践ガイド」
keitasudo1
•
159 views
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
•
1.6K views
ソフトウェア開発の現場風景
Koichi ITO
•
4.1K views
サポーターズ勉強会スライド 2018/2/27
Kensuke Mitsuzawa
•
789 views
グループディスカッションの巻
Takashi Abe
•
1.9K views
プレゼンテーション用資料作成のプレゼンテーション資料
hiroshioda
•
246.6K views
情シスオフ 2nd Lt 20090620
atsuizo
•
550 views
20160326 第10回 Rad Studio 勉強会@Osaka
Ryo Ohki
•
1.2K views
GCSアジャイル開発を使ったゲームの作り方
Hiroyuki Tanaka
•
3.2K views
JaSST'19 Hokkaido 「テスト設計技法、その前に ~フェイスアップ、次にビルドアップ、その先にマインドアップ~」
Akira Ikeda
•
2K views
PFPファシグラ(2009/07/03)
nishikawa_makoto7
•
999 views
77回スピーカーを経験して分かったこと」共有します
Yuya Yamaki
•
9.2K views
Codevs5.0勉強会
Kidai Hayashi
•
3.9K views
java-ja TDD 2nd
Takuto Wada
•
2.9K views
【17-E-7】アジャイルUX宣言
Tarumoto Tetsuya
•
1.7K views
Roo
terahide
•
1.2K views
アプリ開発を効率化する 方法あれこれ
Atsushi Mizoue
•
8.4K views
議論を描く技術「ファシリテーショングラフィック」
nishikawa_makoto7
•
26K views
Recently uploaded
Ansible入門.pptx
洵貴 佐川
220 views
•
13 slides
DockerでCoq インストール
Yoshihiro Mizoguchi
17 views
•
8 slides
LTは検証の場.pptx
ssuserfcafd1
290 views
•
10 slides
【JSTQB_ALTM】シラバス第3章
ssusercd6d02
39 views
•
27 slides
HelloCraft.pdf
MedicalTalk
40 views
•
8 slides
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
耕二 阿部
30 views
•
59 slides
Recently uploaded
(7)
Ansible入門.pptx
洵貴 佐川
•
220 views
DockerでCoq インストール
Yoshihiro Mizoguchi
•
17 views
LTは検証の場.pptx
ssuserfcafd1
•
290 views
【JSTQB_ALTM】シラバス第3章
ssusercd6d02
•
39 views
HelloCraft.pdf
MedicalTalk
•
40 views
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則.pdf
耕二 阿部
•
30 views
ハイエンド〜ローエンドまで、「Enlighten」による効率的リアルタイムグローバルイルミネーション|CEDEC2023
Silicon Studio Corporation
•
42 views
ソースコードを読んでみよう
1.
ソースコードを読んでみよう WACATE 2017 WINTER
2.
自己紹介 l名前 : l角田 俊(ツノダ
シュン) l仕事 : lソフトウェア開発 l活動 : lWACATE実行委員(2回目) lNaITE(長崎IT技術社会)実行委員
3.
このセッションの目的 l目標 ◦ソースコードをなんとなく読めるようになる ◦ソフトウェアがどう作れているのかを理解し、欠陥を推測 しようという気になること l本セッションでは、開発経験のある人、ベテランの人は 復習や教育の参考の場として活用してください
4.
質問 ◦普段何をインプットとしてテストを考えていますか?
5.
質問 ◦普段何をインプットとしてテストを考えていますか? ◦ 仕様書? ◦ 過去の不具合内容? ◦
経験? ◦ 直感?
6.
質問 ◦普段何をインプットとしてテストを考えていますか? ◦ 仕様書? ◦ 過去の不具合内容? ◦
経験? ◦ 直感? どれも大切なものです 他にもまだありますか?
7.
テストをする上で大切なもの ◦普段何をインプットとしてテストを考えていますか? ◦ 仕様書 ◦ 過去の不具合内容 ◦
経験 ◦ 直感 ... ◦ ソフトウェアの知識 ↑ 本セッションで扱うもの
8.
ソフトウェアテストとは? テストには以下のような目的がある。 ◦欠陥を摘出する。 ◦対象ソフトウェアの品質レベルが十分であることを確認す る。 ◦意志決定のための情報を示す。 ◦欠陥の作りこみを防ぐ。 ISTQBテスト技術者資格制度 Foundation Level
シラバス 日本語版 Version 2011.J02 http://jstqb.jp/dl/JSTQB-‐SyllabusFoundation_Version2011.J02.pdf
9.
ソフトウェアテストとは? テストには以下のような目的がある。 ◦欠陥を摘出する。 ◦対象ソフトウェアの品質レベルが十分であることを確認す る。 ◦意志決定のための情報を示す。 ◦欠陥の作りこみを防ぐ。 ISTQBテスト技術者資格制度 Foundation Level
シラバス 日本語版 Version 2011.J02 http://jstqb.jp/dl/JSTQB-‐SyllabusFoundation_Version2011.J02.pdf
10.
ソフトウェアテストとは? ソフトウェアテストには、ソフトウェアの欠陥を見つける、 欠陥の作り込みを防ぐ目的があります。
11.
ソフトウェア開発プロセス 要求 定義 基本 設計 詳細 設計 実装 単体 テスト 統合 テスト システム テスト 受け入れ テスト 欠陥の作り込みを防ぐ 欠陥を見つける ※プロセスモデルはSQuBOK p169
V字モデルより
12.
欠陥とは コンポーネント又はシステムに要求された機能が実 現できない原因となる、コンポーネント又はシステム に含まれる不備。 ISTQBテスト技術者資格制度 ソフトウェアテスト標準用語集 日本語版 Version
2.3.J02 http://jstqb.jp/dl/JSTQB-‐glossary.V2.3.J02.pdf
13.
ソフトウェアの知識が何故必要か 欠陥 = コンポーネント又はシステムに含まれる不備 ソフトウェア開発の知識があると、 これらが推測出来るようになることがある
14.
ソフトウェアの知識とは lソフトウェアが作られる仕組み (ソースコードの仕組み) lソフトウェアが動く仕組み
15.
ソフトウェアの知識とは lソフトウェアが作られる仕組み (ソースコードの仕組み) lソフトウェアが動く仕組み
16.
ソースコードとは ソースコード(英: source code)とは、コンピュータプ ログラミング言語で書かれた、コンピュータプログラ ムである文字列(テキストないしテキストファイル)の ことである。 ASCII.jpデジタル用語辞典 https://kotobank.jp/word/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2-‐5387
17.
ソースコードを読むのは難しくない ソースコードは簡単に読むことが出来る ソースコードを読む取っ掛かり ◦コメントを読む ◦メソッド名、関数名などを読んでみる
18.
コメントを読む ソースコードには大体日本語や英語でコメントが記 載されている。 // 画面に表示する処理 ←
コメント fmt.println(msg); ← ソースコード # write output /* コメントの種類は他にも色々あります */
19.
クラス名、メソッド名(関数名)を読んで 見る 処理ブロックとなるクラス名、メソッド名、関数名など から処理内容を推察する。 func shopping (money
int,i *Item) int{←名前から推察 return money – i.price } ”main”という名前の関数はそこから処理が行われること を表している事が多い。
20.
ソースコードを読むための基礎知識 大体のプログラミング言語で共通している仕組みが ある。 ◦変数 ◦条件文 ◦繰り返し文
21.
変数 値や、文字列は変数という入れ物に入れて使用す る。 var num int
= 1 var food string = “食べ物” 入れ物の大きさ(など)によって、入れられるものが 違うことに注意。ここにあるintとstringは大きさが異 なるため、入るものも違う。
22.
条件分岐 条件が一致する時、処理が分岐する if food ==
“たこやき” { eat() } foodの中の文字列が”たこやき”だったとき、 eat関数が実行される
23.
繰り返し 条件が一致するときのみ、処理を繰り返す for i :=
0; i < 10; i++ { eat() } iがループ毎に加算され、0から9までの間eat関数が実 行される。 (10回実行される)
24.
条件 条件の指定は複数の条件を組み合わせることも出 来る if food ==
”たこやき” && food2 == “たいやき”{ eat() } foodがたこやきで、food2がたいやきの時、eat関数が 実行される。(論理演算子)
25.
条件 複数条件のときは、条件関係に注意する if food ==
”たこやき” || food2 == “たいやき”{ eat() } foodがたこやきか、food2がたいやきの時、eat関数が 実行される。
26.
演習 時間:20分 最初10分間は一人で考えてみてください。 (スマホなどで調べながら) その後、 分かった人は直接答えを言わないで、出来ていない 人が問題を解けるようにサポートしてください。
27.
答え
28.
感想の共有 ソフトウェアの開発経験がない人から順番に演習に 挑戦してみての感想を共有してみてください。 時間:6分間
29.
(おまけ)ソースコードを読むには ソースコードは頭から読むのは大変です。 出力されたエラーログなどをキッカケに解読していき ましょう。 OSやエディタに付いている検索機能を使うと簡単で す。
30.
デモ
31.
ソフトウェアの知識とは lソフトウェアが作られる仕組み (ソースコードの仕組み) lソフトウェアが動く仕組み
32.
ソフトウェアの動く仕組み 近年のソフトウェアは一から作成することはあまりな い。 複数の既存技術が組み合わさってソフトウェアは 動作している。 既存技術 既存 技術 新規
33.
使われている技術を理解しよう 今、自分が関わっているソフトウェアはどういう技術 が使われているか理解していますか? ◦プログラム言語 ◦ライブラリ ◦データベース ◦プロトコル など
34.
使われている技術を理解しよう ソフトウェアは使われている技術によりテストが変 わってくることも有る 例) メモリ消費量に着目したテスト ◦C/C++ :メモリ増加の有無を見る ◦Java
:ガーベッジコレクションの頻度を見る
35.
使われている技術を調べてみよう 今、自分が関わっているプロダクトで使用されている 技術を調べてみよう。 そこから、段々勉強して行きましょう。
36.
まとめ lソフトウェアの知識があると、欠陥がありそうな場 所を推測出来るようになることがある lソフトウェアの知識とは lソフトウェアが作られる仕組み lソフトウェアが動く仕組み
37.
更なるスキルアップを目指して 知識を付けて、自分のスキルアップを考える 的確なインシデントレ ポートが書ける 欠陥が推測 できる テストが自動化 出来る
38.
更に上へ 開発、テスト、両方のスキルアップを目指して、両方 できるようになろう 開発 テスト