会社からプログラムの作成を頼まれているのですが、会社の友人が言うには『バグやセキュリティホールがあってはいけない』と言われました。私は『無理』と言っていますが、友人も『バグや(略』と平行線です。
私個人としてはプログラムの難易度にかかわらずバグやらセキュリティホールの無いプログラムを作成するのは不可能だと思います。限りなくバグの無いプログラムを作るのは可能だと思いますが、無限ループが無いだとか動作不良が無い程度のレベルが限界で、一挙一動の動作テストだったり会社員の(暇な)時間ではなかなか難しいのではないかと言うのが正直なところです。長期間暇な時間が取れたり、ゲームのように多人数でデバックすれば可能かもしれませんが…プログラムに詳しい方の意見、また友人を納得させる案を教えていただければと思います。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
プログラムの規模によります。
単純な仕様ならバグの無いプログラムは作れます。
理論的な事を言えば、どんなプログラムでも細かい単位に分割し、それぞれの要求仕様を正しく実装すればバグを無くす事は可能です。
しかし現実的にはバグの全くないプログラムを作るのは非常に困難です。
質問者さんが言う様にテスト体制の問題だったり、時間や金額といった費用、実装者/テスターの人的資質、無茶な要求仕様など、その要因は様々です。
ですから我々は通常、仕様と成果レベルと合わせて、それが実現可能な諸条件を提示します。それを顧客が了解して始めて実装に入ります。
「バグやセキュリティホールがあってはいけない」のは当然ですが、現実問題として難しいので、条件を限定して、その中でなら可能ですがどうしますか?と問い、納得すればその条件下での動作のみを保証するわけです。
「ウソをついてはいけない」
子供でも知ってることですが、一生これを守るのはムリでしょう。
でも一週間に限定すればなんとか可能な気がしますよね?
出来ない理由を並べて拒否するのではなく、どうすれば出来るかを考え、お互いに妥協できるポイントを探るのが良いかと思います。
(これって何もソフトウェア開発に限った話じゃないですね…)
No.2
- 回答日時:
> 会社の友人が言うには『バグやセキュリティホールがあってはいけない』と言われました。
私は『無理』と言っていますが> また友人を納得させる案を教えていただければと思います。
理想を言えばその通りです。
現実的には、『完璧な人間』が存在しない以上、バグやセキュリティーホールがない完璧なプログラムは作れません。
デバッグを繰り返すことでそのバグを極力減らすようには出来ますが、0にはなりません。
無限にデバッグを繰り返すと公開できなくなりますので、ある程度のところで公開する、と言うことになります。
「どの程度のところで公開するか」というのがソフトウェアの品質と言うことになると思いますが、
「考え方の違い」、たとえば、「『白でなければならない人と黒でなければならない人を同時に満足させなければならない』という条件」を満たせないことをバグと呼ばれることもあります。
(No.1さんの"2"の話と同じだと思います。
ちなみにこの条件、「灰色」は白でも黒でもありませんので、これでは条件を満たせません。)
No.1
- 回答日時:
興味深い友人ですね。
自分は一度も失敗をしたことがない完璧超人なんですね。
1. OSをアップデートしたら動かなくなるものに関しては「バグ」扱いでしょうか?
もしバグであるなら、OS側が勝手に仕様を変更するものまで未来予知して作成するのは不可能です。
バグではないのなら、どこまでがバグなのか定義する必要が出てきます。
まずはバグを定義してください。
2. アップデートしなかったら期待通り動き続けるはずですが、既知のセキュリティホールが増えます。
また、10年前ではセキュリティホールとして認知されていなかったものが現在ではセキュリティホール扱いになることもあります。
ex. IE のファイルアップロードでフルパスが送信される件
ex. Firewall が各PCに設定されていない件
これらまで防ぐことも未来予知になるため不可能です。
従って「バグやセキュリティホールがあってはいけない」という命題は矛盾します。
期限を区切ればある程度は可能でしょう。ただし、100%は不可能です。
それ以外のバグとセキュリティホールに関しては設計と技量とテストケース、スケジュールの範囲です。
# 指定した通りの使い方を強要し、それ以外の問題は「仕様通り」ということにしてしまえば「バグ」はないですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ビジネス・キャリア) グーグルの障害者訓練プログラム募集あるがどうだろ?6時間勤務で月収22万!! 1 2023/02/17 20:36
- その他(セキュリティ) これはDos攻撃になりますか? 1 2022/06/30 09:46
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 仮想通貨(暗号通貨) ディープラーニングなど AI が投資でも人間を抜くだろうと言われています 仮想通貨 AI を使用して 4 2023/02/25 22:05
- その他(プログラミング・Web制作) Windows上のプログラム。「予め決められた時刻に自分で起動して処理して自分で終了する」って可能? 3 2023/01/04 14:29
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- 環境・エネルギー資源 SDGsの本質は人間の完全管理!異論ありますでしょうか? 6 2022/12/07 10:16
- Windows 10 Windowsのタイムスケジューラーについての質問です。 先日、Webスクレイピング用のプログラムを 1 2022/09/28 05:51
- その他(ゲーム) アタリショックを起こしたクソゲー「E.T.」 どんな内容なら失敗しなかったか? 3 2023/05/07 09:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DATE型変数を初期化する方法
-
httpリクエストの送り元の特定
-
C言語の出力方法
-
ビジネスメールの敬称
-
エクセルVBA テキストボックス...
-
数字以外の入力をエラーにする...
-
初歩的な事だと思います。 Sub...
-
入力フォームの値をQRコードで...
-
テキストボックスの番号を使っ...
-
EXCEL VBA で指定した範囲に入...
-
戻ると入力したフォームの内容...
-
DataGridView 列ごとの入力制限
-
DataGridViewの桁数制限に関して
-
EXCEL VBA のユーザーフォーム...
-
VB2005 複数のフォームを同時...
-
c#でTextBoxの入力制限
-
input type ="hidden"の具体的...
-
VBAでInputBoxの再入力をさせる...
-
非同期通信で掲示板を作る際の...
-
Windowsのアプリ開発ってなんの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DATE型変数を初期化する方法
-
httpリクエストの送り元の特定
-
C言語の出力方法
-
ビジネスメールの敬称
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
初歩的な事だと思います。 Sub...
-
数字以外の入力をエラーにする...
-
EXCEL VBA で指定した範囲に入...
-
お問い合わせフォームから送信...
-
Excel-VBAでInputBox+Pulldown...
-
フォームを再送信しますか?
-
入力フォームの値をQRコードで...
-
VBAの質問になります メッセー...
-
c#でTextBoxの入力制限
-
VBAで質問があります
-
php 確認表示画面で値をSESSION...
-
教えて!全角文字「μ」の半角
-
VBAでInputBoxの再入力をさせる...
-
excel vba でユーザーフォーム...
おすすめ情報