1 of 49

드래곤으로 배우는 소프트웨어 테스팅

카리 카코넨

5.2.2021

Version 1.0

© Dragons Out Oy

1

31.8.2022

2 of 49

이 프레젠테이션은…

2

© Dragons Out Oy

3 of 49

드래곤으로부터 배우는 소프트웨어 테스팅 소개

  • 이 프레젠테이션은 IT 기술, 코딩 및 소프트웨어 테스팅에 대한 내용을 판타지 이야기의 세계와 비교하여 설명합니다.
  • 이 프레젠테이션은 학교에서 1-2회 분량으로 수업할 수 있도록 구성되어 있습니다.
  • 이 프레젠테이션은 Creative Commons 라이선스를 받았으며 비상업적 목적으로 자유롭게 사용할 수 있습니다.
  • 이 프레젠테이션은 수시로 업데이트 되며 아래에서 최신 버전을 이용할 수 있습니다:

https://www.dragonsout.com/p/presentation-for-teachers.html

  • 개선아이디어나 문의 사항이 있으시면 아래로 연락주세요:

feedback@dragonsout.com

  • 어린이들이 소프트웨어 테스팅에 친숙해 지도록 해 봅시다!

© Dragons Out Oy

3

31.8.2022

드래곤을 물리쳐라 - 카리 카코넨의 드래곤 이야기로 소프트웨어 테스팅 배우기 슬라이드는 Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License에 따라 사용이 허가되었습니다.

4 of 49

”드래곤을 물리쳐라!”를 소개합니다

  • 이 프리젠테이션은드래곤을 물리쳐라(Dragons Out)!”라는 제목의 책에 나오는 세계와 등장 인물을 기반으로 합니다.
  • 이 책은 학습에 도움이 되지만 교육 과정에서 이 프리젠테이션을 사용하는데 있어서 필수적이지는 않습니다.
  • 글쓴이 카리 카코넨(Kari Kakkonen)
  • 그린이 아드리엔 셀 Adrienn Széll
  • 옮긴이 권혜영(Hyeyoung Kwon)
  • 저작권자 Dragons Out Oy
  • 더 많은 정보 알아보기: www.dragonsout.com

© Dragons Out Oy

4

5 of 49

수업에서 수행하는 활동들

  • 그리기 활동
    • 종이와 연필을 준비해 주세요
    • 그림을 사진으로 찍어서 padlet 같은 사이트에 올릴 수도 있습니다. https://padlet.com
      • 교사는 아이들이 그린 그림을 공유하기 위해 padlet 사이트에 보드를 생성해야 합니다.
      • 수업 중 상호작용을 할 수 있는 즐거운 시간입니다.
    • 사진을 찍기 위해 모바일폰이 필요합니다.
  • 테스팅 활동
    • 휴대폰이나 태플릿, 그리고 테스트하고 싶은 앱을 준비하세요.
      • 친구와 짝을 이루어 하나의 휴대폰을 공유하여 활동하는 것도 가능합니다.
  • 각각의 활동은 5분 정도 소요되나 수업 상황에 맞게 원하는 시간 만큼 수행할 수도 있습니다.

© Dragons Out Oy

5

31.8.2022

6 of 49

드래곤 / 결함

6

© Dragons Out Oy

7 of 49

소프트웨어는 무엇일까요?

  • 판타지 세계가 성과 마을로 가득 차 있는 것처럼 게임, 온라인 스토어나 자율주행 자동차 등 어디에나 소프트웨어가 있습니다.
  • 소프트웨어는 다른 장치를 실행할 수도 있습니다.
  • 프로그램이라고도 부르는데 실제로 소프트웨어는 많은 프로그램으로 구성되어 있습니다.

© Dragons Out Oy

7

31.8.2022

소프트웨어 = 사람이 게임이나 다양한 일을 할 수 있도록 하는 컴퓨터 코드. 또는 소프트웨어 제품

8 of 49

결함은 무엇일까요?

  • 사람은 실수를 하기 때문에 모든 소프트웨어에는 결함이 있습니다.
  • 드래곤이 판타지 이야기에서 성과 그 마을 주민들을 괴롭히는 것처럼 결함은 소프트웨어 사용을 더 어렵게 만듭니다.
  • 이런 결함은 되도록이면 소프트웨어 사용자가 결함을 발견하기 전에 찾아 제거해야 합니다.
  • 결함은 버그라고도 부릅니다.

