기본 콘텐츠로 건너뛰기

성능 테스팅에서의 테스트 오라클

테스터 관련 직군 중 가장 고액의 연봉을 보장하는 직군 중 하나가 성능 테스팅입니다.

일반적으로 업계에서 성능 테스터라 하면 폭넓은 도메인 지식과 개발 지식, 프로그래밍 능력을 겸비한 로드런너의 스크립트를 아주 능수능란하게 작성할 수 있는 사람을 말합니다.

이런 사람은 솔직히 매우 드물며, 덕분에 고액의 연봉을 받는 직군 중 하나입니다.

성능 테스트는 모든 종류의 소프트웨어에서 가능합니다.

저는 이 성능 테스트를 크게 2가지로 구분해서 제시해 보겠습니다.

하나는 서버와 관련된 성능 테스팅이고 다른 하다는 스탠드 얼론형 제품의 성능 테스팅입니다.

로드런너와 연관된 많은 경우의 성능 테스팅은 서버와 연관된 성능 테스팅이고 이 성능 테스팅의 경우 인터넷이나 주변에서 아주 쉽게 테스트 오라클이나 테스트 방법에 대한 정보를 쉽게 구하고 접할 수 있습니다.

반면 스탠드 얼론형 제품은 최근에 있어서 점점 더 어려워지는 경향이 있습니다.

어떤 사람들은 스탠드 얼론형 제품(이하 설치형 제품)의 성능 테스팅이 왜 어려운가?에 대해 의아해 하는 분들도 있을 것입니다.

아래 제 의견을 보시고 다른 의견이 있으신 분은 먼댓글(트랙백)이나 댓글을 달아주시면 고맙겠습니다.

기존의 설치형 제품의 성능 테스팅은 대체로 메모리와 CPU의 점유율이 테스트 오라클의 주된 척도였습니다.

그다지 먼 과거도 아닌 불과 10년 전만 해도 컴퓨팅의 자원은 열악하기 이를 데 없었습니다.

조금 더 멀리 15년 전  DOS 시절을 기억하시는 분이 있다면 상위 메모리, 하이 메모리와 같은 용어들을 기억하실 겁니다.

그 당시에는 멀티 태스킹은 꿈과 같은 것이었습니다. 물론 가능하기도 했지만 멀티 태스킹은 컴퓨터가 느려지는 주범이었죠.

윈도우와 관련된 많은 팁들이 이러한 메모리 자원을 어떻게 하면 조금이라도 더 쥐어 짤 수 있는지에 초점이 맞춰져 있었습니다.

게임은 이러한 제약이 더욱 심한 분야 중 하나였습니다.

그런데 세월이 많이 흘렀습니다.

이제는 CPU에 적어도 2개 많게는 8개까지 코어가 들어가는 세상이 되었습니다.

메모리는 아무리 적어도 1기가에서 많게는 4기가까지 들어갑니다.

시간이 지날 수록 컴퓨팅의 자원에 대한 이슈는 점점 희석화되어 가고 있습니다.

즉, 기존의 CPU나 메모리의 점유율을 기준으로 하는 테스트 오라클의 의미가 점점 퇴색되어 가고 있다는 점입니다.

운영체제도 발전에 발전을 거듭하여 최근에는 메모리의 점유나 회수에 대한 이슈가 예전에 비해 그렇게 크지 않습니다.

이러한 상황에서 설치형 제품에 있어서 테스트 오라클은 무엇이 될 수 있을까요?

아래에 나열하는 몇가지 경우는 제가 겪어본 이슈들일 뿐, 절대적인 기준은 절대 아닙니다. 혹시라도 더 좋은 예제와 기준이 있다면 저에게 꼭 알려주시면 고맙겠습니다.

그리고 저는 개발자가 아닌 정말 단순한 테스터의 입장에서 바라본 성능 기준이므로 개발자의 입장에서는 분명 더 많은 기준과 고려해야할 사항이 있을 것이라고 믿습니다.

첫번째는 멀티 코어 CPU입니다.

CPU에 멀티 코어가 장착되면서 발생하는 성능 이슈 중 가장 재미있는 현상은 제품이 모든 CPU를 동일하게 점유하는 현상입니다.

즉 멀티 태스킹이 정상적으로 이루어지지 않는 경우가 의외로 많습니다.

두번째는 종속성에 따른 메모리 점유입니다.

