会社で飲むコーヒーは不味い。まぁ、インスタントコーヒーなのであたりまえなのだけど。もしかしたら、夏にスタバで買った透明のマグカップがよりいっそうの不味さを引き立てているのではないだろうかとも思ったりもする。
そこで、前々から気になっていたSIGGのサーモマグ or バキュームマグを買おうと決心。なので、これから嫁さん向けに稟議を通す段取りを始めるとするか。。。
今日やったこと
- マシン修理のために申請書類の準備。
- レビューに参加。まだまだ理解しきれていないので話についていけない。
- マシンセットアップの続き。完了。
今日から新しいプロジェクトに参画。
数日前からメーリングリストに入っていたみたいで、わけのわからないメールが何十通と飛び交っていた。今まで課長には文句ばっかり言っていたけども、課長がこんなとこの仕事していたら他の仕事は回らないにきまっている。頑張ってサポートしなければ。
今日やったこと
- 新しいプロジェクトのキックオフ?ミーティングに参加。
- マシンセットアップ。あやしぃマシンが足を引っ張っている。。。なぜ勝手に電源が落ちるんだ!
さらにさらに、自転車で運動しないかわりに歩くことにしよう!と決めて定期を短い区間で買ったので毎日往復5.6Km歩くことになっている。今日一日終わって、駐輪場がないかどうか調べようと思った。
明日から自社勤務になるので定期を購入。常識なのかも知れないけれど、切符の値段が定期の値段に反映されるわけではないということが判明。
例えば、
近鉄八尾⇔近鉄難波は切符だと290円で、定期だと月10500円
近鉄八尾⇔日本橋は切符だと290円で、定期だと月9990円
てな具合。
どうせ同じ値段だったら遠くまで行ける方を買ったほうがいいじゃん!と勘違いして遠くまで行けるようにして買うと逆に損してしまう罠というわけか。危ない危ない。本当に騙されるところだった。
今日やったこと
- 高島屋で赤ちゃん用の布団を購入。いや、嫁さんのお母さんに買ってもらった。
- 定期購入。危うく値段のトリックに騙されそうになる。
今日で客先常駐作業が終了。ということは暇及び眠気ともおさらばってこと。
撤収作業でPCに残っている機密ファイルを削除する必要があったのだけれども、すでにゴミ箱から削除しているファイルを復元出来ないようにしたかった。
そこで発見したソフトがDataRecovery。
これは復元可能なファイルを検索して一覧を作成したあとに、復元するのか完全に削除するのかを選択出来るというものだったので、まさに探しているものだった。
本当はフォーマットしたかったんだけどなぁ。機密ファイルの削除って面倒臭い。。。
今日やったこと
- 撤収作業。
- 嫁さんに付き合って散歩。
今日はわけあって焼肉をごちそうになった。食べ放題のお店だったけれどもなかなかいけてた。
食べ過ぎてスボンのボタンを外すしかなかった。家に帰ってから嫁さんに指摘される始末。
今日やったこと
- 反省会実施。
- 作ってもらった反省会議事録がどうにも気に入らない。。。修正中。
- svnのバージョン間における差分をcountコマンドで解析するようにスクリプトを修正中。
花粉のせいで目が痒くて痒くてしょうがないけど最後まで気を引き締めて頑張ろう!
コンソール(コマンドライン)から実行して、そのままコンソールにアウトプットを表示してくれるツールを探していたのだけれども、ようやく発見することが出来た。Line Counterってやつ。
アウトプット以下のような感じ。
-----------------------------------------------
Number of lines of code: 0
Number of directive lines: 0
Number of empty lines: 0
Number of comment lines: 0
Number of empty comment lines: 0
-------------------------------------------
Total number of lines: 0
-----------------------------------------------
CCCCってツールはコンソールから実行出来るけども、アウトプットがhtml形式だけってのが駄目だった。ステップ数だけではなく、ファイルが大きくなりすぎているとか関数が大きくなりすぎているなんて事も教えてくれるスグレモノだけに惜しい。
名著を読み始めました。色々な所で引用されていますが。。。
テストの原則
- テストとは、エラーをみつけようとしながら、プログラムを実行する過程である。
- 良いテスト・ケースとは、まだ発見されていないエラーを検出する確立の高いものである。
- 成功したテスト・ケースとは、まだ発見されていないエラーを検出したものである。
失敗してからでは遅いです。若い人たちにテストの大切さを教えるためにも勉強しなければ。。。
社内ミーティング出席のため電車を使って自社へ行ったのだけれども、電車でニンテンドーDSで遊んでいる?おじいちゃんを発見!おじいちゃんらしく紺色をチョイスしていた。勝手な想像だけれども将棋か囲碁をやっているはずだ。ひょっとすると電車に乗っている誰かと対戦しているのかと思うとおそろしくハイテクなおじいちゃんがいたもんだと思ってみたり。
ニンテンドーDS持ってません。ゲーム機はプレステ止まりです。
なので、ニンテンドーDSの懸賞には目がありません。Hondaで懸賞やってました。早速応募。
Honda|クルマ│クロスロード│プレゼントキャンペーン
今日やったこと
- 社内ミーティングに出席。
- gcovファイルからソースを抽出するスクリプト作成。
- 読書(今日からソフトウェア・テストの技法 第2版)。二章まで読んだ。
gcovファイルはソースファイルに色々な情報を追加したものなので、そのままだとエディタのシンタックス解析がうまく出来なくてカラー機能がちぐはぐになって不便。
そこでソース部分だけを抜き取る簡単なスクリプトを作成。
エディタで左にgcovファイル、右に抽出したファイルを表示して同時スクロールさせると個人的には見やすい。まぁ、そこまでしなくてもgcovファイルのままでも十分確認出来るけど。。。
#!/bin/bash
#gcov2src.sh
#gcovファイルからソース部分だけを抽出する
if test -e $1; then
sed 's/^[^ ].*//;s/^.\{9\}: 0:.*//;s/^.\{9\}:.....://' $1
else
echo "file not found..."
fi
vimだとvsしてscbをonにすればOK。
今週一杯で客先常駐が終わり、来週から2年ちょいぶりの自社勤務になる。やっぱり自社で働いた方が気持ち的には楽だけれども、色々な雑用が増えると思うから作業的にはしんどくなるんかな。あと、自転車通勤が出来なくなるから通勤時間も今の30分から1時間くらいに。
残り4日になったけど、まったりぬるぅ~く頑張ろう!
今日やったこと
- ソフトウエアテスト関係のネットに転がっている資料を確認。
- gcovコマンドの出力データをぬるぅ~く纏めるスクリプトを作成。
以下のカバレッジが測定できる(はず。。。)
- Lines executedは実効ラインをどれだけ通過したかを表すのでC0カバレッジ
- Branches executedとTaken at least onceは分岐ラインの数と通過したかを表すのでC1カバレッジ
- Calls executedは対象関数内で別関数を呼んだかどうかなのでS0カバレッジ
#!/bin/bash
#covana.sh
#gcovを一括実行して結果を纏める
flist=`find -name *.gcda | sed 's/\.gcda/\.c/g'`
for i in $flist
do
dir=`dirname $i`
file=`basename $i`
work=`echo "gcov -bf $file -o $dir" | sh | sed 's/No branches/----\n----/;s/No calls/----/' | \
awk 'BEGIN{FS="\n";RS="";OFS=",";ORS=""; print"\n\n"}{x=1; while(x<=5){print $x","; x++} print "\n"}'`
data+=$work
done
echo "Function(File),Lines executed(C0),Branches executed(C1),Taken at least once(C1),Calls executed(S0)"
echo "$data" | sed '1,2d;s/Function `//;s/File `//;s/Lines executed://;s/Branches executed://;s/Taken at least once://;s/Calls executed://' | sed "s/'//"
前々から気になっていた骨付肉で有名な一鶴にようやく行ってきました。店に行ったのは20時半くらいで待たずに入る事が出来た。ラッキー。
注文したのは
- わかどり
- おやどり
- おむすび
ひとつ言いたいのが、ここの紙エプロンは首の所で結ぶ紐部分があまりにも貧弱ということ。嫁さんと二人で結んでいる最中に切ってしまった。私達の握力が異常なだけ???
行く前に嫁さんとすったもんだがあったけれども、コンサートには二人で仲良く行ってきた。
意外とMCの多いコンサートで歌以外でも楽しませてもらった。最初の方は新しい歌?ばかりで一時はどうなるかと思ったけれども、中盤から知っている歌のオンパレードで、他の観客の人と一緒に盛り上がることが出来で楽しいコンサートとなりました。
MCの内容
- 子供は一歳で、色々なものに興味を示す子供に新しい視点(考え方?)をもらっている。
- 今年は厄年らしく、お母さんに名前入りの出刃包丁をもらった。
- ハイビスカスに背の高さを越された。彼女は150cmしか?ないけれども、会う人にはもっと大きいかと思っていたと良く言われる。心の中ではステージと観客との位置関係上、遠近法でそう見えるんだ!と言っている。
- 今日は東京マラソンのせいで都内は交通の便が悪くて移動に時間がかかった。大阪でも違うバスに乗ってしまった人(シンセサイザーの人)がいた。
- ドラムスの人は隣の会場でライブをしていた人の楽屋に間違って行っていたにもかかわらず、気付かずにハンバーがないけどどないなっとんねん!とか言っていた。
Allpairs(All-pairs)でテスト設計(まぁ、項目を作り出すだけですが)支援ツールの使用方法
ツールはこれ!
ALLPAIRS Test Case Generation Tool
使用方法はいたって簡単。
1.因子と水準をVARS.TXT(名前はなんでもいいけど)に書き出す
->マニュアルにはエクセルで簡単に作ったのをテキストファイルにコピペすればいいって書いてある
2.ALLPAIRS VARS.TXT > TESTCASES.TXT
はい、出来上がり。
↓Excelで作ったものをコピペ
(単にタブ区切りになっているだけ)
嫁さんがいつの間にかe+(イープラス)に応募していたbirdのコンサートが当たったみたいなので、明日連れていってもらうことになった。残念ながら明日は雨か。。。
コンサートということなので、そんなにノリノリにはならないとは思いつつも、図書館で借りてPCに取り込んでいたbirdのアルバムを二枚程予習のために聞いておいた。よしっ準備万端だ。
Eclipse+CDTのgccコンパイル設定に『-pg』オプションを使用するためのチェックがあるので、それをONにしてmakeするとリンク時に『undefined reference to _mcount』というエラーが出る。
Eclipse+CDTは不親切で、リンク時には『-pg』オプションを付けてくれないようだ。なので、リンクオプションで『-pg』を別で設定してあげなければならない。リンク設定にはチェックボックスがないので、自分でタイピングするほかない。
これは、coverage(カバレッジ)を測定するときに使用する『-fprofile-arcs -ftest-coverage』オプションでも同じ。
原因は調べていないけど。。。
make Ver3.8.0じゃないとビルドが通らない(Ver3.8.1じゃだめ)
gdb-20041228じゃないとデバッガが動いてくれない(gdb-20060706じゃだめ)
環境のバージョンは何だったっけか
方法は簡単。以下のようにするだけ。
file:test.c |
上記test.cをコンパイルして実行ファイルを生成する。
$gcc -Wall -pedantic -fprofile-arcs -ftest-coverage test.c -o test.exe
生成した実行ファイルを実行することによりデータファイルが自動的に作られる。
$./test.exe
データファイルからカバレッジ情報(-bオプションで分岐情報も出力)を生成する。
$ gcov -b test.c
File `test.c'
Lines executed:85.71% of 7
Branches executed:100.00% of 2
Taken at least once:50.00% of 2
Calls executed:75.00% of 4
test.c:creating `test.c.gcov'
-: 0:Source:test.c |
次に分岐を一つ増やしてみる。
file:test.c |
前と同じようにコマンドを実行する。
$gcc -Wall -pedantic -fprofile-arcs -ftest-coverage test.c -o test.exe
$./test.exe
$ gcov -b test.c
File `test.c'
Lines executed:66.67% of 9
Branches executed:50.00% of 4
Taken at least once:25.00% of 4
Calls executed:60.00% of 5
test.c:creating `test.c.gcov'
-: 0:Source:test.c |
嫁さんが欲しかったというチャーリーとチョコレート工場の舞台である、WONKAのチョコレートを先日手に入れて、今日いよいよ食べる時がやってきた。チョコレートはサイコロ状に手で割れるようになっているタイプで、一つ一つはWONKAさんの帽子を模った形をしていた。味はミルクチョコレート?で中に入っている(少量の)キャラメルがとろーりとしてて意外においしかった。少しだけサクッとする食感があったのだけれども、これは多分、キャラメルの固まった箇所だろう。
ちなにみ、チャーリーがジョニーディップかと思っていたら、チャーリーは子供の事で、WONKAさんがジョニデだよって嫁さんに教えてもらった。映画を見てないから知りませんでした。
今日やったこと
- 単体テスト環境のカバレッジを測定。あまり良くないゾ!
- 読書(アート・オブ・プロジェクトマネジメント)。十六章まで読んだ。(*1)
*1・・・ようやく読み終えた。あと二回くらいは読まないと本代の元は取れない気がする。最終章は難しかったので感想は書けない。。。自分が説得しないといけない相手が苦手ならば、その相手が苦手としている人を使え!くらい。
今日の帰りは雨のため合羽を着て帰ったわけだけども、傘差し運転の学生が危ないのなんのって。向かいから走ってくるのが分かっているのに横並びのままだもんなぁー。なんで俺がぎりぎりまで避けなければならないのだろうかと怒りが込み上げてくる。
あと、道路に捨てられた傘の多さ。10Km走って帰る間に3つも哀れなビニール傘の死骸を発見。恐らくは強風で壊された傘をそのまま道路にぽいしたと思われる。道路は燃えないもの用のゴミ箱じゃないっつーの。
今日やったこと
- プロジェクト反省会ために実績データを纏めて課長に提出。
嫁さんのは手作りのフォンダンショコラ。外側ふっくらの中はとろーり。まぁまぁ。
社内ミーティングのある日は恒例のびっくりドンキーでランチ。今日はちょっと接客に腹がたった。
お店に入ると店の兄ちゃんがおじいちゃん相手に会計中。とりあえず来たぞ!ってアイコンタクトをとってから立って待っていたのだけれども、おじいちゃんが領収書!なんて言うもんだから、待合席に座って待つことにした。会計も終わったので兄ちゃんが席に案内してくれるかなぁーと思ったら、なんと無視しやがった。一分立っても案内しないもんだから、別のウエイトレスを自分から呼んで案内してもらうハメに。腹がたったので二度といくもんか。
今日やったこと
- 社内ミーティングに参加。
- プロジェクト反省会ために実績データを纏めている最中。
- PLCのファームアップ。
- 読書(アート・オブ・プロジェクトマネジメント)。十五章まで読んだ。(*1)
--------------------------------------------------------------------------------
*1・・・開発終盤になると、バグの難易度が上がってたらい回しになるって書いてあったけど確かにそのとおりだな。難易度が上がるから進捗率も上がらないわけか。トリアージとウォーチームという単語は初めて聞いたな。どちらともあぁーこの事か!と思う事ではあったけど、自分が実施していることではなかった。トリアージがバグを見極めて優先度や深刻度、はたまた修正要否を決めて担当者にまわしたりすることで、ウォーチームが開発終盤に大きな権限を与えられてトリアージするチームのこと。開発終盤で『これは修正しない』なんて決めているのがウォーチームって事。あ、マイクロソフトではって事ね。
タイトルそのまんまだけども、妊娠中はくしゃみをすると失禁する事があるらしい。
私が頑張って腹筋している最中に横で『はくしょーん』->『おしっこがちょっと出た』なんて言われたら笑わずにはいられない。この時って腹筋にすごく力が入って余計鍛えられているような気がするんです。
せっかくの三連休だったのに、なんだか何もしないで終わってしまった。。。もったいない。
今夜は嫁さんが家族全員の夕食を準備したのだけれども、嫁さんの両親はどうも口に合わないようで、残すわ、料理同士をまぜまぜして食べるわで作っている方にしてはショックだったろうなぁ。やっぱり60歳近い人には若い人が作る料理は口に合わないんだなとつくづく実感。当分は嫁さんが作ったものを一緒に食べる事はないな。
問題のメニュー
- 豆腐とほうれん草のスープ
- 肉団子のあんかけ(あんはほとんどかかってなかったなぁ)
- 大根の煮物
- ピーマンのカレー風味きんぴら?
たまたま付けたチャンネルでコンピュータ関係の番組をやっていて、米マサチューセッツ工科大学(MIT)で教授をやっているという石井浩さんが主役だった。 私達が考えているコンピュータとは一味違ったものを研究されているようだ。なにやら、触覚のインタフェースを概念とする『タンジブル』なるもので、宇宙映画に出てきそうな感じのデモンストレーションを番組内で披露していた。ちょっと感動。
彼はMITの教授についていながらも自分は凡人であると言い切り、努力でカバーするんだという意気込みというか実際の努力が番組を通して伝わってきた。
あと、批判を素直に受け止めて次へのステップアップに役立てる、相手にどうつっこまれても答えというか自分の考えをすぐに出せるまでアイディアを練る、プレッシャーを快感に感じるようにする(これは難しい!)というのにも共感できた。
今日やったこと
- プロジェクトの各種データの整理
- 社内勉強会に参加
今日は久しぶりに会社の人とうどんを食べにいった。最近あちこちに出来てきた丸亀製麺ってところ。ここには5回くらい行っているのだけれども、お勧めナンバーワンと書いてあった『とろたまうどん』なるものを初めて注文。海苔、とろろ、半熟卵、濃いめの汁が良くマッチしていてなかなかいけてた。
会社の人との食事は家計から捻出してくれるように交渉中であるが難航中。
今日やったこと
- 機能説明会を開催
PLCが届いた。夕食の前に早速セットアップ。あ、当然今日も定時退社なので。。。
一階と二階で通信させてみたけど35Mbpsくらい出ている様子。一応満足。
ついでに一階のリビングと廊下を挟んだ和室で試してみたら15Mbpsくらいしか出なかった。配電盤の経由方法とかに違いがあるのだろうか。。。もちろん壁のコンセント直結。
今日やったこと
- プロジェクトのmakefileを解析。さすがに難しい。。。
- PLCセットアップ
対象ユーザーを引数で指定して使う。
処理としては『 ログ取得 -> 対象ユーザーがコミットしたリビジョン番号だけを取得 -> 取得したリビジョンで変更ファイル一覧を取得 -> 変更ファイルを前のリビジョンとdiffして変更ステップ数を取得(追加ファイルの場合はファイル全体のステップ数を使う)』といった流れ。
リポジトリを取得する場所は間違っているかもシレナイ。
--------------------------------------------------------------------------------
#!/bin/sh
#svnanalyze.sh
#対象ユーザーは引数で指定
if test $# = 1; then
USER=$1
#リポジトリを取得
repository=`cat ./.svn/entries | sed -n '6p'`
#変更ファイル一覧を取得
log=`svn log -q | grep -oP '(?<=^r)\d*(?=.*'$USER')' | sort -n | awk '{print "svn log -v -r "$0}' | sh | grep -oP '((?<=^r)\d*.*|^ [AM].*\.(?m)(c|h|dep)\r$)' | awk 'BEGIN{OFS=","}{if("|"==$2){rev=$1;mod=$3;date=$5}else{print 'date','rev','mod',$1,"'$repository'"$2}}'`
echo "Date,Revision,Name,Type,File,Add line,Del line"
for i in $log
do
type=`echo $i | cut -d, -f 4`
if test "M" = $type; then
#変更ファイル
diff=`echo $i | awk 'BEGIN{FS=","}{print "svn diff -r "($2-1)":"$2,$5}' | sh`
add=`echo "$diff" | grep -cP '^\+'`-1
del=`echo "$diff" | grep -cP '^\-'`-1
else
#追加ファイル
add=`echo $i | awk 'BEGIN{FS=","}{print "svn cat -r "$2,$5}' | sh | wc -l`
del=0
fi
echo $i | awk 'BEGIN{OFS=","}{print $0,'$add',"-"'$del'}'
done
fi
--------------------------------------------------------------------------------
先日からmakeを勉強していたのだけれども、なんとなく一つの山を超えたみたいなので一息。
一つの山とは
バイナリ -> オブジェクト -> ソース -> 依存関係ファイル(gcc -MMなどで作成)
の一覧の流れがきっちりと理解出来たというもの。
あとは命令やら言語の癖を覚えていけば問題ないはずだ。
今日やったこと
- svnから情報を引っ張ってきて、コンポーネント毎の修正数をカウントするスクリプト作成。
- 読書(アート・オブ・プロジェクトマネジメント)。十四章まで読んだ。(*1)
最近は暗くなるのが遅くなってきたから電気を付けなくても良い時間にポリスに出会うな。
--------------------------------------------------------------------------------
*1・・・プロジェクトの状態をポイントポイントでチェックリストを用いてチェックする。プログラムのassertのような感じで使えばいいみたいだ。あと、鶴の一声を先読みすることでリスクをなるべく抑える。これは難しいな。
今月のお小遣い10250円ゲット。しかし、昨日本を買ったのでその分の1940円は即時没収となったのであった。。。これからは自腹で本を買わなければならないのだろうかと心配。
今日やったこと
- svnから情報を引っ張ってきて、修正ステップ数をリビジョン毎にカウントするスクリプト作成
- 読書(アート・オブ・プロジェクトマネジメント)。十三章まで読んだ。(*1)
--------------------------------------------------------------------------------
*1・・・タスクには優先順位をつけること。第二優先度のもの(やらなくても最悪大丈夫)は行わないように調整する。最初に決めた優先順位は変更してはいけない。特に開発終盤では。