© Dragons Out Oy

8

31.8.2022

결함 = 소프트웨어 장애를 일으키는 소프트웨어 코드의 문제. 엄밀히 말하면 오류(error)는 코드에 결함을 일으키는 인간의 행위임에도 불구하고 사람들은 때때로 결함을 오류라고 부릅니다.

9 of 49

실습 5-15 분:

나만의 결함 설계하기 –�나만의 드래곤 그리기

// 준비물

종이와 연필

// 활동

1 여러분이 경험했던 결함을 떠올려 보세요.

  • 그 결함의 이름과 증상을 간략히 적어 보세요.

2 위의 결함을 여러분만의 드래곤으로 만들어 보세요.

  • 드래곤이 어떤 모습인지 몇 가지 특징을 적어 보세요
  • 아주 안좋은 결함이었다면 ‘이 드래곤은 덩치가 무지 크다처럼 적어 보세요.

3 드래곤을 그려보세요.

  • 제일 중요한 것은 이 드래곤이 여러분이 경험한 결함을 잘 나타내도록 하는 것입니다.
  • 너무 완벽하게 그리려고 할 필요는 없어요.

4 다른 친구들도 여러분과 같은 생각인지 그림을

보여주며 서로 이야기 해 보세요.

  • Padlet 같은 서비스를 이용해 보세요.

9

© Dragons Out Oy

10 of 49

테스팅은 무엇일까요?

소프트웨어 개발은 무엇일까요?

10

© Dragons Out Oy

11 of 49

소프트웨어 개발은 무엇일까요?

  • 먼저 어떤 일을 하는 소프트웨어 인지 결정합니다.
  • 코드를 작성합니다.
  • 소프트웨어가 잘 동작하는지 테스트해야 합니다.
  • 드래곤 이야기에서 당신은 마을 주변에 성벽을 설계하고 건설하는 동시에 마을을 괴롭히는 드래곤을 물리쳐야 합니다.

© Dragons Out Oy

11

31.8.2022

소프트웨어 개발= 소프트웨어가 작동하도록 하는 데 필요한 모든 작업. 이 작업에는 요구 사항 정의, 코딩 및 테스팅이 포함됩니다.

12 of 49

테스팅은 무엇일까?

  • 결함을 고치려면 결함을 찾아야 합니다.
  • 테스팅은 마치 드래곤 이야기에서 성벽에 매달린 용을 찾는 것처럼 결함을 찾고 또 찾는 것입니다.
  • 테스팅을 하면 종종 결함이 발견됩니다.
  • 테스팅은 실제로 결함을 찾는 것이 아니라 코드의 결함으로 인해 발생하는 소프트웨어 장애를 찾는 것입니다.

© Dragons Out Oy

12

31.8.2022

테스트 = 소프트웨어가 잘 동작하는지, 얼마나 잘 동작하는지 다양한 순서와 방식으로 여러 입력 값을 가지고 소프트웨어를 사용해 보고, 확인하거나 시험해 보는 것

13 of 49

실습 5-15 분:

나만의 소프트웨어 설계하기 –�나만의 성 그리기

// 준비물

종이와 연필

// 활동

1 여러분이 사용해 본 소프트웨어를 하나 떠올려 보세요.

  • 그 소프트웨어의 이름과 간략한 설명을 적어 보세요.
  • 결함이 있을 때 이 소프트웨어가 어떻게 대처하는지 적어보세요.

2 드래곤의 공격을 견딜 수 있는 성을 떠올려봅시다.

  • 그 성의 특징들을 적어보세요.
  • 작은 성인가요? 큰 성인가요? 벽이 있나요? 어떤 무기를 보유하고 있나요?

3 성을 그려보세요.

  • 가장 중요한 것은 소프트웨어의 특징이 잘 드러나도록 성을 표현해 보는 것입니다.
  • 너무 완벽하게 그리려고 할 필요는 없어요.

4 다른 친구들도 여러분과 같은 생각인지 그림을

보여주며 서로 이야기 해 보세요.

  • Padlet 같은 서비스를 이용해 보세요.

13

© Dragons Out Oy

14 of 49