일반적으로 성능 테스팅을 할 때 메모리를 테스트 대상 홀로 쓰는 경우는 절대 없습니다.

우선 기본적으로 운영체제의 서비스들이 일정 부분의 메모리를 사용합니다. 문제는 운영체제의 설정에 따라 이러한 부분이 천차만별이라는 것입니다.

거기에 백신과 멀웨어 소프트웨어, 메신저 등을 비롯해 사용자가 기본적으로 사용하는 무수한 제품들이 있습니다.

이러한 제품은 수천 아니 수만가지가 넘고 이 중 어느 제품과 메모리 충돌이 나는 경우가 없다고 절대 장담할 수 없다는 것입니다. 최근에는 이러한 메모리 충돌의 경우가 매우 적긴 하지만 그렇다고 절대 발생하지 않는다고도 말할 수 없기 때문에 테스팅은 해야하는데 이러한 기준을 잡기가 점점 더 힘들어지고 있습니다.

세번째는 사용성과 관련된 이슈입니다.

실제로 사용성은 성능 테스팅과 일견 관계가 거의 없어 보입니다.

하지만 사용자가 인식하는 성능은 사용성과 매우 밀접하게 연관이 되어 있습니다.

예를 들어 데스크탑의 사진을 검색하는 사진 관리 프로그램이나 음악 검색 프로그램과 같은 경우 기존의 파일을 검색해서 DB를 만드는 방식 또는 사용자의 요청이 있을 때마다 즉석에서 검색하는 방식, 주기적으로 DB를 갱신하는 방식 등 그 알고리즘의 종류만큼 각 작업시마다 점유하는 CPU나 메모리도 천차만별이지만 실제로 사용자는 이러한 제품이 얼마만큼의 CPU나 메모리를 점유하는지에 대해 그렇게 큰 관심이 없습니다.

가장 중요한 것은 요청에 대한 즉각적인 응답속도일 것입니다.

하지만 ISO/IEC 9126 등과 같은 품질 특성에서도 성능 테스팅 즉 효율성의 측정 항목들은 실제로 자원에 대한 효율성을 측정하는 항목은 있지만 이러한 사용자 측면의 성능 테스팅에 대한 이슈는 없습니다.

성능 테스팅은 쉬운 테스팅은 아닙니다.

그리고 모든 테스트가 그러하듯 성능 테스팅 역시 테스트 오라클을 선정하는 것 역시 매우 어렵습니다.

하지만 중요한 것은 환경이 변하면 성능 테스팅 역시 변해야 한다는 것입니다.

그리고 그 변화에는 고객에 대한 존중과 생각이 들어가 있어야 한다고 생각합니다.

고객에게 최대의 가치를 주기 위한 테스팅이 가장 좋은 테스팅이라고 생각합니다.

댓글

  1. 이런저런 좋은 글들을 올려주시어, 시간될때 읽어볼까 합니다.

    먼저 감사합니다.



    저 역시 9년간 테스팅이나 컨설팅을 가지고 먹고 살았던 지라

    몇가지 궁금사항이나 의견이 있어서 댓글 남겨요



    그 전에, 요즘 커뮤니키 공간의 추세는 트위터, 블러그 등등이네요

    전 한참을 떨어지는 루저인가 봅니다.

    이런 공간이 아직은 너무 낯섷네요



    일단은 테스트 오라클과 테스트 오라클의 주된 척도가 대체로 메모리와 CPU 점유율이라고 하셨는데.

    아무래도 성능이란 전문 용어를 쓰신다면.. 조금 더 생각해보심이 좋지 않을까 싶네요



    성능보다는 가용성에 대한 테스트 오라클이 될 수 있을 것 같네요

    (물론, 사용성/효율성에서의 Sub-Metric으로도 이용되고 있습니다.)



    물론 각각의 ISO/IEC9126의 품질특성 및 속성 그리고 메트릭스간의 관계를 복잡하면 따지자면, 더욱 더 어려운 일이겠지만요.



    성능에 대한 올바른 정의는 당연히 테스팅 컨설팅을 수행하시니

    ISO/IEC 9126 또는 IEEE Glossary를 참조해 보시면 좋을듯 싶습니다.

    (정확하게 안나와 있을겁니다. 즉 성능을 ISO/IEC9126과 맵핑시키는것 자체가 좀 이상한 일이죠.)



    ISO/IEC 9126의 품질특성에 성능이 있었나요 ? 없기때문에 성능=효율성이라고 생각해야 할까요?



    전, 성능 테스트 오라클(?)은 본 글에 언급한 Factor가 아니라 생각하거든요



    참고로, ISO/IEC 9126의 Usability(사용성) 부분을 잘 읽어보시면 CPU나 메모리에 대한 내용이 언급되어 있을겁니다^^;





    일반적으로 Field에서는 기능/성능/신뢰성으로 품질특성을 구분합니다.

    단지, ISO/IEC9126에서는 표준과 이론적으로 접근하여 품질특성을 6가지로 구분하였을뿐

    그 관계가 1:1, 또는 1:n으로 맵핑되지 않죠. n:n맵핑이라고 생각하시면 좋을것 같네요



    대부분의 내용을 성능=효율성이라고 확정지으시고 적으신 글이라.. 제가 이렇게 반응했을수도 있겠네요

    답글삭제
  2. 김주봉6/7/10 16:56

    좋은 글, 댓글 감사합니다~

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

