'IT-Talk'에 해당되는 글 2건

GDB 란?

- 어셈블리 언어로 프로그램이 실행되면서 Address를 따라가는 진행하는 상태를 볼 수 있는 것

- i r esp... break main으로 해당 내용을 볼 수 있도록 함, 16, 10, 8 진수로 해당 내용을 봄

- 자주 사용하다 보면 eip를 많이 보는데, EIP 레지스터란 프로그램이 실행되는 동안 메모리 주소에 있는 현재 명령을 가리키는 "포인터" 라고 생각하는 개념


사용법: gdb -q "실행할 파일 경로"


  • list : 실행 code를 보여줌
  • Run: 프로그램을 실행함
  • Break Point(지점 설정):  실행하는 Code의 지정하여 순서에 Break를 걸어 설정함

int main() {

char A(40);


strcpy(A, "tistory good!\n");

printf(A);


}

- break strcpy 로 해당 함수의 코드를 Break 걸수 있음

- break 6 이면 6번이 중지점이 됨


  1. 중지점으로 EIP의 메모리의 Address를 주목하여 봄
  2. i r eip로 해당 Address 를 보는 연습해보기

  • bt :스택을 되돌아보는데 사용하는 명령어


블로그 이미지

티스토리 가입자

보여주기 위한 블로그가 아닌 나를 위한 블로그... 그것이 당신에게 도움이 된다면... 공유가 되겠지요.... 그게 내 블로그의 모티브...

,
  •  테스팅은 결함이 존재함을 밝히는 활동

- 결함이 없다는 것을 증명하는 것이 아니라, 잠재적인 결함에 대한 갯수를 줄이는 것


  • Exhaustive Testing(무결점 테스팅)은 불가능

- 모든 경우의 수를 가지고 테스트를 진행하는 것은 불가능, 완벽한 테스팅이 없듯이...

- 모든 조합을 주어진 기간에 하기 힘들기 때문... 60년 동안 테스팅만 한다면 가능 할지도;;;


  • 테스팅을 개발 초기 부터 시작

- 개발 초기라도 목표 잡은 테스팅 목표에 맞게 해야 함

- 요구사항 분석서와 개발 문서를 바탕으로 Test Case를 작성하는 과정에서 결함을 발견하는 것(Review)

*인시던트: 결함이 발견하면 그 결함이 Assgin되어 Closed 될 때까지의 일련의 과정을 확인하는 것


  • Defact Clustering(결함 집중)

- 결함은 특정 Module에 집중되는 경향이 있음

  1. 복잡한 구조를 가지고 있는 모듈
  2. 모듈간에 복잡한 관계를 가지고있는 구조(Tree sticks Interface)
  3. 높은 개발 레벨 or 최신 버전의 모듈
  4. re-use하지 않고 새롭게 개발 된 모듈
  5. 상대적으로 Sizing이 큰 모듈
  6. 미숙한 개발자가 개발한 모듈


  • Pesticide paradox(살충제 파라독스)

- 동일한 TestCase로 반복적으로 테스트를 진행한다면, 새로운 결함을 찾지 못하는 오류를 말함

- 정기적으로 Test Case는 Update를 해야 한다는 의미


  • Software Systems Context

- Context에 따라 테스트의 방법과 방식이 달라져야 한다.

- 다른 도메인의 테스트라도 변하지 않은 것이 있음

  1. 테스트 주요활동에 대한 테스트 프로젝트 계획
  2. 공식적인 테스트 기법 사용
  3. 독립적인 테스트 환경
  4. 효율적이고 효과적인 팀 관리
  5. 공식적인 테스트 보고서


  • Absence-of-errors fallacy(오류 부재의 원인)

- 사용자와 기획 의도에 맞는 제품이 아니라면 품질이 좋다고 볼 수 없다는 의미






블로그 이미지

티스토리 가입자

보여주기 위한 블로그가 아닌 나를 위한 블로그... 그것이 당신에게 도움이 된다면... 공유가 되겠지요.... 그게 내 블로그의 모티브...

,