테스트 기법

  • 다양한 방식으로 테스트를 할 수 있습니다 – 여러가지 테스트 기법이 있거든요.
    • 소프트웨어를 정상적인 방법으로 사용해 봅니다.
    • 소프트웨어를 비정상적인 방법으로 사용해 봅니다.
    • 소프트웨어가 어떻게 동작하는지 탐색해보세요.
    • 다른 사람이 그 소프트웨어를 사용하는 모습을 관찰해 보세요.
  • 판타지 이야기에서 기사가 지도를 그리면서 사람들에게 드래곤을 어디에서 봤는지 물어볼 수 있는 것처럼 동시에 여러 테스트 기법을 사용할 수 있습니다.

© Dragons Out Oy

14

31.8.2022

테스트 기법= 커버리지를 달성하기 위해 적절한 수의 테스트를 선택하는 방법입니다. 다양한 목적에 따라 여러 테스트 기법을 사용합니다.

15 of 49

실습 5-30 분:

나의 모바일 폰에서

소프트웨어 테스트 하기

// 준비물

모바일 폰이나

태블릿

또는 컴퓨터

// 활동

1 소프트웨어를 선택합니다.

  • 예) 레이싱 게임

2 소프트웨어를 다양한 시각으로 검토해 봅니다.

  • 잘 동작하는 기능은?
  • 잘 동작하지 않는 기능은?
  • 반응 속도가 느린 기능은?
  • 이상한 기능은?

3 위의 관점에 따라 소프트웨어를 사용해 봅니다.

  • 소프트웨어를 사용하면서 발견한 내용을 메모합니다.

4 여러분이 발견한 내용을 다른 사람과 공유합니다.

  • 토론해 보세요!

15

© Dragons Out Oy

16 of 49

기사– 개발자와 테스터

16

© Dragons Out Oy

17 of 49

테스트를 가장 많이 하는 사람은?

  • 보통 코드를 작성하는 사람(소프트웨어 개발자)가 코드를 작성하고 나머 테스트를 많이 합니다.
  • 테스트를 전문으로 하는 테스터도 있습니다. 그들은 문제를 쉽게 찾아냅니다.
  • 코드 작성자와 테스터가 함께 소프트웨어 개발 팀을 구성합니다. 마치 판타지 이야기에 기사들이 많이 있는 것처럼 말이죠.
  • 큰 소프트웨어라면 개발자는 한 명이 아니라 여러 명으로 된 팀으로 구성되어 있습니다.

© Dragons Out Oy

17

31.8.2022

소프트웨어 개발 팀 = 소프트웨어를 함께 개발하고 테스트 하는 사람들의 그룹. 줄여서 개발팀이라고도 합니다.

18 of 49

드래곤이 나타났을 때 당신은…

이야기

  • 스완레이크는 말을 돌려 성 쪽으로 재빨리 돌아왔다. 그녀는 기사들과 성주 에이단에게 드래곤이 오고 있다고 말했다. 날카롭게 다듬어진 나무 막대를 울타리 사이로 긴급히 옮겨야 했다. 누구든지 창과 칼을 가진 사람은 즉시 가져와야 한다. 사용 가능한 모든 물은 양동이에 부어야 한다. 그런 다음 그녀는 성에서 엘로비어드를 찾으러 갔다.

해설

  • 이야기에서 마을 사람들이 성벽을 수리하는 도중에 용이 마을에 도착합니다. 마찬가지로 결함의 대부분은 소프트웨어 출시 전 개발 중인 소프트웨어에서 발견됩니다. 결함을 찾는 사람(테스터)과 결함을 수정하는 사람(개발자)은 항상 있습니다. 보통 테스터는 나중에 사용자가 결함을 찾을 때 까지 기다리지 않고 결함을 미리 찾아냅니다. 이 이야기에서 스완레이크는 결함, 즉 드래곤을 발견하고 식별한 테스터였습니다. 테스터로서 그녀는 결함 수정에 도움을 줄 개발자가 필요했습니다.

© Dragons Out Oy

18

19 of 49

다른 테스터들

19

© Dragons Out Oy

20 of 49

