AWS BugBust re:Invent Challenge で修正したバグの例と最終成績
AWS BugBust re:Invent Challenge とは
AWS re:Invent 2021 のイベントとして AWS BugBust re:Invent Challenge が開催されました。簡単に言うと「指定されたバグを多く修正すると賞金や賞品がもらえるコンテスト」です。詳しくは AWS ブログの記事をご参照ください。
修正したバグの例
ぼくもこのイベントに参加して 129 件のバグを修正しました。修正対象として提供されたのは Python と Java で書かれたソースコードです。
まず Python ではリソースリークの可能性があるとしてバグ扱いだった処理を主に修正しました。下記がその例です。これだけで 3 ポイントもらえて効率的でした。
- f = open('%s/REPS.param'%folder_ICs, 'w')
- f.write(r_file)
- f.close()
+ with open('%s/REPS.param'%folder_ICs, 'w') as f:
+ f.write(r_file)
もう一方の Java ではパフォーマンスが悪いとしてバグ扱いだった処理を主に修正しました。下記がその例です。こちらは 1 ポイントでした。
- for (String key : expressions.keySet()) {
- String expression = expressions.get(key);
+ for (Entry<String, String> entry : expressions.entrySet()) {
+ String expression = entry.getValue();
修正したソースコードはプルリクエストを送ることで採点対象となるシステムでした。
最終成績
このような修正を積み重ねて最終的には 363 ポイントを獲得しました。ランキングでは 613 人中 57 位でした。
その結果、下記の賞品がもらえることになりました。
- はえたたき(1 ポイント)
- キータグ(50 ポイント。輸出制限のあるハンドサニタイザーの代わりだそうです)
- ジャー(150 ポイント)
- パーカー(300 ポイント)
もう少し頑張って 500 ポイントを超えていたら Amazon Echo Dot も追加で獲得できたところでした。しかしスマートスピーカーはすでに持っており、忙しい時期だったこともあって今回は目指しませんでした。
参考までに 1 位のスコアは 2162 ポイントです。優勝賞金は 1500 USD でした。
この AWS BugBust re:Invent Challenge がまた開催されるならぜひ参加したいと思っています。バグ修正は楽しくて勉強にもなりました。
ちなみに今回の開催は「世界最大のバグ修正チャレンジ」としてギネス世界記録に認定されたそうです。その証明書ももらえました。
Discussion