はじめに
これは、ソフトウェアテスト Advent Calendar 2020の15日目の記事になります。
最初は「組み合わせテストツール」について書こうと思っていたのですが、たんなるリンク集っぽくなってしまったので切り替えました。
移行作業
2018年からサーバーリプレース作業でWindows Server 2008R2 + Oracle 11g から Windows Server 2016 + PostgreSQL 9.6 に移行作業をし、コロナ禍で出張が延期になるなど影響がありましたが、1年(月1〜3拠点)かけて全国25箇所の導入作業が2020年9月に完了しました。
OracleからPostgreSQL移行について
移行検討するアプリケーションは40ほどありましたが、廃止および新規作り替えなどがあり最終的には30くらいになりました。この中にはDelphi 5(1999年に発売)で作成されたアプリケーションは結構あり、C#に切り替えるようにしていきました(全部は無理だった)。私が現在の会社に2009/09に来たのですが、その時点で未だにDelphi 5を使用しているのは驚きでした。まーこういう機会でもないと作り替えできないよね。
使用するユーザーは同じグループ会社ということもあって、テスト環境は幅広く考える必要はない。
作り替えのテスト
当時作成した担当者は別のチームに移動していたり退職されてしまっており、仕様書は一応あるものの心許ない状態です。テスト仕様書についても改善した機能のみのテスト仕様書がバージョンごとにExcelシートになっている状態です。
Delphi 5のソースコードを元にC#(ASP.NET Web API)に移植していきました。テスト仕様書は改善部分のシートになっていたのを精査して1つにまとめ上げたものでテストしてなんとか移植作業は終えました。
今度はサーバーとデータベースに切り替わるので、社内環境でテストしたもののユーザー側にはそのまま本番導入になります。
問題発生
問題①
ユーザー検証でインターフェイスのアプリケーション(Delphi→C#変更)の1回ごとの起動処理が3秒ほどかかるとして、当初は原因が不明でDBを使わないアプリケーションだったこともあり、従来のDelphi版で使用することになりました。
その後にいろいろ調査して、固定IPアドレスとプロクシの自動検出が原因でした。
【.NET】HttpClientの初回が遅いのはプロクシの自動検出が原因
今後の改善①
ユーザーの環境にもっと寄り添って考えるべきであった。ネットワーク環境という観点は漏れていた。
解決方法も分かったのだが未だにDelphi版のまま。最初のつまづきが尾を引いてしまった。来年こそはC#版に切り替えてもらうぞ。
問題②
今まで読めていたデータの1つが、エラーになって読めないようになった。
原因は性能検証した際にインデックスが使われないことが分かりSQLの内容を変更したが、そのSQL自体に間違いがあった。
今後の改善②
性能検証した後にSQLを変更したのだから、簡易テストに留まらずに再度テストすべきでした。
問題③
バーコードを読むアプリケーションでデータが登録されないことがあるとの報告が挙がりました。
原因はバーコードの種類や読む順番にパターンが多くあり、とあるパターンではデータ登録処理が呼ばれず画面だけが戻ることが分かりました。
今後の改善③
テスト用のきれいなパターンでのみテストして、実践で使用されるパターンが漏れてしまっていた。
ユーザーの読み込みログやデータベースのデータは取得できるのだから、何日分かの実際のデータを使用して問題ないか確認する必要があった。
大量のデータを順次読めるように自動化するアプリケーションを開発する。
最後に
上記以外にも幾つか問題があったのですが、何とかやってます。
当日書くもんではないですな。うまく文章が纏まらない。