사용자

  • 누구나 테스트를 할 수 있지만 테스트를 가장 많이 하는 사람은 코드 작성자와 테스터 입니다.
  • 판타지 이야기에서 어린이, 어른 할 것 없이 마을 사람들이 드래곤을 찾아 나서는 것 처럼 소프트웨어 사용자도 테스팅에 참여할 수 있습니다.
  • 이런 테스트를 인수 테스트라고 합니다.
  • 사용자도 소프트웨어 구축을 도울 수 있습니다.

© Dragons Out Oy

20

테스터 = 테스트 하는 사람. 테스팅 기법을 알고 있음. 전업 테스터, 프로그래머, 관리자 또는 사용자가 테스터가 될 수 있음.

21 of 49

유지보수 팀

  • 유지보수팀은 소프트웨어를 모니터링 하고 운영합니다. 소프트웨어를 유지하는 사람들이지요.
  • 그래서 그들은 테스트도 하고 결함을 수정하기도 합니다.
  • 사용자들을 도와주기도 하고요.
  • 유지보수팀은 도움 없이 일을 하기도 하지만 필요할 때는 개발자에게 도움을 요청하기도 합니다. 마치 드래곤 이야기에서 드래곤을 잡아 죽이기 위해 사냥꾼이 기사에게 도움을 요청하는 것 처럼 말입니다.
  • 유지보수 담당자가 개발팀에 있는 경우도 있습니다. (개발팀이 DevOps 팀이 되는 것입니다.)

© Dragons Out Oy

21

유지보수 팀 = 관리자, 사람들이 소프트웨어를 사용할 때 소프트웨어 동작을 관리하는 사람들. 운영팀이라고도 함.

22 of 49

데브옵스(DevOps) – 지속적인 전달

  • 운영 담당자가 개발팀 안에 있는 경우도 있습니다. 이런 팀을 DevOps 팀 이라고 합니다. 마치 드래곤 이야기에서 사냥꾼이 기사와 함께 일할 때가 있는 것과 같습니다.
  • 이런 팀은 계속해서 소프트웨어를 개발하고 테스트하여 사용자에게 새로운 기능을 제공함과 동시에 소프트웨어 사용자가 소프트웨어를 잘 사용할 수 있도록 지원합니다.

© Dragons Out Oy

22

31.8.2022

데브옵스(DevOps) = 소프트웨어 개발(development)과 소프트웨어 운영(operations)이 통합된 것. 한 팀 안에서 소프트웨어 개발과 유지보수를 함께 한다.

23 of 49

제품 소유자(Product owners)

  • 제품 소유자는 개발 팀에 소프트웨어 및 시스템 개발을 요청하는 사람입니다.
  • 그들은 특정 제품 소유자 이거나 회사의 경영진 일 수 있습니다.
  • 그들은 소프트웨어가 수행할 작업을 정하지만 판타지 이야기에서 영주와 공주가 기사에게 이런 저런 요청사항을 전달하고 함께 계획하는 것 처럼 개발팀의 말을 경청합니다.

© Dragons Out Oy

23

제품 소유자(Product owner) = 소프트웨어 제품 또는 소프트웨어 구축을 요구하는 사람. 제품 소유자는 사람으로 대표되는 회사일 수도 있습니다.

24 of 49

전문가의 도움

  • 개발자가 모든 것을 다 알지는 못하기 때문에 판타지 이야기에서 현자가 마을 사람들과 기사들을 돕는 것 처럼 전문 분야 전문가들의 도움이 필요합니다.
  • 사용성 전문가, 보안 전문가, 성능 전문가 같은 사람들이 그런 사람들입니다. 이들은 개발팀을 도와줍니다.
  • 예를 들어 사용성 전문가는 사용성 테스팅을 수행하고 이끌어 줍니다.

© Dragons Out Oy

24

사용성 전문가 = 사용성이 좋은 시스템 설계를 전문으로 하는 사람

25 of 49

실습 5-15 분:

나만의 테스터 구축 –�나만의 기사 그리기

// 준비물

종이와 연필

// 활동

1 어떤 테스터가 좋은 테스터인지 생각해 보세요.

  • 호기심이 많은 사람? 잘 생긴 사람? 빠른 사람? 인내심이 많은 사람?
  • 어떤 특징이 있는지 적어보세요.

