기본 콘텐츠로 건너뛰기

Featured Post

영어회화 빨리 느는 방법 3가지

소프트웨어 테스트 하는 방법과 이슈 관리에 대해 알아보자

How to find issues when software testing?



 버그(Bug)를 찾는 것과 이슈 관리는 소프트웨어 테스트에서 매우 중요한 부분이다. 테스터나 QA 엔지니어라면 업무를 진행하는 매 순간마다 소프트웨어에서 이슈를 어떻게 찾을지 생각해야 하고 반드시 찾아야만 한다. 테스터들은 시스템 충돌 같은 심각한 이슈를 발견한 것에 대해 보람을 느끼기도 한다. 그 부분도 중요하지만 우리는 가장 찾아 내기 어렵고 복잡한 이슈를 찾아 내려는 노력을 해야 한다. 일반적으로 시장에서 사용자에게 어려움을 주는 것은 그런 이슈들이다.




 한가지 경험을 예로 들면, 로그파일을 처리하거나 데이터베이스를 업데이트하기 위해 특정 시간과 상황에서 자동화 스크립트를 수행하는 툴이 있었는데, 전체 데이터가 동기화 되도록 로그 파일과 데이터베이스를 구동하는 역할을 했다. 두 개의 툴이 얼마의 시간 간격을 두고 하나의 테이블에서 구동이 되었지만, 몇몇 데이터의 불일치가 일어나면서 다른 툴에 의해 테이블에 중복된 칼럼이 생겼다. 방대한 데이터 베이스 프로세스들과 각각 다른 툴들 때문에 그 문제를 해결하기 위해 많은 시간을 소요해야 했다.

 이 경험을 이야기하는 요점은 어떤 특정한 조건이나 상황에서 발생하거나 시스템에 심각한 영향을 일으키는 숨겨진 버그를 찾기 위해 노력해야 한다는 것이다. 그리고 이렇게 발견된 버그들은 체계적인 이슈 관리 시스템에 의해 처리되어야 하고 지속적으로 모니터링해야 한다. 프로젝트의 승패가 좌우된다고 해도 과언이 아닐 정도로 중요한 부분임을 인지해야 한다.

 아래는 위에서 언급한 이슈 관리 경험들을 통해 배운 노하우이다.


1) 소프트웨어 테스트를 진행하기 전에 전체적인 애플리케이션 또는 모듈에 대한 상세히 이해해야 한다.

요구 사항, 사양 설명서 등 테스트 활동에 필요한 문서를 분석하고 개발자나 관련 이해관계자들과의 소통을 통해 정확하게 이해해야 한다.

2) 테스트 진행에 앞서 좋은 테스트 케이스를 준비한다.

프로젝트의 속성과 상황에 따라 다르지만 일반적으로 테스트케이스를 미리 작성한 후에 테스트를 진행하는데, 정확한 이해가 있어야 올바른 테스트 케이스가 생성될 수 있다. 이 의미는 요구에 맞는 기능에 대한 테스트와 리스크가 높은 부분에 집중할 수 있어야 한다.

3) 사전에 충분한 테스트 데이터를 만들어야 한다.

테스트 데이터를 테스트 케이스 조건에 적용하고 찾기 쉽게 그룹화하여 관리한다. 관련 DB(Data Base)도 진행할 예정이라면 DB의 정보와 기록 내역을 포함 시킨다.

4) 다양한 환경에서 반복 테스트를 수행한다.

테스트 환경 대상을 정할 때는 잠재적 사용자를 분석하고 파악하여 선별해야 한다. 테스트 중 발견된 이슈에 대해서는 다른 상황 또는 애플리케이션 조건에서 추가적으로 확인해야 한다. 동일한 이슈가 다른 환경 조건에서 재발생할 확률이 상당히 높기 때문이다.



5) 예외적인 테스트를 진행한다.

대부분의 조건에 대한 테스트 진행이 완료되었다면 정상적이지 않은 데이터나 환경을 적용한 예외 테스트(Native Testing)를 진행한다.

