내가 고쳤다 고 생각하는 버그를 처리하는 방법은 확실하지 않습니다.


13

재생산하기 매우 어려운 버그에는 무작위로 거의 발생하지 않으며 거의 ​​발생하지 않습니다. 가능한 원인을 찾고, 수정하고, 프로그램을 테스트하고, 버그를 재현 할 수없는 경우가 발생할 수 있습니다. 그러나 버그를 안정적으로 재현 할 수 없었고 드물게 발생했기 때문에 버그 추적 프로그램에서이를 어떻게 나타낼 수 있습니까? 일반적인 방법은 무엇입니까?

status를 고정으로 설정하고 고정 solution을 고정하면 완전히 고정 된 것을 의미하지 않습니까?

테스터에게 "고정되었지만 확실하게하기 위해 더 많은주의가 필요함"을 나타 내기 위해 status를 고정 으로 설정하고 solution개방 으로 설정하는 것이 일반적인 관행 입니까?

편집 : 대부분의 (전체는 아님) 버그 추적기는 버그 상태에 대한 두 가지 속성을 가지고 있습니다. 이름이 같지 않을 수도 있습니다. 저자 statusI 의미 새로운 할당 고정 폐쇄 등 ,에 의해 solutionI 의미 열기 (신규), 고정 재현되지 풀리지, 중복되지 버그


3
이것은 버그 트래커에 따라 다소 다릅니다. 상태솔루션에 다른 값을 지정할 수 있습니까?
scarfridge

일부 버그 추적기에는 해결 상태가 있고 다른 상태는 종료입니다. 품질 보증 담당자 만 상태를 폐쇄로 설정할 수 있지만 개발자는 상태를 해결로 설정할 수 있습니다.
Brian

답변:


8

테스터에게 "고정되었지만 확실하게 더주의를 기울여야한다"고 표시하기 위해 상태를 고정으로 설정하고 솔루션을 열도록 설정하는 것이 일반적입니까?

일반적으로, 그렇지 않더라도, 이것은 어쨌든 옳은 일이며, 당신은 왜 자신을 이유를 설명했습니다.

테스터들에게 "고정 되었으나 확인을 위해 더 많은주의가 필요하다"


특정 버그 추적기에 사용자가 설명하는 것과 같은 필드가없는 경우에도 solution개발자는 적어도 위에서 설명한 자유 형식 주석을 추가 할 수 있습니다.

버그 추적기가 문제에 주석을 추가 할 수없는 경우에는 버그 추적기로 대체해야합니다. 사전 정의 양식에 맞추기에는 문제가 너무 다양하기 때문에 자유 양식 설명을 추가하는 기능이 매우 중요합니다.


6

테스트 팀은 문제가 해결되었는지 여부와 문제를 해결할 수 있는지 여부를 결정합니다. 더 이상 회귀, 수정의 부작용 또는 수정 자체가 다른 시나리오에서 효과적이지 않으면 문제가 다시 열립니다. 그러나 충분한 개발자 테스트를 수행 한 경우 고정 된 것으로 표시하는 것이 좋습니다.


+1-가장 간단한 답변입니다. 가장 열심히 노력하고 테스트 팀 테스트 스위트가 충분히 강력하다면 무엇을 더 할 수 있습니까?
ozz

3

재현하기 매우 어려운 버그 유형이 있으며 매우 드물고 무작위로 발생합니다. 가능한 원인을 찾고, 수정하고, 프로그램을 테스트하고, 버그를 재현 할 수없는 경우가 발생할 수 있습니다.

실제로 재현 가능한 테스트 시나리오가 없다면 그러한 버그를 미리 수정하지 않을 것입니다. 테스터가 더주의를 기울여야한다면 재현 가능한 시나리오를 만들 수있는 기회를 제공하십시오.

예를 들어 프로그램을 변경하고 테스터가 버그를 재현하는 데 1 시간을 투자했는데 버그가 나타나지 않는다고 가정 해 보겠습니다. 아니면 버그가 이미 수정되었으므로 테스트 시간이 더 낭비됩니까?