2 좋은 테스터와 비슷한 기사나 용을 찾을 만한 어떤 사람을 생각해 보세요.

  • 이 기사의 특징을 적어보세요.
  • 갑옷을 입었나요? 무기를 가지고 있나요? 신중한 사람인가요?

3 기사를 그려보세요.

  • 중요한 것은 이 기사가 어떤 점에서 테스터와 비슷한지에 대해 표현해 내는 것입니다.
  • 완벽하게 그리려고 할 필요는 없어요.

4 다른 친구들은 어떻게 생각하는지 서로 그림을 공유해 보세요.

  • Padlet 같은 도구를 사용해 보세요.

25

© Dragons Out Oy

26 of 49

다양한 결함들

26

© Dragons Out Oy

27 of 49

소프트웨어에는 다양한 결함들이 있습니다

  • 모든 결함들을 다 찾아낼 수는 없지만 최대한 찾으려고 노력해야 합니다.
  • 어떤 결함은 나쁘고, 어떤 결함은 사소하고, 어떤 결함은 쉽게 해결이 가능하고, 어떤 결함은 해결이 어려운 것도 있습니다. 판타지 이야기에서 드래곤이 제각각인 것 처럼 말이죠.
  • 심각한 결함은 빨리 고쳐야 합니다.

© Dragons Out Oy

27

31.8.2022

심각도 = 결함은 종종 심각도에 따라 구분됩니다. 어떤 결함이 심각하다는 것은 해결하는 비용이 많이 들거나 위험한 경우 입니다. 덜 심각한 결함들도 있습니다.

28 of 49

성가신 드래곤

  • 색상: 빨강
  • 크기: 중간
  • 찾기 난이도: 어려움
  • 제거 난이도: 쉬움
  • 비행 능력?: 없음
  • 날개 크기: 작음
  • 불 뿜는 능력?: 있음
  • 가장 좋아하는 것: 양 잡아 먹기

© Dragons Out Oy

28

31.8.2022

29 of 49

성가신 드래곤

  • 결함 이름: 메모리 누수
  • 심각도: 중간
  • 결함 증상: 컴퓨터가 느려지다가 기능이 더이상 동작하지 않고 시스템이 꺼진다.
  • 결함 원인: 소프트웨어에서 사용하기 위해 메모리를 확보했지만 사용 후 돌려주지 않았다.
  • 근본 원인: 개발자가 메모리 반환에 신경쓰지 않았다. 어떻게 하는지 몰랐거나 기억을 못했을 수 있다.
  • 테스팅: 소프트웨어를 사용하는 동안 사용된 메모리를 측정한다. 메모리 소모가 계속 증가 한다면 메모리 누수일 가능성이 있다.
  • 수정: 수정해야할 코드가 나올 때 까지 코드를 한 줄씩 수행해 본다. 적절한 코드를 삽입하여 사용한 메모리를 돌려준다.

© Dragons Out Oy

29

31.8.2022

30 of 49

도둑 드래곤

  • 색상: 반짝이는 녹색, 또는 회색
  • 크기: 작은 것 부터 큰 것 까지
  • 찾기 난이도: 쉬운 것 부터 어려운 것 까지
  • 제거 난이도: 쉬운 것 부터 어려운 것 까지
  • 비행 능력?: 나는 것도 있고 못 나는 것도 있음
  • 날개 크기: 작은 것 부터 큰 것 까지 있음
  • 불 뿜는 능력?: 있음
  • 가장 좋아하는 것: 음식이나 보물 훔치기

© Dragons Out Oy

30

31.8.2022

31 of 49

도둑 드래곤

  • 결함 이름: 기능 결함
  • 심각도: 낮음-중간-높음
  • 결함 증상: 소프트웨어가 해야만 하는 일을 하지 않는다. 잘못된 계산 값이 나온다. 어떤 정보는 엉뚱한 곳에 표시된다.
  • 결함 원인: 기능에 대한 코드가 잘못 작성되었다.
  • 근본 원인: 개발자가 사용자가 원하는 기능이 무엇인지 이해를 못했거나 코드를 부주의하게 작성하거나 성급하게 작성하다가 결함이 생겼다.
  • 테스팅: 테스터의 경험이나 요구사항 명세를 기반으로 소프트웨어의 기능을 정상적으로 사용해 본다.
  • 수정: 정확하게 동작하도록 코드를 수정한다.