6) 이슈가 집중되어 있는 영역을 찾아 테스트한다.

코드의 복잡성, 기능의 복잡성, 명확하지 않은 요구 사항, 개발자 이해 부족 등의 원인으로 이슈는 특정 기능에 집중이 되는 경우가 많기 때문에 이슈가 발견된 기능이 있다면 관련 영역에 대해서는 더욱 집요하게 테스트를 진행한다.

7) 이전 테스트 결과를 활용하여 데이터를 분석한다.

기능이 수정되거나 발생되었던 이슈를 분석하는 이유는 이슈를 해결할 때 수정된 코드가 관련된 기능에 영향을 미쳐 추가 이슈가 발생하는 경우가 상당히 많기 때문이다. 이슈가 수정되었다면 관련 기능에 대해서 여러 가지 경로로 추가 테스트 진행이 필요하다. 예를 들어 텍스트 박스에 글자 입력이 안되는 이슈가 해결되었다면 추가적으로 특수문자 입력을 확인하는 등을 추가적인 검증을 한다.

8) 실제 테스트 결과와 유사 프로젝트를 비교하여 분석한다.

이전에 유사한 프로젝트의 테스트 결과나 이슈를 실제 테스트 결과와 비교하여 활용하면 더 좋은 효과를 기대할 수 있는데, 프로젝트 진척사항 및 재발생된 이슈 등 유용한 정보를 활용할 수 있다. 유사 프로젝트에서 이슈를 발견했던 테스트 케이스들을 시도해 본다.


 마지막 그리고 가장 좋은 방법은 버그를 찾기 위해 계속 끊임없이 생각하고 노력하는 것이다. 마치 "소프트웨어를 어떻게 하면 고장 나게 할까?"라고 연구하는 것처럼 소프트웨어 테스트를 진행해야 한다.

댓글

이 블로그의 인기 게시물

스티브 잡스 명언 영어 세상에서 가장 감명 깊은 어록 25가지

"Sometimes Life is going to hit you in the head with a brick. Don't lose faith." "때때로 인생은 당신을 심하게 내두를 것이다. 스스로의 믿음을 잃지 마라."   대부분의 사람들은 적당히 즐기고, 적당히 게으르고, 어렵고 힘든 것은 피하고 싶어 한다. 그들이 무지함과 가난에서 벗어나지 못한 것이 그 이유이다. 반대로 큰 성공을 이룬 후에도 스티브잡스는 "내일 죽는다면"이라는 생각으로 극단적 이리만큼 스스로를 동기부여했다. 무엇인가 이룰 수 있는 사람은 그럴만한 자세가 있다.   스티브 잡스가 남긴 어록 중에 사람들이 가장 감명받은 25가지를 선별해 한글로 번역했다. 스티브 잡스 명언 영어  1  "The people who are crazy enough to think they can change the world are the ones who do." 세상을 바꿀수 있다고 생각하는 제대로 정신나간 사람들이 세상을 변화시킨다.  2  "I've always been attracted to the more revolutionary changes. I don't know why. Because they're harder. They're much more stressful emotionally. And you usually go through a period where everybody tells you that you’ve completely failed." 나는 항상 혁신적인 변화를 쫓아왔다. 그건 더 어려웠기 때문인지 모른다. 혁신은 감정적으로 굉장히 압박이 심하다. 그리고 모든사람들이 당신에게 완벽히 실패했다고 이야기 하는 시기를 이겨내야 한다.  3  "It's really hard to design products b

