14
AllPairs python Lib 김성준 [email protected]

Pycon5min speech

Embed Size (px)

Citation preview

Page 1: Pycon5min speech

AllPairs python Lib

김성준

[email protected]

Page 2: Pycon5min speech

Allpairs Lib

Test Combinations

Generator

Page 3: Pycon5min speech

What is AllPair ? One of Case generating way

• 3가지 OS에서 발생하는 모든 케이스 의 수: 3x3x3x3 = 81가지

• AllPair로직은 발생가능한 케이스를 효과적 유지하면서 개수는 효율적으로 줄여준다.

Page 4: Pycon5min speech

AllPairs

N = 1 : 총 3개 케이스

No. OS

RAM Processor DB

1 Win2000 512 PentiumII Oracle

2 Windows

NT 256 PentiumIII SQL

3 WinXP 128 PentiumIV Acces

s

No. OS RAM Processor DB

1 Win2000 128 PentiumIV SQL

2 Win2000 256 PentiumIV Access

3 Win2000 512 PentiumII Access

4 Win2000 512 PentiumIII Oracle

… … … … …

11 WinXP 256 PentiumII SQL

12 WinXP 256 PentiumII Access

13 WinXP 512 PentiumIV SQL

N = 2 : 총 13개 케이스

N = 3 : 총 34개 케이스

No. OS RAM

Processor DB

1 Win2000 128 PentiumI

I Acces

s

2 Win2000 128 PentiumI

II Acces

s

3 Win2000 128 PentiumI

V SQL

4 Win2000 128 PentiumI

V Oracl

e

… … … … …

32 WinXP 512 PentiumI

I Acces

s

33 WinXP 512 PentiumI

II Oracl

e

34 WinXP 512 PentiumI

V SQL

Page 5: Pycon5min speech

Effectiveness • 케이스 수 : 81 13개 : 약 83% 감소

• 커버리지 : 100% 75% : 25% 감소

Page 6: Pycon5min speech

Usage

def makePairwising(self): #Make Parameters Parameters = [] #ger rid of first item in all Action lists. First Item is 'Action' Text. All items has this in common Parameters.append(deleteFitstItemInlists(self.ActionList)) for env_list in self.EnvironmentList: Parameters.append(env_list) pairwise = all_pairs(Parameters, n=self.PairingWay, filter_func=self.is_valid_combination) return pairwise

__author__ = 'cheuora' #!/usr/bin/env python # -*- coding: UTF-8 -*- import sys import metacomm.combinatorics.all_pairs2 all_pairs = metacomm.combinatorics.all_pairs2.all_pairs2

Page 7: Pycon5min speech

개발 적용 사례

• TCaseGenerator

– Pseudo Code를 이용한 MC/DC케이스 생성

• MindMap Analyzer

– Action, Environment의 조합 분석 도구

Page 8: Pycon5min speech

TcaseGenerator • https://github.com/cheuora/TCaseGenerator

• Java의 if구문을 이용하여 케이스를 작성(*.md파일)

• If 구문간의 결과를 최소 비교(n=1) 하여 MC/DC결과도출

Page 9: Pycon5min speech

MindMap Analyzer

• 대상 시스템을 마인드맵으로 Action, Environment를 분석하여 예상 테스트 케이스 생성해 주는 도구

https://sourceforge.net/projects/mindmapanalyzer/

Page 10: Pycon5min speech

• Action(기능)명세 정리 시

– 결과가 Yes/No로 떨어지도록 명세를 정리.

• 이는 기능이 모호해지는 것을 막음.

– Action인자들 간의 종속성을 파악하는 것이 중요

• Environment명세 정리 시

– 시나리오 정리 중에서 제일 놓치기 쉬운 부분임.

– 환경적인 부분들에 대한 종속성을 파악하는 것이 중요

– Environment와 Action간 영향이 있는 부분과 없는 부분 파악도 “매우“ 중요

Page 11: Pycon5min speech

MindMapFile – 1st

Page 12: Pycon5min speech

MindMapFile – 2nd

Page 13: Pycon5min speech

MindMap Analyzing

Page 14: Pycon5min speech

감사합니다