© Dragons Out Oy

31

31.8.2022

32 of 49

못된 드래곤

  • 색상: 검정
  • 크기: 작음
  • 찾기 난이도: 어려움
  • 제거 난이도: 중간
  • 비행 능력?: 있음
  • 날개 크기: 중간
  • 불 뿜는 능력?: 꽤 많이 뿜어냄
  • 가장 좋아하는 것: 들키지 않고 음식이나 보물 훔쳐가기

© Dragons Out Oy

32

31.8.2022

33 of 49

못된 드래곤

  • 결함 이름: 보안 결함
  • 심각도: 높음
  • 결함 증상: 소프트웨어의 정보가 시스템 외부에서 발견된다(예. 신용카드 정보). 이는 소프트웨어 기능 문제일 수도 있다.
  • 결함 원인: 해커가 시스템의 보안 관련 결함을 이용해 시스템에 침투하여 데이터를 훔치고 시스템을 망가뜨렸다.
  • 근본 원인: 개발자가 최신 보안 코드 지침을 따르지 않았다. 아마도 이런 것이 있는지 잘 몰랐을 것이다.
  • 테스팅: 소프트웨어를 직접 사용해 보거나 보안 테스팅 소프트웨어를 이용하여 알려진 취약점을 찾아본다. 코드를 리뷰해 볼 수도 있고 알려진 결함 체크리스트를 사용할 수도 있다.
  • 수정: 알려진 취약점에 대해서는 수정 방법도 공개되어 있다. 코드 또는 시스템 설정에서 이를 수정한다.

© Dragons Out Oy

33

31.8.2022

34 of 49

빠른 드래곤

  • 색상: 보라
  • 크기: 작음
  • 찾기 난이도: 어려움
  • 제거 난이도: 어려움
  • 비행 능력?: 있음
  • 날개 크기:
  • 불 뿜는 능력?: 약간 있음
  • 가장 좋아하는 것: 몰래 금 훔치기

© Dragons Out Oy

34

31.8.2022

35 of 49

빠른 드래곤

  • 결함 이름: 성능 결함
  • 심각도: 중간
  • 결함 증상: 소프트웨어가 느리게 동작한다.
  • 결함 원인: 일부 코드가 비효율적으로 동작하거나 명백한 문제를 가지고 있는 경우이다. 설정값이 잘못되었을 수도 있다. 소프트웨어가 불필요한 추가 작업을 하고 있어서 시간이 걸린다.
  • 근본 원인: 코드 작성시 성능에 대해 고려하지 않았다. 개발자가 코딩 환경에서 일어날 수 있는 여러 가능성을 몰랐을 수 있다. 불필요한 추가 작업이 일어나는 부분에 접근이 어려운 경우 일 수 있다.
  • 테스팅: 성능 테스팅 도구를 이용하여 한 사람 또는 여러 사람이 동시에 소프트웨어를 일반적인 시나리오로 사용해 본다. 실행 속도 즉, 반응 속도를 측정해 본다.
  • 수정: 느리게 동작하는 부분의 코드를 수정하고 속도에 대한 테스트를 해 본다.

© Dragons Out Oy

35

31.8.2022

36 of 49

화려하고 말썽많은 드래곤

  • 색상: 초록
  • 크기:
  • 찾기 난이도: 쉬움
  • 제거 난이도: 어려움
  • 비행 능력?: 있음
  • 날개 크기:
  • 불 뿜는 능력?: 꽤 많이 뿜어냄
  • 가장 좋아하는 것: 금을 쫓아 그 영역을 지킴

© Dragons Out Oy

36

31.8.2022

37 of 49

화려하고 말썽많은 드래곤

  • 결함 이름: 사용성 결함
  • 심각도: 낮음
  • 결함 증상: 소프트웨어를 사용할 수는 있지만 너무 어렵다.
  • 결함 원인: 기능에만 초점을 맞추어 코드 작성이 이뤄졌다. 쉬운 방법으로 구현하려고 했을 수 있다.
  • 근본 원인: 설계나 코딩 단계에서 사용자 요구에 대해 고려하지 않았다. 사용성에 대한 이해가 없었을 수도 있다.
  • 테스팅: 소프트웨어를 일반적인 시나리오로 사용해 본다. 무엇이 쉽고 어려운지 의견을 모은다.
  • 수정: 사용성 테스트 결과에 따라 시스템을 사용하기 쉽게 코드를 수정한다.

