안정적이지 않은 테스트는 어떠한 코드 수정없이 때때로 성공하고 실패하는 테스트입니다. 분명히 개발자가 실패한 테스트를 다시 실행해야 할 때 개발 속도가 느려집니다.
그러나 진짜 문제는 완벽하게 이 테스트를 믿을 수 없다는 것이고 많은 다른 이유로 테스트는 실패할 것입니다. 그리고 이것이 production에서 어떤 문제를 일으킬지 모릅니다.
TestNG와 같은 몇가지 도구는 개발자를 자동적으로 이상한 테스트를 재시도할 수있도록 가능하게 해줍니다. 이것은 일시적인 해결책으로 괜찮을 것입니다. 그러나 이것은 정확하게 고쳐져야 합니다.
더 이상한 테스트를 추가할 수록 버그들이 production으로 도달하는 더 많은 기회가 생깁니다.
이 규칙은 org.testng.annotations.Test
어노테이션에서 successPercentage 인자가 100보다 낮게 주어질 때 문제를 제시합니다.
규칙을 어긴 코드
import org.testng.annotations.Test;
public class PercentageTest {
@Test(successPercentage = 80, invocationCount = 10) // 규칙을 어긴 코드. 테스트는 두번 실패하는 것을 허용합니다.
public void flakyTest() {
}
}
참고
- TestNG documentation - Annotations
-
Test Flakiness - Methods for identifying and dealing with flaky tests
If you like SONARKUBE, don’t forget to give me a star.