기본 콘텐츠로 건너뛰기

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

영어 8품사의 문장 구조를 예제로 쉽게 이해하자

1. 영어 8품사 정리  영어 8품사(The 8 parts of speech)란 명사, 대명사, 동사, 형용사, 부사, 전치사, 접속사, 감탄사 를 말하며, 동일한 의미나 기능을 하는 낱말들을 8가지로 분류한 것이다. ① 명사(NOUN) - 사물의 이름으로 사람, 장소, 생물/무생물, 추상적 개념 등 생각해 낼 수 있는 모든 것의 이름이다. 영어에서 명사는 셀 수 있는 명사와 셀 수 없는 명사로 나뉘는데, 셀 수 있는 명사는 단수, 복수에 따라 낱말이 달라지는데, 대게 단어 뒤에 "(e)s"가 붙는다. - 셀 수 있는 명사 ex) book → books, pen → pens, dog → dogs, table → tables, party → parties, woman → women ... - 셀 수 없는 명사 ex) coffee, computer, love, water, family, money, information ... ② 대명사(PRONOUN) - 문장에서 명사 대신 사용한다. 대화나 글에서 사람, 사물 등을 '그녀', '저것'등으로 대신 쓰는 것을 대명사라고 한다. ex) I, you, he, she, it, that, none ... ③ 동사(VERB) - 사람, 사물의 동작이나 상태를 나타내는 품사로 문장에서 필수로 들어간다. 현재시제 3인칭 단수면 동사 뒤에 대게 '(e)s'가 붙는데, 3인칭 단수란 I, You, We를 제외한 다른 인물이나 사물이다. 복수가 아닌 단수를 말하고 현재시제는 미래나 과거가 아닌 현재를 말한다. 또한, 표현하려는 문장이 과거면 동사 뒤에 대게 (e)d가 붙는다. - 현재시제 ex) agree, stay, find, ask, eat, access ... - 3인칭 단수 ex) agrees, stays, finds, asks, eats, accesses ... - 과거시제 ex) agreed, stayed, foun

가산명사 불가산명사를 예제로 쉽게 이해하자

What are the singular and plural noun?  개수를 셀 수 있는 사물을 가산명사라고 하고, 개수를 셀 수 없는 사물을 불가산명사라고 한다. 영어에서는 셀 수 있고 없고에 따라 분류하며, 명사와 동사의 형태가 달라지고 상황에 따라서 한정사도 다르게 사용해야 한다. 한국인, 일본인 등을 포함한 한자문화권에서는 이 부분을 따지지 않는 데 영어는 이걸 굉장히 철저하게 따지며 셀 수 있나 없나에 따라 문법적인 요소가 굉장히 갈리기 때문에 영어를 배울 때 상당히 난항을 겪는 부분이다. TOEIC 등 영어 시험에서도 단골 파트 영역을 차지하고 있다. 예를 들어, 'water'는 셀 수 없지만 물병에 담겨 있는 'a bottle of water'는 셀 수 있는 가산명사이다. 하지만 실제 영어 회화에서는 Native Speaker가 편의상 '2 water'라고 쓰는 경우도 있다. 이를 틀렸다고 말할 수는 없지만 영어 학습지나 시험과 같은 공식적인 영어에서는 삼가야 한다. 아래 링크를 클릭하면 가산명사와 불가산명사에 대한 더 많은 단어를 다뤄서 참고하기 좋다. https://koonhous.tistory.com/entry/countable-and-uncountable-noun 1 가산명사(셀 수 있는 명사)  1개, 2개, 3개 이런 식으로 셀 수 있다는 걸 말하는데 한글이나 영어나 셀 수 있는 종류에는 많은 차이가 없기에 큰 문제가 되지는 않는다. 가산명사가 훨씬 더 많아서 불가산명사 빼고 다 가산명사라고 생각해도 무방하다. 영어권 원어민 강사들은 사고방식으로 이를 간단하게 구분하는 방법은 대상을 반으로 잘라보면 된다. 그다음 대상이 가진 기능이나 모양이 망가진다면 가산 명사이며, 그 기능이나 모양이 망가지지 않거나 나누기 애매한 것이라면 불가산 명사라고 보면 된다. 가산명사에만 단수·복수의 구분이 있고 단수일 때는 반드시 부정관사(a/an)와 같은 한정사(the, my, this)가 필요