반면에 프로그램을 변경하지 않고 버그가 1 시간 내에 나타나지 않으면 대부분 테스터가 다른 일을 시도하는 데 다른 시간을 투자해야합니다. 그리고 테스터가 언젠가 투자하고 더 이상 버그를 재현 할 수 없을 때-그때 고치려고 노력할 가치가 있습니까?

버그 추적 시스템에서 프로세스를 모델링하는 방법에 대해 생각할 수있다.이를 수정하지 않고 테스터에게 넘겨주는 것은 "open"과 같은 버그 상태 일 수있다. 테스터가 그것을 재현 할 수 없다면 분명히 "복제 할 수 없습니다". 바라건대, 이것은 일어나지 않으며, 재현 가능한 시나리오를 찾고, 버그의 근본 원인을 찾아서 수정하고 상태를 "수정 됨"으로 설정할 수 있습니다. "고정되었는지 모르겠다"와 같은 것을 피하십시오.


4
특정 버그 유형의 경우 재현 가능한 테스트 시나리오가 존재하지 않습니다. 예를 들어, 타이밍 관련 버그는 평균적 으로 백만 번에 1 회 발생할 수 있지만 3 번째 또는 532454 번째 실행 여부를 예측하는 것은 불가능합니다. 그럼에도 불구하고 그러한 버그는 버그이며 수정해야합니다.
Joonas Pulakka

3
@Joonas Pulakka : 동의합니다. 이러한 버그는 외부 환경에 따라 달라질 수 있습니다. 내장 된 경우 제어 할 수없는 무언가로 인한 전력 서지에 의존 할 수 있습니다. 그것을 고치려고하지 않는 것이 항상 최선의 해결책은 아닙니다. 특히 버그의 원인 일 수 있다고 생각되는 코드 냄새가 나는 경우 특히 그렇습니다. 이 경우 왜 수정하지 않아야합니까?
vsz

2
@JoonasPulakka : 재현 가능한 시나리오에 대한 나의 경험에 따르면, 사람들이 "불가능하다"고 말하는 대부분의 경우, 그들은 일을 가능하게하는 올바른 아이디어를 놓치고 있습니다. 귀하의 예에서, "천만 회"루프를 사용하여 시나리오를 설정하여 최소한 적당한 시간 내에 버그를 표시 할 가능성이 높습니다.
Doc Brown

2
@vsz : 물론 고쳐야하지만, 내가 제안하는 것은 먼저 테스트를 작성하거나 테스터에게 테스트 할 힌트를 제공해야하며 그 반대의 경우도 아닙니다.
Doc Brown

2
@DocBrown이 옳다고 생각하는 또 다른 방법은 때때로 버그가 "재생"하기위한 통계적 접근이 필요하다는 것입니다. 버그를 재생산하는 매우 특정한 입력 / 환경이있을 수 있지만,이 입력이 무엇인지, 입력이 너무 커서 반복 할 수 없을 수도 있습니다. 이러한 경우 한 가지 접근 방식은 버그를 해결하려고 할 때마다 버그 발생에 대한 통계를 수집하는 것입니다. 시간이 오래 걸리고 결과적으로 통계적으로 100 % "신뢰도"를 제공하지는 않지만 때로는 모든 것이 있습니다.
Angelo

0

때때로 당신이 가지고있는 유일한 증거는 순전히 통계적인 것입니다. 수정 사항이 확실성에 영향을 미치는지 여부를 알 수 없기 때문에 이러한 문제는 진단 및 해결해야 할 최악의 버그 유형입니다. 마지막으로 해결해야 할 것은 통계적인 수정으로 끝났습니다. 증상의 빈도는 우리가 시작한 10 %로 떨어졌습니다. 마지막 작품은 발견되지 않았거나 아마도 발견되었지만 아무도 말할 방법이 없었습니다.

내가 가지고있는 두 가지 조언은 (1) 달리 알 때까지 여러 원인이 적용될 수 있다고 가정하고 (2) 증상이 어떻게 존재할 수 있는지 가설을 세운 다음 원격으로 관련된 모든 논리를 찢어 버립니다. 깊은 연습은 때로는 만족스러운 목적을위한 유일한 수단입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.