What can be alternative metrics to code coverage?

后端 未结 15 1048
迷失自我
迷失自我 2021-01-30 10:00

Code coverage is propably the most controversial code metric. Some say, you have to reach 80% code coverage, other say, it\'s superficial and does not say anything about your te

15条回答
  •  忘了有多久
    2021-01-30 10:19

    Scenario coverage.

    I don't think you really want to have 100% code coverage. Testing say, simple getters and setters looks like a waste of time.

    The code always runs in some context, so you may list as many scenarios as you can (depending on the problem complexity sometimes even all of them) and test them.

    Example:

    // parses a line from .ini configuration file
    // e.g. in the form of name=value1,value2
    List parseConfig(string setting)
    {
        (name, values) = split_string_to_name_and_values(setting, '=')
        values_list = split_values(values, ',')
        return values_list
    }
    

    Now, you have many scenarios to test. Some of them:

    • Passing correct value

    • List item

    • Passing null

    • Passing empty string

    • Passing ill-formated parameter

    • Passing string with with leading or ending comma e.g. name=value1, or name=,value2

    Running just first test may give you (depending on the code) 100% code coverage. But you haven't considered all the posibilities, so that metric by itself doesn't tell you much.

提交回复
热议问题