며칠 전에 버그가 발견 된 다국어 웹 사이트가 있습니다. 다른 언어로 된 다른 언어 데이터를 표시하고 영어와 같은 데이터의 혼합을 선택했지만 페이지에서 다른 언어 데이터도 표시했습니다. 자주 수행하지 않지만 웹 사이트에 있습니다. 항상 발생하는 것은 아니기 때문에 코드를 통과해도 도움이되지 않습니다.
적시에 문제를 찾는 데 어떤 제안이 있습니까? 나는 여기서 전략을 요구하고 있습니다.
며칠 전에 버그가 발견 된 다국어 웹 사이트가 있습니다. 다른 언어로 된 다른 언어 데이터를 표시하고 영어와 같은 데이터의 혼합을 선택했지만 페이지에서 다른 언어 데이터도 표시했습니다. 자주 수행하지 않지만 웹 사이트에 있습니다. 항상 발생하는 것은 아니기 때문에 코드를 통과해도 도움이되지 않습니다.
적시에 문제를 찾는 데 어떤 제안이 있습니까? 나는 여기서 전략을 요구하고 있습니다.
답변:
첫 번째 단계는 이러한 유형의 문제를 일으킬 수 있는 것을 시도하고 특성화하는 것 입니다. 이는 코드 섹션에 올바른 언어를 선택하는 것과 관련이 있으므로 다음을 고려하여 시작하십시오.
당신이 특징으로 한 자, 일단 가능성이 잘못 될 수있는 무엇을, 그것의 시간은 당신이 당신이 시도하고 무엇을 찾을 필요가 데이터를 가지고 있는지 확인하는 한 이동 잘못.
마지막으로, 문제를 재현하는 방법과 그 원인을 알기까지 문제를 좁힌 후에는 코드에서 문제를 강제로 실행할 수있는 가장 작은 자동 테스트를 작성하십시오. 문제를 한 클래스로 좁히거나 한 쌍의 클래스가 올바르게 작동하지 않으면 해당 레벨에서 문제를 재현하십시오. 100 개의 스레드를 생성 할 필요가 없으며 100 %의 시간 동안 문제가 발생할 수있는 가장 작은 테스트 만 수행하십시오.
이제 당신은 그것을 고칠 수 있고 다시 물지 않을 것이라고 확신합니다.
버그는 생식 할 수 없습니다. 당신은 아직 그것을 재현하는 방법을 찾지 못했습니다.
Random () 문의 반환 값을 기반으로 예외를 throw하지 않으면 임의의 버그가 발생하지 않습니다.
나는 이것이 의미론처럼 보일 수 있다는 것을 알고 있지만 이것을 당신 자신에게 말하는 것은 정신적으로 안심입니다.
복잡한 경쟁 조건 등으로 인해 발생하는 버그를 재현하는 방법을 찾는 것은 매우 어렵고 실망 스럽습니다.
그것을 찾는 방법에 관해서는 더 많은 정보를 줄 수있는 곳에서 응용 프로그램에 로깅을 켜거나 추가 할 것입니다.
다음으로 버그를보고있는 사람들 (개발자, QA, 최종 사용자)에게 발생한 시간과 함께 버그를보고하자마자 로그를 확인하십시오. 다른 정보를 요청하거나 버그는 여러 다른 시스템의 상호 작용 또는 경쟁 조건 으로 인해 발생할 수 있습니다.
잘하면 당신은 리드를 찾을 수있을 것입니다.
자동화는 실패한 경우를 재현하는 동일한 단계 인 경우 자동화하여 루프에 배치하는 데 도움이됩니다. 50,000 번 실행하면 발생할 가능성이 큽니다.
이 문제가 발생하는 조건을 찾아내는 패턴을 찾으십시오. 그것은 실패하거나 일관성이없는 코드 부분으로 당신을 가리켜 야합니다.