ビルの谷間の小さな公園。

今日は入社初、外でご飯を食べました。
外、とは屋外のことです^^ちょっと見かけたときから気になっていた小さな公園でおにぎりを食べました。
近隣のビルの方なのか、ぱらぱらとご飯を食べに来ている方々がいらして、中にはちょっとうとうとしている人がいたりしました。日が当たりすぎることなく、いい風が吹いていて、確かに眠くなる雰囲気・・・
ネコがのんびり伸びなんかしていて、凄く平和な空間でした。
久しぶりに屋外でご飯を食べて、気分もリフレッシュしました。
たまには自然の風や陽射しを感じるのもいいことですね^^


さて。本日の授業感想と授業ノートです。

☆本日のメニュー☆
  1. ソフトウェアテスト講義
  2. PHP vol.28

授業感想



ソフトウェアテスト講義

今日は初めて、ソフトウェアテストの目的と方法について、講義を受けました。
どうすれば効率よくテストができるのか、手間を省いて正確なテストを行えるかを教わりました。論理的に物事を考えて、それが必要か否か、重要か否かを
頭の中で考えるだけでは、あっという間にぐちゃぐちゃになってしまうので、ノートやエディタに書き出しながら進めました。最初はどうやって書くのが正解で、どこから手を付ければいいのか悩んだので、いつも授業で制作をする際に、自分が何気なくやっていたこと(わざと変な文字を入れてみたり、エラーが出るような内容を書くこと)から、探っていきました。
普段やっていたようなことが、難しい名前がつくような行為だったのかとちょっと驚いたとともに、そのちょっとしたことが、何より大切なことなんだな…と実感しました。

PHP vol.28

今日はお手本に習って、自分たちで新しくテーブルをつくるところから始めました。
ゆっくりしたペースだったので、しっかり理解しながら進めることができました。昨日、トランザクションのことを絵に起こす際に、ああでもないこうでもないと悩んだこともあり、内容を書き換えてしまうような内容のときにはトランザクションを忘れずにやることができました!トランザクションにおいては完璧…かもしれません…複雑じゃなければ、ですが。
その後、前回の制作でファイルを使って作った掲示板を、今度はDBで作り直すことをしました。置き換えれば良いはずなのに、なかなかうまく行かずちょっと苦戦しました。
今回は今までと違って、自分のやりたいことを筋道を立て考えてから作業をしていったので、作業自体はスムーズだったのですが、一カ所はまってしまって、名前さえ入れれば誰でもログインできるようなログインページを作ってしまいました。



授業ノート

ソフトウェアテスト研修

【授業内容】
ソフトウェアテストを理解する

ソフトウェアテストをする目的

・バグ出し
・品質保証(納品時にテストをした内容を添付することも)


○例えば・・・
【入力した三角形の種類を表示するプログラム】
・正三角形
二等辺三角形
・ただの三角形
・1〜100の整数しか受け付けない。

○この場合考えられるテストケース

・正常系:表示結果確認
  333=>正三角形
  552=>二等辺三角形
  345=>ただの三角形
・正常系:1〜100を受付
  三辺全てに1
  三辺全てに100
  三辺それぞれに0
  三辺それぞれに101

・異常系:入力形式の異常
  三辺がそれぞれに数字以外を入力
  入力が二辺以下
 
【仕様には無いが、重要なテストケース】
☆異常系:三角形にならない
2辺の和=残りの1辺
2辺の和<残りの1辺
仕様抜け:対象システムの理解が重要

※バグのありそうなところだけをもれなくテストする

○テスト技法の種類
 1.ブラックボックステスト
   もれなく 意味別に全部網羅
   効率的に 代表値だけ

 ○ブラックボックスって?


【同値分割】
入力値を意味ごとに分ける
それぞれの代表値をテスト
例)有効な値 代表値1
  無効な値 代表値a

【どこまで分割すればいい?】
「動作が変わらない」値に分類
  仕様上、変わらない
  経験上、変わらない
   ・ひらがなと漢字を分割するかどうか
   ・XSSを考えると<などは他の記号とは別
   ・セキュリティ関係は別テストに分ける?

【どれを代表値にする?】
  ☆バグが出やすそうなもの
   経験上出やすい「ソ」
   理論上出やすい:境界値分析
   よく使われる値



【境界値分析】
処理の境界にバグはひそみやすい
 例)for文で不等号を間違えるとか

※「0」は常にテストすべきバグが出やすい値。
  →空文字列 nullもふくめ。
 数字の「0」
 入力が「0件」

【絶対やらなくてはならないテスト】
  ・0件表示
    →データがなくてもエラーにならない
  ・境界値の部分をテスト。


  2.ホワイトボックステスト


☆C0網羅(命令網羅)
・命令をテスト
 ☆C1網羅(分岐網羅)
・分岐条件をテスト
☆C2網羅(条件網羅)
・全組み合わせをテスト
 命令、分岐条件の組み合わせをチェック

【どこまでやるべき?】
・重要な部分
・ロジックが難しい部分
つまり・・・
ブラックボックステストで検出できない部分を補う形で、ホワイトボックステストは扱う。


【コーディングの視点から考えると】
分岐が多いとテスト条件が増える → ifやforを減らし、単純にする
簡潔で判りやすいコードを書く → テストしやすいコード → 綺麗なコードといえる。


PHP vol.28

【授業内容】
DBをPHP上で扱う

○制作を行う前に・・・
新しく使うテーブルを作る。

☆accountテーブルを作る。

CREATE TABLE `account` (
  `id` int(11) NOT NULL auto_increment,
  `login_account` varchar(100) NOT NULL,
  `user_name` varchar(255) NOT NULL,
  `mail_address` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `password` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;


☆bbsテーブルを作る。

CREATE TABLE `bbs` (
  `id` int(11) NOT NULL auto_increment,
  `post_name` varchar(100) NOT NULL,
  `body` text,
  `account_id` varchar(100) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime default NULL,
    PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;


☆制作中のコードはまだ途中のため、後日記載。
ただ、やってみたいけど、いまいちまだ理解うすいことを書く
○フラグを使う

絵には起こせたが、実際に何処につけくわえるのかがまだ曖昧。明日きく!


以上、本日の授業でした!