質問: -1 return ret ``` これらのようなテストケースを、すべて目検で拾うことが大変かなと、なにか効率よく数える方法はないかなと模索しているところです。 単体テストで、「C1が100%になるようなテストケースの数え方」について、よい手法を知りたいので、 知見のある方、お知恵を貸していただけませんでしょうか。 一発で済む魔法はないと思うのですが、おすすめのツールやフレームワーク、また経験談などあれば助かります... 正解がないので難しい話だとは思うのですが、よろしくおねがいします。 泥くさく、ひとつずつ数えるしかないのでしょうか? ### 試したこと ググって、テストケースの数え方について調べた。(コーディングの話が多くヒットして、実務の話がうまく見つけられなかった) ### 補足情報(FW/ツールのバージョンなど) python2.7 IDEはpycharmを使っています ※テスト項目数とテストケースを混同しており、他の投稿で指摘していただいたため、修正して投稿し直しています。
回答: Sonarqubeというのが、Python(Plugin)でも使えるようです。 指標にCyclomatic Complexity 循環的複雑度というのがあるのですが、言語にPythonが載ってないのですよね。。。 仮に利用できるとすれば、循環的複雑度=C1テストケース数とありますので、まぁざっくり指標は出せると思いますが・・・ そもそも、導入するのにハードル高いので新人では環境作るほうが、目視でケースを 洗い出すより大変かもしれません。 正直、1回こっきりのために環境作るのは面倒なので、あまりオススメではないですが、 機械的にやってミスをなくしたいというのと、他の言語や違う観点でソースをチェックできるので 時間が許せば、チャレンジしてみるといいと思います。 で、やはり難しいというのであれば・・・ 正確性がどの程度もとめられるか、わかりませんが、ソースをキーワードで検索して、出た数だけテストケースを増やす。でも、それなりのものはわかりますね。 つまり、Sonarqubeがやってることを自前でやる感じですね。 Pythonのキーワードが何になるか、わかりませんが。 泥臭い方法であれば、分岐のない部分をバッサリきって、分岐と例外をフローチャートような形で記録するのが確実です。 ※後述するツールのリンクにある「関数のフローチャート」を自作する感じ あとは、商用のツールですかね。 追記 あぁ。私、無知だったわ。 たぶん、https://radon.readthedocs.io/en/latest/ が、Pythonだと標準なのかも。 とはいえ、質問者さんの本来の目的には沿わないっぽくて、分岐の条件とか調査するなら 泥臭いやりかたしかないですね。