프로젝트의 3요소 - Project Management

프로젝트는 예산, 일정, 품질 3가지 요소로 이루어진다고 볼 수 있다. 물론 위 3가지 요소 외에도 개발 범위, 팀워크, 자원 조달 등 여러가지 요소들도 고려해 볼 수 있지만, 가장 중요한 요소를 꼽는다면 예산, 일정, 품질일 것이다. 위에서 말한 여러가지 요소들은 프로젝트를 계획하여 완료하는 순간까지 복합적으로 작용해서 프로젝트의 성과를 제한하게 된다. 위의 요소들을 잘 통제한다면 성공적인 프로젝트가 되는 것이고 그렇지 못한다면 실패하거나 사라지게 될 것이다. 프로젝트 관리란 그런 면에서 제한된 자원을 가지고 목적한 바를 제한된 기간내에 최소의 비용으로 완수할 수 있도록 하는 것으로 정의할 수 있을 것이다. 이것을 도식화 한다면 아래와 같은 그림으로 표현할 수 있을 것이다. 위의 그림에 보는 것처럼 일정과 품질, 예산은 우리의 프로젝트가 목적하는 바를 달성하도록 하기 위해 상호 연관되어 작용하게 된다. 우리가 접하게 되는 많은 방법론들의 가정에는 위의 요소들을 어떻게 관리할 것인가에 대한 기본적인 가정들이 설정되어 있다. 조직에서 어떤 특정한 방법론을 도입한다는 것은 그런 가정에 동의하는 것이고 그러한 철학을 받아들인다는 것이기 때문에, 방법론을 채택하기 전에 조직의 근본 문제와 문화에 대해 점검해 볼 필요가 있다. 그리고 위의 요소들 외에 고려해 볼 사항은 위의 요소들은 변동성과 불확실성을 내포하고 있다는 것이다. 특히 비용과 예산, 목적은 프로젝트를 진행하면서 가변할 가능성이 매우 큰 요소들이다. 대부분의 방법론은 이러한 변동성에 대한 안전장치들을 가정해서 세워져 있다. 변동성의 측면에서 위의 요소들을 다시 살펴본다면 아래와 같이 가정할 수 있다. 위의 그림을 일부 해석해 본다면 일정이 늘어난다면 비용은 늘어나게 된다. 범위가 변경되어도 비용은 늘어나게 된다. 범위와 일정은 상호 의존적이 된다. 만약 위 3가지 요소의 변동성을 통제하지 못하게 된다면 프로젝트는...

일본 출장 갔다 온 후기

