Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ドメインをスペックにしていく

 ドメインをスペックにしていく

Koichi Nishide

March 07, 2017
Tweet

More Decks by Koichi Nishide

Other Decks in Technology

Transcript

  1. ドメインをスペックにしていく
    @ichikoich

    View full-size slide

  2. @ichikoich
    ● 2015年からfreeeでエンジニアしてます
    ○ 入社から2年ほど、給与計算freeeのアプリエンジニア
    ○ 2017年からQAチームへ
    ● 前職は精密機器メーカーで働いてました

    View full-size slide

  3. 話すこと
    ● 複雑なドメインへの立ち向かい方

    View full-size slide

  4. freeeの紹介

    View full-size slide

  5. 給与計算freeeを2年間開発してました

    View full-size slide

  6. 給与ってどう計算されてるか知ってますか?

    View full-size slide

  7. 給与明細をみてみる

    View full-size slide

  8. 計算間違いはあってはならない
    ● 従業員へ払う残業代が実際よりも少ない
    ● 年末調整の還付額が少ない
    ● 所得税を少なく計算してしまう etc..

    View full-size slide

  9. そして、年々変わる料率・制度

    View full-size slide

  10. 散らばるスペック
    ● 単体テストはたくさんあるが、
    ○ それが本当に正しいかはぱっとみわからない
    ■ ドメインスペシャリストはコードを見れないし、エンジニアは複雑なドメイン
    習得には難航するし、、
    ○ 散らばってるのでリファクタしようとしても、どのテストケースに影響あるかよく
    わからない
    ■ 制度の改正があるときも同じく
    テストはRSepcで書いてます

    View full-size slide

  11. 変更を恐れず、どんどんユーザに価値を届けたい

    View full-size slide

  12. ここから自動化の話

    View full-size slide

  13. ドメインスペシャリストによるテストが継続的に回る仕組み

    View full-size slide

  14. フロー
    社労士さん エンジニア
    テストケースの期待結果
    テストケース
    csv
    - 会社A
    - 従業員X
    - 2017年1月の
    給与を計算す

    20,500円やで APIテスト
    - 従業員登録APIで事
    前準備
    - 給与明細取得API
    のレスポンスを確認
    デプロイのたびにテ
    スト

    View full-size slide

  15. ポイント1
    ● コードかけなくても自動テストデータを作成できる
    ○ Googleスプレッドシート上で社労士さんとやりとりして、一緒にテストケースや
    データをつくる

    View full-size slide

  16. ポイント2
    ● がんがん変更できるように、APIレベルで担保する
    ● Request Specを採用

    View full-size slide

  17. ドメインスペシャリストが
    APIテストを書いているイメージ
    心強いでしょ?

    View full-size slide

  18. さらなる効果
    ● 社労士さんと仲良くなれた
    ● 開発の初期段階で要件漏れを防ぐ効果もでてきた
    ○ こういうテストケースを考えてるんですが、他に例外系列やリスクがありそうなところ教えてください
    ○ テストケースの結果が返ってき、自分の思ってるのと違うーってなる。よくよく聞いてみると、まだ理
    解しきれていないところがあった
    ○ 文献や国税庁のHPを読むだけでなく、話してみると気づきはある
    ○ チームメンバもよくドメインスペシャリストに相談するようになった

    View full-size slide

  19. まとめ
    ● ドメインスペシャリストをテストに巻き込む仕組みを作るといいぞ
    ○ 複雑なビジネスロジックを教えてもらえる
    ○ さらに教えてもらったことが自動テストとして活きてくるので、いいエコサイクルになる
    ○ チーム全体がドメインを知るきっかけになる

    View full-size slide

  20. エンジニア募集中です

    View full-size slide