タイムテーブル Timetable

タイムテーブルに戻る
こだわりを静的解析で表現しよう 90分で作って動かす自作analyzer入門
僕が初めて静的解析ツールを作ったきっかけは境界値のテストケースが漏れているにもかかわらずテストカバレッジ100%と出ていた違和感からです。<や<=などの境界値のバグはカバレッジやlintで検出できません。さらにAIにコードを書かせる機会が増えている今、コーディング規約などのルールでは品質を守りきれなくなっています。そこで自分のこだわりを静的解析ツールに落とし込むことでAIに書かせても品質を保つことのできる機械的なルールに変えることができると考えています。
本ワークショップでは、境界値分析・同値分割の観点でテーブルテストの網羅性を検証するツールを題材に、ASTの読み方から始めて自分の手でツールを実装していきます。
実装はステップアップで行っていきます。
1.関数を見つけて報告する
2.if文から境界値を抽出する
3.テスト値と照合して警告する
完成品はif文の境界値がテーブルテストのテストケースに含まれていなければ警告するCLIツールです。
ゴールは参加者が既製のlintやtypecheckでは守れない自分たちのこだわりやルールを自作の静的解析で検証できるという選択肢を得ることができることです。ASTの心理的ハードルを下げたいです!
対象者:
・Goの基本文法の読み書きができる方
・ASTに関心があるが手を出せていない人
タイムテーブル:
0~10分:ASTに出会った自分の経験
10~25分:ASTとは(ASTの説明と読み方、コードをASTに変換してみる)
25~30分:analysisフレームワークの仕組み
30~45分:Step1 関数を見つけて報告する
45~60分:Step2 if文から境界値を抽出する
60~80分:Step3 テスト値と照合して警告する+発展課題
80~90分:完全版デモ・CI組み込み・まとめ
つばさ 九州工業大学大学院
Goを中心にバックエンド開発を学んでいる学生です。