© Dragons Out Oy

37

31.8.2022

38 of 49

지하 드래곤

  • 색상: 갈색
  • 크기:
  • 찾기 난이도: 쉬움
  • 제거 난이도: 중간
  • 비행 능력?: 없음
  • 날개 크기: 작음
  • 불 뿜는 능력?: 꽤 많이 뿜어냄
  • 가장 좋아하는 것: 쉽게 찾아 먹을 수 있는 음식

© Dragons Out Oy

38

31.8.2022

39 of 49

지하 드래곤

  • 결함 이름: 하드웨어 결함
  • 심각도: 높음
  • 결함 증상: 컴퓨터의 일부 또는 전체를 쓸 수 없다.
  • 결함 원인: 수명이 오래되어 하드웨어 일부가 고장남.
  • 근본 원인: 하드웨어 일부의 품질이 낮아서 가용성이 떨어질 수 있다. 다른 컴포넌트와 잘 연동이 되지 않아 고장난 것일 수 있다.
  • 테스팅: 소프트웨어를 일반적인 시나리오로 사용해 보면서 하드웨어 상태를 관찰한다. 사용자 환경과 유사한 하드웨어 환경에서 테스트 한다.
  • 수정: 손상된 하드웨어를 새 것으로 교체하거나 다른 부붐과 잘 연동되도록 수정한다.

© Dragons Out Oy

39

31.8.2022

40 of 49

그림자인가 드래곤인가?

  • 색상: 회색
  • 크기: 작음
  • 찾기 난이도: 쉬움
  • 제거 난이도: 쉬움
  • 비행 능력?: 없음
  • 날개 크기: 작음
  • 불 뿜는 능력?: 있음
  • 가장 좋아하는 것: 사람들을 혼란하게 하는 일

© Dragons Out Oy

40

31.8.2022

41 of 49

그림자인가 드래곤인가?

  • 결함 이름: 하드웨어 결함
  • 심각도: 높음
  • 결함 증상: 기능이 잘 동작하지 않는다. (예: 계산 결과가 잘못됨)
  • 결함 원인: 테스트 데이터나 테스트 환경에 문제가 있다.
  • 근본 원인: 결함을 찾는데 혈안이 된 테스터일 수 있다. 테스터 환경과 데이터가 계획 대로 정확하게 사용되지 않았을 것이다.
  • 테스팅: 소프트웨어를 일반적인 시나리오로 사용하되 환경과 데이터를 잘 관찰한다. 테스트 자체가 문제가 될 수 있음을 고려한다.
  • 수정: 테스트 환경과 데이터를 더 잘 정의한다. 실수(거짓 양성)로 부터 배울 수 있다.

© Dragons Out Oy

41

31.8.2022

42 of 49

멋진 드래곤

  • 색상: 반짝이는 초록
  • 크기: 중간
  • 찾기 난이도: 쉬움
  • 제거 난이도: 쉬움
  • 비행 능력?: 없음
  • 날개 크기: 중간
  • 불 뿜는 능력?: 있음
  • 가장 좋아하는 것: 동물 잡아 먹기, 사람들 도와주기

© Dragons Out Oy

42

31.8.2022

43 of 49

멋진 드래곤

  • 결함 이름: 결함 주입, 상호 테스팅 - 목적에 따라 결함을 생성함
  • 심각도: 낮음
  • 결함 증상: 기능이 잘 동작하지 않는 것 처럼 보인다(예: 계산 결과 오류). 그래서 기능 결함 처럼 보일 수 있다.
  • 결함 원인: 테스터나 개발자가 일부러 코드에 결함을 만들어 넣었다.
  • 근본 원인: 주입된 결함을 다 찾으면 모든 결함을 찾은 것이라는 의미에서 수행하는 테스트이다.
  • 테스팅: 소프트웨어를 일반적인 시나리오로 사용하면서 주입한 결함을 다 찾아본다. 실제 결함을 찾을 수도 있다. 마지막 결함까지 다 찾으면 테스팅을 끝낸다.
  • 수정: 주입한 결함에 대해서도 코드를 수정해야 함을 기억한다. 같은 방식으로 실제 기능 결함도 수정한다.

