どんなテストで失敗したのか分からないと改善しづらい
水曜日, 4月 15th, 2015もともと教育を想定したサイトではないので仕方ないかもしれないですが、paizaさんのお話。paizaさんは「paizaは、コードを書いて書類選考なしで面接に進める、まったく新しいカタチの転職サービスです。」なので、あくまでも求人を想定したコーディング力評価が趣旨とのこと。触ってみて感じた面白い点は、事前に明確に確認できる単体テストは2件程度、事前ににサイト上で単体テストできるのは1件程度という点。それ以外のテストは明確な入出力が用意されませんが、提出されたコードに対して10個程度のテストが自動で評価され、採点されます。これらの明示的に出て来ないテストについては「文章で書かれてる仕様から読み解く」形で対応する必要があります。
それはそれで良いし、用意されてるお題について複数のテストをやって点数付けするのも良いのですが、失敗した後で良いからどういうテストで失敗したのか教えて欲しいな、と。求人目的であっても「その人のスキル上がることが期待できる(よね?)」なら、失敗したテストを採点後に通知することには意味があると思うのだけど、何故やらないのだろう。
この間書いた盤面ゲームに昨晩トライしてみた所、中身は「リバーシ作れ」。う、めんどくさい。あれこれ試行錯誤しながらやった結果、
<平均>
問題集計 受験者数: 1,193人
正解率: 78.1% 平均回答時間: 101分33秒 平均スコア: 73.04点<當間スコア>
受験結果 受験言語: Python 回答時間: 155分29秒 獲得ランク: Cランク スコア: 28点
という悲しい結果に。テスト10件中通ったのは4件のみ。しくしく。どんなテストで失敗したんだろう。という思いと、制限時間付きでリバーシ作らせるなよという思いで半々です。しくしく。綺麗に書くとかあまり考えず、取りあえず動けば良いかの方針で書いた結果、Pythonで約140行程度で書けました。例外処理はあちこちにでてきますが、ルール自体はシンプルなゲームだし。
盤面を「黒をB、白をW、開いてるマスをN」で表現してるとすると、「裏返すかどうかを判定したい方向の盤面データを取得して、置いた石がBなら「BW+B*」で裏返すかどうかを判定」とかしてみたんだけど、微妙にスマートじゃない気もするし、何か想定外の誤判定してしまいそうな気もする。けど、明示的に用意されてたデータでは正しく処理できたんだよな。
ということで気持ち悪いので失敗したテスト教えてください〜。というリクエストは送ってみました。多分教えてくれないだろうなとは思いつつ。