2023クリスマススペシャル「バグバッシュ大会」その1
今回はバグバッシュのお話です。
クリスマススペシャルということで、普通のマンガを意識して描いてみています。
ネームを書いたら意外と長くなってしまい……。
このあと
* リーザ主任・カイさん(開発)チーム
* きゅんちゃん・ノリエ(企画)チーム
* まとめ
このような感じで、大体あと8ページほど描きます。
バグバッシュについてのブログは最後の回のときに書きます。
ChatGPTを用いたTDD part.6の続きです。
必要な部品をすべて作りました。
最後はコマンドプロンプト(terminal)で実行できるようにします。
イメージは以下です。
これを書いていて、2~5までのプロセスはまとめてしまったほうがテストが楽かと思いましたので、TODOを追加します。
まずはエラーがない場合のテストを考えます。
すでに用意してある以下を使います。
test_file.txt
期待結果は以下となります。
13:52:54,00:06,16.2,20.3,5.0
ChatGPTを用いたTDD part.5の続きです。
今回で作る部品がすべて完成します。
まずはcsvにするメソッドを作ります。
最初このように書いたのですが画面出力にしてしまうとテストが大変です。
これから作るメソッドは、文字列配列を受け取ったらカンマで結合して、その文字列を返すメソッドにします。
なのでTODOを書き換えます。
テストデータは以下です。
["13:52:54","00:06","16.2","20.3","5.0","2.6\n","13:52:54","00:06","16.2","20.3","5.0","2.6\n"]
期待結果は以下です。
"13:52:54,00:06,16.2,20.3,5.0,2.6\n13:52:54,00:06,16.2,20.3,5.0,2.6\n"
ChatGPTを用いたTDD part.4の続きです。
次は、1行1行分かれている文字列データを順次読み取っていって、データを収集させる部分を作ります。
イメージとしては、ファイルを読み込んだら1行1行に分解して、それをこれから作るメソッドに投げれば、必要なデータが全部取得できる、です。一続きの長い文字列配列を得られることを想定しています。
ファイルの読み込み部分とcsv出力部分は最後に作ります。
今回はMockなしで結合して確認します。
テストデータは以下です。
[
"top - 13:52:54 up 6 min, 0 users, load average: 0.01, 0.07, 0.03",
"Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie",
"%Cpu(s): 16.2 us, 20.3 sy, 5.0 ni,63.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st",
"KiB Mem : 40979980 total, 37696840 free, 1050480 used, 2232660 buff/cache",
"KiB Swap: 10485760 total, 10485760 free, 0 used. 39463640 avail Mem"]
期待結果は以下です。
[
"13:52:54","00:06",
"16.2","20.3","5.0",
"2.6\n"
]
ChatGPTを用いたTDD part.3の続きです。
TDDでTODOを行っていきます。
次は、これまで作ったget_time,get_cpu,get_memを入力された文字列に応じて処理をわける部分の実装です。
ここはMockを使ってテストを実装していきます。
イメージとしては、topが含まれた行を受け取った時はget_timeを呼び出し、cpuが含まれた行を受け取った時はget_cpuを呼び出し、memを含んだ行を受け取った時はget_memを呼び出し、それぞれに応じた戻り値を得るメソッドです。
まずは最初のtopだったときの戻り値を確認するテストコードを書きましょう。
top - 13:52:54 up 6 min, 0 users, load average: 0.01, 0.07, 0.03
これを受け取った時に期待結果は以下です。
["13:52:54", "00:06"]
ChatGPTを用いたTDD part.2の続きです。
TDDでTODOをこなしていきます。
次はCPUの値を抜き出すところです。
まずはテストコードを書きます。ChatGPTが。
テストデータは以下として、us,sy,niを抜き出して文字列配列で返すことを目標とします。
%Cpu(s): 16.2 us, 20.3 sy, 5.0 ni,63.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
※ChatGPT4.0だとテストコードを書いてもらおうとしてもテストコードを実行しようとするのでChatGPT3.5で書いています。
ChatGPTを用いたTDD part.1の続きです。
TDDを実践していきます。
時刻とup_timeを抜き出すTODOからやっていきます。
最初に、最後に書いた結果を記載すると
テストの実行結果/エラー文をひたすら与えるとChatGPTはテストを満たすコードを書くことができた
です。
ファイルの読み込み、csv出力は後にして細かい部品から作ります。
与えられた文字列から時刻とup_timeを抜き出して返す文字列を引数として、時刻、up_timeを文字列配列にして返す
TDDなのでまずはテストを作ります。ChatGPTを使います。
テストデータは以下として、この時間とup timeを抜き出して文字列配列で返すことを目標とします。
top - 13:52:54 up 6 min, 0 users, load average: 0.01, 0.07, 0.03
作者こと私です。
本記事はソフトウェアテスト Advent Calendar 2023 4日目の記事ということで、今回はマンガではない話をします。
ChatGPTを使ってTDDを試してみます。
ネットを検索するとFizzBuzzなどばかりで面白みがないので、今回は多少使えそうなツールを作ることを目標とします。
今回はテストコードもchatGPTで作りますが、テストコードは自分で書いて、プロダクションコードをchatGPTに書いてもらうというようなTDDをを行うと、ChatGPTで意図した結果を得られるコードが書けそうでした。
この記事で書いたお題などは練習のお題としてお好きに使っていただいて構いません。
記事は本記事を含め計7本です。
ChatGPTを用いたTDD part.2 (最初の実装編)
ChatGPTを用いたTDD part.3 (TODO実装続き)
ChatGPTを用いたTDD part.5 (Integration test編)
ChatGPTを用いたTDD part.6 (最後の部品作り編)
[END]ChatGPTを用いたTDD part.7 (実行ファイル作成編)
私は近頃仕事でtopコマンドの出力を眺めることが多いです。
topコマンドはシステムのCPU使用率やメモリを確認できるコマンドです。
1回の実行でその時の状況がわかります。
これを連続実行してCPUやメモリの変化を時間で追います。
以下は3回連続で実行させたものです。上にシステム全体のCPU使用率などが表示され、その下にプロセスごとの表示がされています。
(dockerでcentosを立ててtopコマンドを実行した結果)
私は全体傾向を追っていくことが多いです(取り扱っているモノがシステム全体のため)
今回は全体側のCPU使用率、メモリ使用率を以下のように時系列で表にするコードを書きます。
詳しい説明は他のブログに任せるとして以下のことを繰り返して進めます。
2023/11/25(土)に技書博9があり、久しぶりのイベントサークル参加をしてきました!
今回はフリーペーパー企画があり、マンガはそれで用意したものです。
金曜日に会社から帰ってきて
「フリーペーパー描いてない!」
ということに気づき、急いで話の内容を考えて、今まで描いた漫画のコマを使って夜なべして描きましたw
技書博は客層のほとんどが開発者のため、開発者に向けて描いています。
最後のコマが一番言いたいことです。
QA側からこのような提案をすることもありますが、開発者側から相談をしてくれるのも嬉しいものです。
ちなみに配布版は某警部の目は隠しています(笑)
夜なべをしたので眠い目をこすりながら会場へ向かい、セット完了!
そこで大きな忘れ物に気づいたのです……。
「8巻がないーーー!!」
やらかしました。
まさかまさかの売り物を忘れてくるということをやらかしました!
フリーペーパーに「忘れ物に注意」みたいなことを書いておいて一番大事なものを忘れてきてるのでどうしようもないです。
見本用に2冊持ってきていたので、それを急遽売り物に。
で、開始直後に売り切れると(泣)
けどまぁ、ないものは仕方がないので、開き直って
「各内容は独立してるから大丈夫です!」
といった説明をさせてもらっていましたw
実際、巻をまたいで話はつながっていないし!
やっぱり睡眠不足はダメですよ。人類の敵です。
あとペンも忘れてきてたし。
技書博9,スペース参加費がまさかの1000円でした。(普通は8000円程度)
それでこのお弁当がついてきた!!
絶対お弁当代だけで1000円超えてるだろ、とツッコみたくなりましたw
採算度外視弁当で!
ありがたい!おいしい!ヤバイ!語彙が消える!
他にも3種類あって、どれもゴージャスなお弁当。
どうやら技書博はサークル主への待遇がよいようです。
卓も半分ではなく1卓まるまるですからね。
……テスターちゃんはもう1卓ないと置けないというね。
結構うろうろすることができましたので、ご挨拶がてら回っていました。
にゃむねこさんのところでは「仕様ですTシャツ」をゲットです。
少し暖かくなってからの登壇はこの仕様ですTシャツで登壇したい!
Thunder Clawさんのところでは「いやAndroidの実機でテストしてますよね!?」というツッコミを受けながら「Androidを実機でテストしろ!」の本を買っていましたw
品質公団さんのところでは「伺か」本!
いや絶対今の人は知らないでしょ、という本です。昔ハマってて懐かしくて買いました。(春奈のことをうっかりさくらと言って話していてごめんなさい)
ワニのトートバックはariakiさんのところ。ひっそりほしいものリストをプレゼントしたのですがそのお礼ということでありがたくもらってきました。サイズ的にお買い物バッグに……!(日本酒を入れてください、という指示はうけた)
うれしいことに多くの方々が買ってくださり
このようになっています。
今日発注をかけて、2,3,9巻は来週の月曜日くらいには在庫復活予定です。
1巻はセリフを変えたい場所があるので少し構成検討中です。
テスターちゃんを書き始めたころは「最後の砦」が普通に言われていたのですが、今それを言うと周りからボコボコにされてしまう……!
プロダクトリスクは、作っているモノの品質に影響を与えるリスクです。
作業成果物がユーザーやステークホルダーのニーズを満たすことができない恐れ、といったところです。
JSTQB FL4.0では以下。
プロダクトリスクはプロダクトの品質特性(例えば、ISO 25010 品質モデルに記述がある)に関連するものである。プロダクトリスクの例としては、機能の不足や誤り、誤った計算、ランタイムエラー、貧弱なアーキテクチャー、非効率なアルゴリズム、不十分な応答時間、貧弱なユーザーエクスペリエンス、セキュリティの脆弱性などが挙げられる。
このように例が挙げられています。(プロダクトリスクとは何か、とはっきり書いていないのが気になるけど……)
作者はこれが重要なことだと思ってるので、次回のマンガに書く予定です。
かずさんのポストがネタです!
これを見て「描きたい!!」と思ってしまったわけです(笑)
「打刻」って、斎藤一の技っぽいな。
— Kazu SUZUKI (@kz_suzuki) 2023年11月18日
その派生が「打鍵」。