테스트에서 문제 해결의 기본 방법

소프트웨어 테스트에서 문제 해결(즉, 디버깅)은 성공적인 테스트와 밀접한 관련이 있습니다. 성공적인 테스트의 신호는 버그가 발견되었다는 것입니다. 오류 징후를 기반으로 오류의 원인과 정확한 위치를 파악하고 수정하는 것은 주로 문제 해결 기술에 달려 있습니다.

1. 문제 해결 프로세스

트러블슈팅 프로세스는 테스트 케이스의 실행으로 시작되며 테스트 결과가 예상 결과와 다른 경우 오류 증상이 있음을 의미합니다.트러블슈팅 프로세스는 먼저 오류의 원인을 찾아 수정해야 합니다. 오류. 따라서 문제 해결 프로세스에는 두 가지 가능성이 있습니다. 하나는 오류의 원인을 찾아 오류를 수정하는 것입니다. 다른 하나는 오류의 원인을 알 수 없습니다. 추측이 실패하면 오류가 발생할 때까지 두 번째 추측이 이루어집니다. 발견되어 수정됩니다.

문제 해결은 개발자의 심리적 장애물뿐만 아니라 프로그램에 숨겨진 오류가 다음과 같은 특수 속성을 가지고 있기 때문에 다소 힘든 프로세스입니다.

  (1) 오류의 외부 증상은 오류의 내부 원인과 멀리 떨어져 있으며, 이는 고도로 결합된 프로그램 구조에서 더 심각합니다.

  (2) 하나의 오류를 수정하면 다른 오류 현상이 (일시적으로) 사라집니다.

  (3) 일부 오류 증상은 환상에 불과합니다.

  (4) 작업자의 순간적인 부주의로 인한 일부 오류 증상을 추적하기가 쉽지 않습니다.

  (5) 오류는 프로그램이 아니라 바람 시간 때문이었습니다.

  (6) 입력 조건을 정확하게 재구성하기 어렵습니다(예: 일부 실시간 응용 프로그램의 입력 순서가 불확실함).

  (7) 때때로 오류 증상이 사라지는데, 이 현상은 임베디드 시스템에서 특히 일반적입니다.

  (8) 여러 다른 프로세서에서 실행되도록 작업을 분산하면 오류가 발생합니다.

소프트웨어 문제 해결 과정에서 크고 작은 모든 종류의 문제에 직면할 수 있습니다.문제의 수가 증가함에 따라 문제 해결 담당자의 압력도 증가합니다.과도한 긴장은 개발자가 하나의 문제를 해결하는 동안 더 많은 문제를 도입하게 만듭니다.많이 새로운 질문의.

문제 해결은 쉬운 기술이 아니지만(때때로 사람들은 그것을 예술이라고 부르는 것을 선호함) 몇 가지 효과적인 방법과 전략이 있습니다.다음은 몇 가지 문제 해결 방법입니다.

2. 문제 해결 방법

어떤 트러블슈팅 방법을 사용하든 목표는 하나, 즉 오류의 원인을 찾아 제거하는 것이므로 트러블슈팅 담당자는 직관적인 상상력과 시스템 평가를 잘 결합할 수 있어야 합니다.

일반적으로 사용되는 문제 해결 전략은 세 가지 범주로 나뉩니다.

  ① 원시 클래스(무차별 대입)

  ② 백트래킹 클래스(backtracking)

  ③ 제외(원인제거)

원래 클래스 문제 해결 방법은 가장 일반적으로 사용되며 가장 비효율적인 방법입니다 절박한 상황에서만 사용됩니다 주요 아이디어는 "컴퓨터를 통해 오류 찾기"입니다. 예를 들어, 메모리와 레지스터의 내용을 출력하고, 프로그램에 여러 개의 출력문을 배열하는 등, 결국에는 성공할 수 있지만 오류의 단서를 찾기 위해 많은 양의 현장 정보에 의존하고, 필연적으로 많은 시간과 에너지가 소요될 것입니다.

역추적은 프로그램을 디버깅하는 데 성공적으로 사용될 수 있습니다. 방법은 오류 증상부터 제어 흐름을 따라 오류의 원인을 찾을 때까지 수동으로 역추적하는 것이지만 안타깝게도 프로그램이 커지면 가능한 역추적 경로가 크게 늘어나 수동 역추적은 불가능하다.

소거방법은 귀납법과 연역법을 기본으로 하여 "분할정복"의 개념을 채택한다. 또는 반박하거나 가능한 모든 이유를 한 번에 나열하고 테스트를 통과하여 하나씩 제외하십시오. 어떤 테스트 결과가 어떤 가설이 나왔다는 것을 보여주는 한, 데이터는 즉시 다듬어지고 승리를 추구할 것입니다.

위의 각 방법은 문제 해결 도구로 보완할 수 있습니다. 현재 디버깅 컴파일러, 동적 디버거("추적자"), 자동 테스트 사례 생성기, 메모리 맵 및 교차 액세스 그래프와 같은 일련의 도구가 널리 사용되었습니다. 그러나 완전한 디자인 문서와 명확한 소스 코드를 면밀히 검토하고 조사한 후에는 어떤 도구도 개발자의 역할을 대체할 수 없습니다. 또한 문제 해결 과정에서 가장 귀중한 자원 중 하나인 개발팀의 다른 구성원의 평가와 조언을 무시해서는 안 됩니다. ."

이전에 여러 번 언급했듯이 오래된 문제를 수정하면 몇 가지 새로운 문제가 발생할 수 있으며 때로는 프로그램이 변경됨에 따라 프로그램이 더 혼란스러워지지만 각 오류 수정 전에 세 가지 질문을 스스로에게 할 수 있다면 상황이 크게 개선될 것입니다.

  ① 이 오류의 원인이 프로그램의 다른 부분에 있을 수 있습니까?

  ② 이 수정이 프로그램의 관련 논리 및 데이터에 어떤 영향을 미칠 수 있습니까? 어떤 문제가 발생합니까?

  ③ 지난 번에 발생한 비슷한 문제를 어떻게 해결할 것인가?

마지막으로:  아래의 전체 소프트웨어 테스트 비디오 학습 자습서가 정리 및 업로드되었으며 친구가 필요하면 무료로 얻을 수 있습니다.【保证100%免费】

여기에 이미지 설명 삽입

 이 자료는 [소프트웨어 테스팅] 친구를 위한 가장 포괄적이고 완전한 준비 창고여야 합니다.이 창고는 또한 수만 명의 테스트 엔지니어와 함께 가장 어려운 여정을 통과했습니다.당신에게도 도움이 되기를 바랍니다!

软件测试技术交流群社:786229024(里面还有工作内推机会,毕竟我们是关系社会。)

소프트웨어 테스트 인터뷰 문서

우리는 고임금 직업을 찾기 위해 공부해야합니다.다음 인터뷰 질문은 Ali, Tencent 및 Byte와 같은 1 급 인터넷 회사의 최신 인터뷰 자료이며 일부 Byte 보스는 권위있는 답변을 제공했습니다.이 세트 완료 인터뷰 자료 모두가 만족스러운 직업을 찾을 수 있다고 믿습니다.

인터뷰 문서를 얻는 방법:

추천

출처blog.csdn.net/wx17343624830/article/details/130105250