LoginSignup
3
4

More than 5 years have passed since last update.

元号改正時のテストケースについて考えてみたので突っ込みを入れて欲しい

Last updated at Posted at 2019-02-03

どうも、はるにゃんです。初投稿です。

元号改正、ついに今年に迫ってきました。
わたくしも元号改正チームに
「テストやって★」と追加戦士として参戦させられまして、頭を抱える毎日でございます。

そんなわけでソフトウェアテストエンジニア(仮)として昨年12月から勉強を始めていますが、
弊社にテストエンジニアが存在しないため、ここに書いて誰かが素敵な助言を下さることを期待しつつ、
元号改正の対応としてこういうテストをやればいいのかな?というのを考えてみました。

※ ここに書いたテストケースはあくまでも一例です。網羅性だのなんだのは何も考えていません。
実業務でのご利用は計画的に。

まずは想定している仕様

画面上で”元号頭文字+和暦/月/日”で入力をおこなう(例:平成31年2月10日→H31/02/101)。
DB上は西暦で保持しているので、和暦→西暦変換でDBへの登録、西暦→和暦変換で照会をします。
和暦でDBに保存してるとかっていう変態システムは想定の範囲外すぎます

仮に、新元号を"J:神化2"とします。

境界値分析

とりあえずテストの基本、境界値分析です。
平成と神化の境界は2019/04/30と2019/05/01ですので、
入力値としてH31/04/30とJ01/05/01をテストケースに入れるのは当然のお話です。みんなそうする、オレもそうする。

さて、平成の境界線と、神化の境界線を考えると、
平成:1989/01/08~2019/04/30
神化:2019/05/01~2999/12/313
となりますので、H31/05/01とJ01/04/30も境界値分析的には必要になるのではないでしょうか。
コレかいてて気付いたんですが、J99/12/31ってどうなるんだろう。気になります!

では、平成と昭和の境界は…どうなんでしょう?
テストケースにくわえる必要ってあるのかしら?

とりあえずここまでで、大体こういうテストケースを作ってみました。

テストデータ 期待結果
H01/01/08 1989/01/08
H31/04/30 2019/04/30
H31/05/01 ×
J01/04/30 ×
J01/05/01 2019/05/01
J99/12/31 2117/12/31

組み合わせテスト

組み合わせテストです。
日付で考えられる組み合わせについては、FromToの検索くらいなのですが、もし他にあったら教えてくださいっ><;

FromがNULLの場合は1900/01/01
ToがNULLの場合は2999/12/31
となる仕様の場合を考えます。

From To 期待結果
NULL NULL 1900/01/01~2999/12/31
NULL H31/04/30 1900/01/01~2019/04/30
H31/04/30 NULL 2019/04/30~2999/12/31
NULL J01/05/01 1900/01/01~2019/05/01
J01/05/01 NULL 2019/05/01~2999/12/31
H31/04/30 J01/05/01 2019/04/030~2019/05/01
J01/05/01 H31/04/30 ×
J01/05/01 J99/12/31 2019/05/01~2177/12/31

大体こういう感じでしょうか汗

やってみた感想

考えるとやってみたくなるものですが、「バグでそうだなこれ」という勘が私に足りてないなという感想。
この程度のテストケースで出てくるバグなら、苦労しなさそうだなって…。


  1. DB上2020/02/10の日付を画面で表示させると、H02/02/10となる不具合があったけれど、それはまた別のお話。 

  2. コンクリート・レボルティオはいいぞ。 

  3. 便宜上こう書いてみました。 

3
4
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4