ChatGPTやClaudeにお願いして、Pythonのプログラムを作ってもらう。
以前ならプログラミングの知識が必要だった作業も、今ではAIと相談しながら形にできるようになりました。
実際に動かしてみると、思ったとおりに処理が終わる。「これなら仕事でも使えるかも」「ほかの人にも渡せそう」と感じる瞬間です。
でも、ここで一つ疑問があります。
そのプログラム、本当にほかの人のパソコンでも使えるのでしょうか?
例えば、自分のPCには必要なライブラリが入っている。でも、受け取った人のPCには入っていない。
自分では当たり前に使っているフォルダが、相手のPCには存在しない。
正常なファイルでは動くのに、入力ファイルが空だったり、必要な列がなかったりすると突然止まる。
さらに厄介なのは、エラーが出ずに処理が終わっても、結果が正しいとは限らないことです。
「動いた」と「正しく動いた」は、実は別の話なんです。
そこで今回、架空の請求集計ツールを使って、納品前にどんな問題を見つけられるのか試してみました。
対象はPythonで作られた小規模なプログラム。ソースコード、説明書、依存ライブラリの情報などを照合する自主検証です。
あらかじめ8件の問題を仕込んで確認したところ、静的な検査で6件を検出できました。
例えば、説明書には書いてあるのに実際には使えない起動オプション、既存の出力ファイルを上書きする可能性、個人情報が画面やログに残り得る処理などです。
一方、2件は検出できませんでした。
金額計算の端数処理に関する問題と、テストが十分な内容を確認していない問題です。
今回の検証では対象プログラムの実行試験も行っていません。
つまり、6件見つかったから安心というわけではありません。見つけられなかった問題も、確認できなかった動作も残っています。
ここで大切だと感じたのは、問題を見つけることだけではなく、「何を確認できて、何を確認できなかったか」を整理することでした。
人にプログラムを渡すとき、受け取る側が知りたいのはコードの中身だけではありません。
どうやって起動するのか。どんなファイルを用意するのか。どこまで動作確認されているのか。問題が起きたら何を確認すればいいのか。
こうした情報が揃っているだけでも、引き継ぎのしやすさは変わってきます。
もちろん、すべての問題を事前に発見することはできません。それでも、確認済みのことと未確認のことを分けておけば、引き渡す側も受け取る側も、次に何を確認すべきか判断しやすくなります。
今回の自主検証をもとに、AIで作ったPythonツールの納品前診断サービスも用意しました。
依存関係、起動手順、不具合リスクなどを確認し、問題点や未確認事項を日本語のレポートにまとめるサービスです。安全に実施できると判断した場合には、架空データによる動作確認も行います。
「AIで作ったツールをほかの人に渡したいけれど、不安がある」「説明書やテストが十分なのか分からない」という方は、サービスページからご相談ください。
また、Pythonに限らず、AIで作ったツールを使っていて困った経験や、「こんな確認ができたら便利」というアイデアがあれば、ぜひ教えてください。
AIで作れるものが増えたからこそ、作った後にどう使い、どう引き継ぐかも考えていきたいと思います。