어쩌다 보니.. 우연치 않게.. 일본으로 2박 3일 짧은 출장을 다녀왔습니다. 태어나 처음으로 일본을 가보게 되었고.. 한 6년만에 나가본 외국이라서.. 난리도 아니었습니다. 출장 일정을 착각해서 1박 2일로 잡았던 항공편 일정 변경하고 숙박업소 찾느라.. 에휴.. 어쨌든 오랜만에 나가본 외국이고 처음 가본 일본이라 다녀오고 알게 된 몇가지 사실은 이미 인터넷을 찾아보면 쉽게 찾을 수 있지만 그래도 기록으로 남겨보고자 합니다. 1. 여행용 멀티 어뎁터를 더 이상 공항 로밍 센터(김포 공항 기준)에서 무료로 대여를 안해주더라구요. 로밍 요금을 가입해야 빌려준다는데.. 쩝.... 가장 가까운 다이소도 롯데몰까지 걸어가기에는 멀고.. 공항 편의점에서 파는데 정말 더럽게 비싸더라구요. 그러니 미리미리 다이소에서 구매하시거나 인터넷에서 싼걸로 장만하시는게 좋습니다. 일본에서도 편의점이나 100엔샵 뒤져보았지만 안팔더라구요. 돈키호테에서는 판다고 하는데.. 거기까지 가기에는 출장 일정 상 이동하기 쉽지 않아서.. 정말 무겁게 노트북 들고가서 켜보지도 못했습니다. 물론 웬만한 모텔급 이상 숙박업소에서는 프론트에 얘기하면 무료로 빌려주기는 하는데.. 낮에는 플러그가 없으니 충전이.. ㅠㅠ 그래서 만약에 한국에서 준비를 못해간걸 일본에서 깨달았다면.. 어떻게 하느냐... 이미 공항을 떠나셨다면 주변에서 BIC 이라는 전자 제품 파는 곳에서 구매하시면 되고..  하네다 공항 3번 터미널 출국장 위쪽 4F에 가시면 BIC 가게가 있고 거기서 구매하실 수 있습니다. 한 300엔 했던 걸로 기억합니다.  2. 애플 페이로 교통카드를 하시려면 현재로는 현대카드 마스터 카드가 있어야 합니다. 비자 카드로 충전이 안되어서 애플 페이로 교통카드를 만들 수 없습니다. 일본에서 지하철을 애플 페이로 타보고자 했던 저의 꿈은 파사삭... 스이카 앱으로는 비자 카드로 충전이 된다고 하는데.. 귀찮습니다. ㅠㅠ 한국에서 스이카 웰컴 카드를 구매해 가시는 것도 방법인데.. 이 카드는 ...

테슬라 구매 과정 후기

올해 제 인생 최대 지름이 될.. 테슬라 구매를 했습니다. 스파크만 13년을 몰았는데... 내자분이 애들도 컸고.. 이젠 스파크가 좁고 덥고 힘들다면서... 4월 6일 하남 테슬라 전시장에서 새로 나온 업그레이드 된 모델 3를 보고 4월 7일 덜컥 계약을 해버리게 되었습니다. 이후에 4월 11일에 보조금 설문 조사 문자를 받았습니다. 그리고 다시 기다림의 시간이.. 사실, 처음에 하얀색을 계약을 했다가 하얀색은 관리하기가 너무 힘들거 같아 4월 20일에 블루로 변경을 했었는데.. 다른 사람들은 하나 둘 차량을 인도 받는데.. 아무리 기다려도 인도 일정이 배정이 되지 않아서... 혹시나 하고 4월 25일 하얀색으로 변경하자마자 VIN이 배정되고 4월 29일 인도 일정 셀프 예약 문자가 왔습니다. 파란색이 정말 인기가 없었나 봅니다. (그런데, 소문에 듣자하니.. 파란색은 5월 첫주부터 인도 일정 셀프 예약 문자가 왔었다고 합니다.. 크흑.. ㅠㅠ) 덕분에 기다리고 기다리긴 했지만 아무 준비도 없던 와중에 이제부터 정말 실제 차량을 인도받기 위한 질주가 시작되었습니다. 4월 30일 셀프 인도 예약 완료 문자가 왔고 5월 2일 오전 10시 5분에 전기자동차 구매지원 자격 부여 문자가 오고 오후 3시 5분에 전기차 보조금 지원 대상자 확정 문자를 받았습니다. 사실 기다림의 시간이 제일 힘든건.. 보조금을 못받으면 어떻게 하지?라는 초조함이었습니다. 얼마 안되는 보조금이라고 하더라도 한푼이 아쉬운 입장에서는 정말 필요한 돈이었는데.. 다행히 큰 문제 없이 지원 대상자가 될 수 있었습니다. 그리고 5월 2일 오후 4시 12분에 차량 대금을 후다닥 결제를 진행했습니다. 유투브와 네이버 카페 등을 열심히 읽어두었지만 막상 진행해보니 다른 설명과는 좀 다르게 진행되어서 불안했었는데.. 큰 문제 없이 결제가 완려되었습니다. 이미 차량 인도는 5월 14일로 결정되었기 때문에 이제는 차량 등록에 대한 기다림이 시작되었습니다. 드디어 5월 8일 오후 2시 23분에 등록 대행 비용 및...