Нашёл интересную статью в которой авторы провели опрос тестировщиков из крупных компаний (ФБ, Майкрософт, Гугл, Линкедин) и популярных opensource проектов на Гитхабе. Результаты они объединили и получился отчёт в виде гипотез и соответствующих им баллов (от 1 до 5, "strongly disagree, disagree, neutral, agree, and strongly agree to 1, 2, 3, 4, and 5, respectively") по шкале Лайкерта. Так, например, первая гипотеза получила 3.93 балла по шкале Лайкерта и это означает общий ответ "согласен". Ниже я привел все гипотезы и количество баллов.
- H1: In general, practitioners advice that a test case should be specific, i.e., it should try to test only one functionality (average Likert score = 3.93) - H2: Most respondents express that test cases should be selfcontained with no or minimal dependency on other test cases present in a suite (average Likert score = 3.95) - H3: Almost all of our respondents strongly agree (140 respondents) or agree (107 respondents) that it is important for test cases to check both normal and exceptional flow (average Likert score = 4.47) - H4: Boundary value analysis refers to testing at the boundaries between partitions of the input space, which include both valid and invalid values (average Likert score = 4.24) - H5: Well commented, named and designed test cases may serve as a good reference documentation (average Likert score = 3.93) - H6: A large number of respondents agree that test cases should be small whereas some are neutral or even disagree with this hypothesis (average Likert score = 3.85) - H7: In general, practitioners confirm that large test cases are hard to understand and maintain (average Likert score = 3.73) - H8: Practitioners agree that large test cases can be useful to detect difficult-to-find bugs (average Likert score = 3.59) - H9: Most practitioners are of the opinion that a test suite should contain a good mix of many short and a few large test cases (average Likert score = 3.97) - H10: Test cases can often become long and hard to manage and this increased complexity of test cases can lead to bugs in the test code. (average Likert score = 4.04) - H11: Code Coverage, Necessary but Insufficient (average Likert score = 3.97) - H12: Practitioners in general agree that coverage information can be leveraged to understand shortcomings of current test cases to write new tests (average Likert score = 3.97) - H13: In general, practitioners agree that a higher coverage does not mean that a test suite can detect more bugs (average Likert score = 4.02) - H14: Single test case should have a small footprint (i.e., the amount of code it executes) (average Likert score = 3.92) - H15: Testcase that is designed to maximize coverage is often long, not understandable and brittle (i.e., breaks easily) (average Likert score = 3.50)