© Dragons Out Oy

43

31.8.2022

44 of 49

고집쟁이 드래곤

  • 색상: 반짝이는 초록
  • 크기:
  • 찾기 난이도: 쉬움
  • 제거 난이도: 어려움
  • 비행 능력?: 있음
  • 날개 크기: 작음
  • 불 뿜는 능력?: 있음
  • 가장 좋아하는 것: 사람들을 끊임없이 괴롭히기

© Dragons Out Oy

44

31.8.2022

45 of 49

고집쟁이 드래곤

© Dragons Out Oy

45

31.8.2022

  • 결함 이름: 버전 관리 결함
  • 심각도: 중간
  • 결함 증상: 이미 수정했던 결함이 다시 발생함. 기능 결함일 수 있다.
  • 결함 원인: 버전 관리에 실패했다. 새로운 코드에 다른 개발자가 결함을 수정해 놓았는데 개발자가 새로운 코드를 사용해야 할 곳에 예전 소프트웨어를 사용한 것이다.
  • 근본 원인: 서두르지 않으면 다른 결함들도 많이 나올 수 있다. 버전 관리도 제대로 되지 않았을 수 있습니다.
  • 테스팅: 소프트웨어를 일반적인 시나리오로 사용해본다. 결함을 찾으면 이미 수정했던 결함이 아닌지 확인해 본다. 이미 수정했던 결함이라면 버전 관리가 잘 되고 있는지 조사해본다.
  • 수정: 버전 관리를 개선한다. 버전 관리 소프트웨어를 사용한다.

46 of 49

불분명한 드래곤

  • 색상: 반짝이는 초록
  • 크기: 작음
  • 찾기 난이도: 쉬움
  • 제거 난이도: 쉬움
  • 비행 능력?: 있음
  • 날개 크기: 중간
  • 불 뿜는 능력?: 있음
  • 가장 좋아하는 것: 큰 드래곤 괴롭히기

© Dragons Out Oy

46

31.8.2022

47 of 49

불분명한 드래곤

  • 결함 이름: 문서 결함
  • 심각도: 낮음
  • 결함 증상: 기능이 문서에 쓰여있는 것과 다르게 동작한다.
  • 결함 원인: 개발 계획과 지침이 소프트웨어와 일치하지 않는다.
  • 근본 원인: 계획과 다른 소프트웨어가 개발된 것은 코딩 중에 결정되었거나 변경되었기 때문이다. 변경 전 계획에 따라 문서가 작성되었다.
  • 테스팅: 소프트웨어를 일반적인 시나리오로 사용해본다. 결합을 찾으면 소프트웨어의 문제인지 문서의 문제인지 살펴본다.
  • 수정: 소프트웨어나 문서를 수정하여 서로 일치하도록 한다.

© Dragons Out Oy

47

31.8.2022

48 of 49

실습 5-15 분:

나만의 결함 설계하기–�나만의 멋진 드래곤 그리기

// 준비물

종이와 연필

// 활동

1 소프트웨어를 이해하는데 도움이 된 결함을 떠올려 보세요(또는 여러분이 좋아하는 결함을 생각해 보세요).

  • 그 결함의 이름을 쓰고 설명을 간단히 적어보세요

2 위 결함과 유사한 드래곤을 생각해 봅시다

  • 드래곤의 특성을 적어보세요.
  • 아주 안 좋은 결함이었다면 그 드래곤은 크다라고 쓰면 됩니다.

3 드래곤을 그려보세요.

  • 중요한 것은 이 드래곤이 여러분이 생각하는 결함과 얼마나 비슷한지 잘 전달하는 것입니다.
  • 그림을 완벽하게 그릴 필요는 없어요.

4 다른 친구들은 어떻게 생각하는지 서로 그림을 공유해 보세요.

  • Padlet 같은 도구를 사용해 보세요.

48

© Dragons Out Oy

49 of 49

고맙습니다!

이 책이 흥미로웠다면 아래 링크에서 구매하실 수 있습니다 :

https://www.dragonsout.com/p/order-dragons-out-book.html

Follow and share the book project:

https://www.dragonsout.com

문의:

kari.kakkonen@dragonsout.com

© Dragons Out Oy

49