ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

ソフトウェア改修時のデグレードについての大きな誤解

 タイトルは釣りです。そして、タイトルを見て「デグレード? 何?」と感じた人は幸せかもしれません。
 先に結論を言うと、デグレード」という日本語は、「degrade」という英語と対応しないそうです!

デグレードとリグレッション

 わたしがこれを知ったのはつい先日、以下の記事を読んだ時でした。

itpro.nikkeibp.co.jp

DegradationとRegression ソフトウェアのプログラムコードに手を加えると、それまで正常に動作していた機能がうまく動かなくなることがあります。これをRegressionというのですが、なぜか日本人はほとんど全員が「デグレ」と言う。デグレと言うと、Degradation(劣化)のことを指し、本来は性能劣化という時に使う単語です。

 えーーー!
 まさにこの記事にもあるように、ぼくもまた、「デグレード」「デグレ」という言葉を、「ソフトウェアが備えていた機能・属性が、改修により劣化する、あるいは失われること」と理解していました。わざわざ「ノンデグ」「ノンデグレードなんていう言葉も用意されているのですよ!

 「リグレッションテスト」は「デグレード」がないことを確認するテスト。これは「回帰試験」とも言われるように、「改修はしたけど、もともと持っていた機能・属性に等しい、つまり元のところにちゃんと帰ってくる」から「回帰」だと信じていたのです。
 しかしあらためて「regress」という単語を調べてみると、「復帰する」だけでなく、「退行する」「逆行する」という意味があるのですね。
 ちなみに「回帰分析」(regression analysis)の「回帰」はWikipediaによると、「語源的には回帰効果(平均への回帰)に由来する」とあります。こちらはまさに、「帰ってくる」の意味なのですね。この言葉を、「regression test」の訳にも使ったところが、ぼくの、いやぼくたちの誤解を招いたのではないか!

ついでにボキャビル!

 さて、これだけでは無知をさらすだけで終わってしまうので、ついでに英語の勉強もしておきましょう。

 degradeの「grad-」とか、regressionの「gress-」には、「歩く」(to walk)という意味があるのだそうです。
 並べてみると、何となく共通性が見えてきますよ。(ALCから引用しています)

  • aggressive: ag(向かって)+gress(行く)→ 攻撃的な
  • congresscon(一緒に)+gress(行く)→ 会議・議会
  • progress: pro(前に)+gress(行く)→ 前進
  • regress: re(後ろに)+gress(行く)→ 後退
  • gradually: だんだんと、徐々に
  • graduate: 卒業する

 こんなジョークもあります。

Question : What is the opposite of progress? (「進化」の反対は?) Answer : Congress. (「議会」。)

 引用元はこちらのサイトですが、NHK英会話ではもう少し立ち入った説明をしていました。「pros and cons」という言葉があって、これは「是か非か」という意味で、対義語。だからこそ、progressの反対がcongressという理屈が成り立つのですね。

 さあ、これで明日から、「デグレード」って言葉を使う人を心の中で嗤う、楽しいITライフを送れますね!