영어숙어 100가지 필수 암기해야 하는 표현 모음

 영어 숙어(idiom)란 두 개 이상의 단어로 이루어져 사용되면서 한 단어처럼 해석되는 단어이다. 예로 'get in'은 두 개의 단어가 결합되어 '타다, 들어가다'라는 의미를 지니며 한단어처럼 사용한다. 관용구의 한 종류이며 많이 사용하여 익숙해져서 생긴 말들을 말한다.  원어민들의 영어를 접하다 보면 알아듣기 힘들거나 잘못 이해하는 경우가 많이 있는데 이런 경우는 대게 숙어와 같은 관용구가 들어간 문장을 접했을 때이다. 영어 공부를 할 때에는 단어만 외우는 것보다 문장이나 숙어를 암기하는 것이 중요하다.  이 글에서는 필수 암기해야하는 영어 숙어 100가지 를 모아서 정리했으며, 더 많은 영어 숙어는 아래 글에서 외우기 쉽게 정리했다. 영어숙어 100가지 전치사+명사 형태의 숙어로 명사나 문장 뒤에서 꾸며주는 역할을 한다. ex) I recommend that the work (should) be done at once . 나는 그 일을 즉시 처리하도록 권한다. at once - 즉시 at the end of the month - 월 말에 at a surprisingly fast pace - 놀랄만한 속도로 at first - 처음에 at least - 최소한, 적어도 at random - 임의로, 무작위로 at all times - 항상 in print - 발간되고 있는 beyond control - 통제 불능의 out of control - 통제 불능의 in effect - 유효한, 효력이 있는 in advance - 사전에, 미리 ahead of time - 사전에, 미리 in a row - 줄줄이, 연달아 with care - ~조심스럽게 with high unemployment rates - ~높은 실업 상황 하에서 with a few exceptions - ~을 제외하고 명사+전치사 형태의 숙어로 뒤에 명사나 동명사가 온다. ex) Staff were asked to

영어회화 빨리 느는 방법 3가지

영어는 공부가 아니고 운동 이다. 영어회화 빨리 늘고 싶다면 머리로만 하지 말고 귀와 입, 몸으로 해야 한다.  이전 회사에서 모토로라 출신의 팀장이 했던 말이 생각난다. "내가 영어 하려고 한 달에 몇십만 원씩 주면서 강남에 1:1 영어도 해보고, 전화 영어도 해보고, 미국 출장도 오래 있고, 별짓 다해봤는데 영어는 안되더라 . 영어는 미국에 살아야 돼."  지금도 누군가에게는 영어는 별짓 다해도 안 되는 것이겠지만, 누군가에게는 미국, 영국 등 외국인 친구들과 즐겁게 대화하는 언어이고 업무를 처리하기도 하는 수단일 것이다. 당신도 반드시 할 수 있다. 그러니 영어를 별짓 다해도 안되는 걸로 단정 짓지 말고, 우리의 뇌를 멈추게 하지 말자. 지금까지 받은 영어교육은 잘못됐다.  한국인이 일반적으로 영어 교육을 받는 기간은 약 15년이다. 하지만 정작 영어 몇 마디 조차 못하는 게 현실이다. 단면적으로 이 부분만 봐도 과연 실용적인 교육인지 의구심이 들 수밖에 없다. 지금까지도 수십 년 동안 많은 사람들이 여전히 명사, 동사, 5형식 문장 등과 같은 문법 위주의 공부와 독해 위주의 잘못된 공부 방식만 고수하고 있다. 그렇게 공부하다가 하루에 10분 전화영어를 하면 원어민처럼 영어를 할 수 있다는 말에 속아 피 같은 돈을 쓰다가 결국 중도에 포기하는 게 일반적인 사람들의 모습이다. 물론 이런 공부 방식이 전혀 쓸모없는 것은 아니다. 하지만 영어회화에서는 도움이 안 된다는 것이다. 외국인과 대화를 한다거나 미국 드라마를 본다면 철저하게 느낄 것이다. 영어에 투입하는 시간 대부분을 읽고, 듣는 식의 영어공부를 했는데, 입으로 내뱉으라고 하면 안되는 게 당연하다. 또한, 원어민들이 실제로 발음하는 대로 공부하지 않았는데 들리지 않는 것도 당연하다.  장담하건대, 지금까지 했던 영어공부 방법으로는 영어회화를 잘할 수 없다. 돈을 들이지 않아도 되고, 혼자서도 할 수 있는 원초적인 영어회화 빨리 느는 방법 을 알아보자. 영어는 공