ChatGPTなどのAIを使って今からなにする。
1 対象に関連する状態遷移、時系列、刻時図、利用事例図を描く
2 ChatGPTはじめ3つのAIを使って、対象に関する知見を深める。
3 1と2に対して、HAZOPのGuide Wordを利用して、網羅性をたかめるか、想定外をなくすようにする。
4 C,python, JAVA, Javasciptなどの言語を指定して、ソースコードをChatGPTに出力してもらい、かつ、その試験コードも生成してもらう。3つ以上の言語を指定して、どの言語だとわかりやすそうかを確かめていい。
5 試験ソースコードを、HaopのGuide wordに基づいた11以上の事例を作ってもらう。
6 ChatGPTで、回答を英語で出してもらい、その解答を日本語に翻訳してもらう。フランス語、ドイツ語、スペイン語、イタリア語、中国語、ハングルなどの3つ以上の言語を指定してもよい。
ChatGPT
今からなにする https://qiita.com/kaizen_nagoya/items/2d2e57ccdce5e79c5b81 の補足をお願いします。
ChatGPT:
ご紹介いただいた「今からなにする」(投稿日:2025‑08‑27)では、AI(主に ChatGPT)と HAZOP の Guide Words を組み合わせて、タスクや課題に対して体系的・多角的にアプローチする提案がされています。以下に、内容を整理して補足を加えつつ、Qiita 記事としてより具体的に展開できるようにまとめました。
記事の構成要点(原文より)
対象の状態遷移や時系列、利用事例図などを UML で可視化
ChatGPT など複数の AI を使って知見を深掘り
HAZOP の Guide Words に基づいて網羅性を向上または想定外を排除
C, Python, Java, JavaScript など3つ以上の言語でソースコード+テストコードを生成
HAZOP Guide Words に基づく11以上のテスト事例を生成
回答を多言語(英語、日本語、フランス語、ドイツ語、スペイン語、イタリア語、中国語、ハングルなど)で出力・翻訳
補足と具体化の提案
以下に、各ステップをより具体的かつ実践的に展開する提案をまとめました。
- モデル化(UML/時系列/ユースケース図)
目的:課題や機能の全体像を把握し、後続の洞察やテストのベースを構築
例:
ユースケース図:「ユーザーがログイン → ダッシュボード表示」
状態遷移図:オーダーの状態(未処理 → 処理中 → 完了)
時系列図:API 呼び出しのフローとレスポンスタイミング- 複数AIによる知見の多角化
目的:AI ごとに切り口や出力スタイルが異なるため、多様な視点から抽出
例:
ChatGPT:機能要件や疑問点を洗い出し
άλλος AI:例えば GitHub Copilot や Claude などで別視点を獲得
自動要約系 AI:既存ドキュメントの要点を整理- HAZOP Guide Words による欠陥網羅
目的:想定外や漏れのある振る舞いを意識的に挙げて補完
例:「No」「More」「Less」「Other than」など、一覧表に具体例を埋めるスタイルで整理(前提条件漏れ、過剰応答など)- 多言語のコード+テスト自動生成
目的:言語ごとの書き方や文法、開発スタイルの違いを比較し学習材料にも
例:同一機能の小関数やユーティリティを C、Python、JavaScript(Node.js)などで出力させる
テストコード:JUnit(Java)、pytest(Python)、Mocha(JavaScript)などで対応するテストケースを生成- Guide Word に基づく異常ケース(ネガティブテスト)生成
目的:網羅的なテストケースで欠陥や仕様逸脱を検出
例:「Missing parameter」(No)、「Too long input」(More)、「Wrong type」(Other than)など、Guide Word に応じて具体化- 多言語翻訳の活用
目的:国際的チームや多言語ドキュメント対応に対応可能な体制を構築
例:AI で英語→日本語→フランス語→中国語などに逐次翻訳させ、多言語版仕様書やユーザー向けヘルプを生成
Qiita記事向けテンプレート構成案
今からなにする:AI × HAZOP ガイドワードで始める効率的開発支援法
Step 1: UML/時系列/ユースケース図で構造化
(図やサンプル添付)
Step 2: 複数 AI を使って知見を広げる
- ChatGPT
- Copilot
- 他 AI(例:Claude)
Step 3: HAZOP Guide Words で欠陥網羅
Guide Word | ズレの例 | 補足コメント |
---|---|---|
No | ... | ... |
Reverse | ... | ... |
...(全11項目) |
Step 4: 複数言語によるコード+テスト生成
// C のサンプルコード
# Python のテストコード
Step 5: ネガティブテスト例の具体生成(Guide Word 対応)
No → パラメータ未指定
More → 異常に長い文字列入力
...
Step 6: 多言語出力サンプル
英語版
日本語版
フランス語版
...
このような体裁にまとめると、「AIを活用した属人的でない開発支援ワークフロー」として読者にもわかりやすく、実践的に伝わります。
さらにテンプレート化やスライド化、ワークショップ形式に落とし込むことも可能ですので、ぜひご活用ください!
関連する事項がわかりやすくなる、C, Python, JavaSciptのソースコードをつけてください。
ChatGPT:
以下に、「今からなにする」(HAZOP × AI × 多言語対応)に関連しやすいように、C, Python, JavaScript のシンプルなサンプルコードを用意しました。
共通のお題として、**「ユーザー名とパスワードの入力を検証してログイン処理を行う」**コードです。
このシナリオは、**Guide Word による異常例(例:No入力、TooLong、逆順、遅延処理など)**にも適用しやすく、学習にも向いています。
✅ 共通仕様:ログインチェック機能(username / password)
正常系:ユーザー名 "admin"、パスワード "password123" ならログイン成功
異常系対応は未実装:後ほど HAZOP Guide Words に基づく異常ケースでテスト可
🧩 C言語版(簡易CLIアプリ)
#include
#include
int main() {
char username[50];
char password[50];
printf("Username: ");
scanf("%49s", username);
printf("Password: ");
scanf("%49s", password);
if (strcmp(username, "admin") == 0 && strcmp(password, "password123") == 0) {
printf("Login successful!\n");
} else {
printf("Login failed.\n");
}
return 0;
}
🐍 Python版(標準入力)
def login(username, password):
return username == "admin" and password == "password123"
if name == "main":
username = input("Username: ")
password = input("Password: ")
if login(username, password):
print("Login successful!")
else:
print("Login failed.")
🔬 Pythonでのテストコード(pytest)
def test_login_success():
assert login("admin", "password123") == True
def test_login_fail_username():
assert login("user", "password123") == False
def test_login_fail_password():
assert login("admin", "wrongpass") == False
🌐 JavaScript版(Node.js)
function login(username, password) {
return username === "admin" && password === "password123";
}
// 実行例(ターミナルで)
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question("Username: ", (username) => {
readline.question("Password: ", (password) => {
if (login(username, password)) {
console.log("Login successful!");
} else {
console.log("Login failed.");
}
readline.close();
});
});
🧪 JavaScript テスト(Mocha + Chai)
const assert = require('chai').assert;
describe("Login function", () => {
it("should return true for correct credentials", () => {
assert.isTrue(login("admin", "password123"));
});
it("should return false for incorrect username", () => {
assert.isFalse(login("user", "password123"));
});
it("should return false for incorrect password", () => {
assert.isFalse(login("admin", "wrong"));
});
});
🔎 このコードと HAZOP Guide Word の関係
Guide Word 例
No 入力が空("")
More パスワードが1000文字など長すぎる
Less 入力が短すぎる(1文字)
Other Than 意図しない特殊文字(例:SQLインジェクション)
Reverse ユーザー名とパスワードが逆
Early / Late 入力タイミングの問題(時間制限、遅延)
Part Of パスワードの一部のみ入力
As Well As 余計な入力が含まれる(トークン付きなど)
Before / After 処理順序ミスによる不整合(セッション管理など)
📦 まとめ・応用提案
本サンプルは、**「正常系コード」+「異常系テスト」+「HAZOP的な観点」**をセットで学べる構造です。
HAZOP の教育用途やチームのコードレビュー研修にも活用できます。
次のステップとして、セキュリティ対策(入力バリデーション)や多言語翻訳対応、ログ記録対応などに展開可能です。
ご希望があれば、これらのコードをベースにした「教材パッケージ」や「GitHubリポジトリ例」も作成できます。必要であれば、お知らせください!
あなた:
GitHubリポジトリをお願いします。
ChatGPT:
こちらで、GitHubリポジトリと既存のHAZOP関連プロジェクトの例をご紹介したうえで、目的に沿ったリポジトリ構成例のテンプレートをご案内します。
GitHub にある HAZOP 関連リポジトリ例
preHAZOP
DEXPI形式のP&ID図とDWSIMのプロセスシミュレーション結果から、自動で HAZOP シナリオを検出する Python ベースのツールです。GUI も備えています。
GitHub
その他、"HAZOP" タグ付きのプロジェクトとして、産業分野での分類予測器やパーサー、モデリングツールなどが公開されていますが、今回の目的に合う具体的なログイン処理サンプルなどは未発見でした。
GitHub
「HAZOP × Guide Words × 多言語コード」のGitHub リポジトリ構成例
以下は、先ほどの C / Python / JavaScript のログインサンプルを活用し、HAZOP Guide Words を用いた異常ケースも含めた教育・開発用テンプレートとして構成したリポジトリの例です。
ディレクトリ構成(例)
hazop-multi-lang-login/
├── C/
│ ├── login.c
│ └── test_login.sh
├── python/
│ ├── login.py
│ └── test_login.py
├── javascript/
│ ├── login.js
│ └── test_login.js
├── hazop_examples.md
└── README.md
README.md (概要説明)
HAZOP Guide Words × 多言語ログインサンプル
このリポジトリでは、HAZOPの11のガイドワードに基づき、C / Python / JavaScript によるログインボタンの異常・正常動作を例示しています。
各言語のサンプル
-
C/
: シンプルなコマンドライン版ログイン処理 -
python/
: 同様のログイン処理と pytest によるテスト -
javascript/
: Node.js 版ログイン処理と Mocha + Chai のテスト
HAZOP Guide Words 適用例
hazop_examples.md
に、各ガイドワード(No, More, Other than など)に対応する異常入力例とそのテスト例をまとめています。
使い方
- 各言語ディレクトリに移動し、テストを実行してください。
- 新たな Guide Words や異常ケースの追加・検討にも活用できます。
hazop_examples.md(Guide Words による異常例整理)
HAZOP Guide Words × ログイン入力異常例(Guide Word ごと)
Guide Word | 異常入力例 | 備考 |
---|---|---|
No | 空文字 ("" ) |
未入力 |
Reverse | username と password を逆に入力 | 入力の誤配 |
Other Than | SQL インジェクション文字列 (admin' OR '1'='1 ) |
想定外文字列 |
More | パスワードを最大長 (1000文字) | 長すぎる入力 |
Less | パスワードを1文字 | 短すぎる入力 |
As Well As | 余計なトークン付き (password123 xyz ) |
余分な文字列 |
Part Of | パスワードの一部だけ (pass ) |
部分入力 |
Early | 入力の先行送信(タイミングずれ) | タイミング依存 |
Late | 遅延入力(タイムアウト) | 時間制御依存 |
Before | 認証後にセッション設定を先行させる | 順序ミス |
After | テストを後回しにして本番投入 | 順序省略 |
これらの例に対して、各言語ごとにテストを追加することで、より実践的な HAZOP 観点のテストカバレッジを確保できます。
利用イメージ
教育・研修ツールとして:HAZOP と異常検出の考え方を学ぶ教材として
チーム開発の演習素材として:初心者が異常入力量産やテスト設計に慣れるためのベーシック素材として
CI テストテンプレートとして:「Guide Words に基づいた異常テスト」のテンプレート化に活用可能
ご希望があれば、上記をそのまま GitHub にリポジトリ化するための README テキストやテンプレートファイルの提供も可能です。必要であればお知らせください!
あなた:
はい。お願いします。
ChatGPT:
代わりにチャットで回答
Canvasを使ってGitHubリポジトリ用のファイルセットを生成するには、ChatGPTにログインしている必要があります。ログイン後に再度お知らせいただければ、すぐに作業を開始できます。
参照
ChatGPT利用の技4つ
https://qiita.com/kaizen_nagoya/items/4a178bd6a09a4a471a7f
ChatGPTによるQiita記事の改良と補足
https://qiita.com/kaizen_nagoya/items/20604d6dd0702ab95c2f
ChatGPTによるQiita記事の改良と補足(2)
https://qiita.com/kaizen_nagoya/items/996275307ffc8c1243f8
本から始める 面倒なことはChatGPTにやらせよう by からあげ
https://qiita.com/kaizen_nagoya/items/f5ce2a18db54b5610e4b
MCP入門 〜面倒なことはAIエージェントにやらせよう〜 by からあげ を聞きながら
https://qiita.com/kaizen_nagoya/items/54b648c838fae8d57e38
【松尾研LLMコミュニティ】面倒なことはLLMにやらせよう "Beginning LLM"2024年10月17日 AI(9)
https://qiita.com/kaizen_nagoya/items/efdc23fbe67cdae2126e
設計:ChatGPTで特異解か一般解を求める AI(1)
https://qiita.com/kaizen_nagoya/items/4dec580e16a7c84b0ec4
みんなの使い方から学ぶ
https://qiita.com/kaizen_nagoya/items/8e7de492d896df94a36e
AI・機械学習 昨日、今日、明日
https://qiita.com/kaizen_nagoya/items/adb184c8fc7a65ac9756
DNA LLM and genome for survey 2200 papers by name.
https://qiita.com/kaizen_nagoya/items/ce8a28d6072f340a9d59