달력

9

« 2020/9 »


 

 

 

테스트 전략 절차

·         테스트 요구사항 분석

·         테스트 목표 수립

·         테스트 유형 선택

·         테스트 고려사항과 추가적 요청사항

·         테스트 진행 방법

·         테스트 (Tool) 사용 여부

·         테스트 인력 관리 방안

·         테스트 완료 조건(Exit Criteria) 수립

 

 

 

 

 

 

 

테스트 요구사항 분석

·         테스트 대상에 대한 위험성(Risk) 대한 분석 진행합니다.

·         위험성에 대한 기준은  정성적/정량적으로 구분 가능하며 일반적으로는 정량적으로 판단합니다.

·         요구사항 분석을 통해 식별된 위험성에 대해 정량적 등급 평가 수행합니다.

·         테스트 전략은 최우선적으로 해결해야 하는 위험요소 제거하는 것입니다.

 

 

구분

설명

영향도

(Impact)

해당 기능이 작동하는 도중 오류가 발생하였을 경우어떠한 비지니스적 효과나 물리적인 피해를 있는가?

장애 발생 가능성

(Likelihood)

해당 기능상의 오류가 얼마나 많은 사용자에게 발생하며, 자주 노출될 것인가? 얼마나 많이 사용하는 기능인가?

 

 

 

 

 

테스트 목표 수립

·         요구사항 분석이 어느정도 완료되면 테스트 목표를 구체적으로 수립하는 과정을 진행합니다.

·         테스트 목표는  명확하게 기술해야 합니다.

·         명확한 목표 수립 , 달성 가능하도록 세부 전략을 수립합니다.

 

 

 

[테스트 목표 수립 예시]

·         테스트의 목적은 제한된 자원 내에서 효율적인 테스트를 통해 잠재 오류를 최대한 찾아내는

·         2014 12 29일까지 모든 테스트 케이스 4 이상 실행하고 결함 추적 시스템에 등록된 결함 리스트를 모두 종료시키는

·         이번 차수에서는 A/B 이슈에 대한 모든 이슈가 수정된 것을 확인하고 C 이슈는 수정률이 95% 이상 달성해야

 

 

 

 

 

 

테스트 유형 선택

·         목표 수립 완료 , 적절한 테스트 유형을 선택하는 활동

·         테스트 유형에 대해 어떠한 단계에 시행할지 고려

 

 

 

테스트 유형

·         기능 테스트(Functional)

·         로드 테스트(Load)

·         성능 테스트(Performance)

·         UI 테스트(User Interface)

·         보안 테스트 (Security)

·         호환성 테스트 (Compatibility)

·         업그레이드 테스트(Upgrade)

 

 

 

 

 

 

 

테스트 고려사항과 추가적 요청사항

인력 추가 요청, 새로운 테스트 환경 설치, 처음 접하는 기능에 대한 테스트등 테스트 일정 진행에 영향을 있는 특이사항 대해 기술합니다.

 

 

 

 

 

 

 

테스트 진행 방법

·         폭포수 모델 기준으로 단계별 일반적인 테스트를 계획하여 진행

·         오류가 많이 발생할 것을 예상하여 일반적인 테스트 중간에 추가 테스트 일정 계획

·         테스트 진행 기법에 따른 추가 인력 계획 필요

 

 

 

 

 

 

 

 

테스트 (Tool) 사용 여부

·         테스트를 진행하기 위해 필요한 결함 관리 시스템과 성능 테스트 필요한 , 자동화 테스트를 하기 위한 선택한 테스트 진행 방법에 맞는 테스트 툴의 사용 여부 대상 선정

·         소규모 프로젝트 팀의 경우 스프레드시트(spreadsheet) 이메일 결함 관리하는 경우도 많음

·         프로젝트 규모를 진행하는 회사의 경우 대부분 자체 결함 관리 시스템 사용

·         이슈 트래킹(Issue Tracking) 형태의 많이 사용되고 있음 (JIRA, TRAC )

 

 

 

 

 

 

 

 

테스트 인력 관리 방안

·         테스트 방법, 일정 등에 따라 테스트 인력 투입에 대해 사전에 점검

·         테스트의 난이도 중요도에 따라 숙련된 인력에 대한 투입 고려

·         추가 일정 테스트 인원 교체 등에 대한 리스크를 사전에 예상하여 인원 운영되어야

 

 

 

 

 

 

 

 

테스트 완료 조건(Exit Criteria) 수립

·         테스트에 소프트웨어의 100% 수정은 불가능

·         사용자가 만족할 만한 수준의 제품을 제공할 만한 품질이 보장되도록 테스트의 완료 조건 결정 (계획한 테스트 진행 차수 완료, 차수별 발견된 오류 수정 완료, 심각도 상위등급 오류 수정 완료)

 

 

 

 

[테스트 완료 조건(Exit Criteria) 수립 예시]

·         A, B, C 3 등급의 심각도 A항목 모두 수정 완료

·         전체 테스트 케이스 모두 통과

·         최종 테스트 진행 중요 오류 미검출

·         기본 비즈니스 흐름상의 기능 테스트 오류 수정 완료

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

경로 커버리지(Path Coverage)

·         단일 기능(Function)에서 입력 시점에서 종료시점까지의 여러 분기 하나의 흐름을 의미합니다.

·         프로그램의 기능(Function)에서 모든 가능한 경로(Path) 만족하는 가장 강력한 기준입니다.

·         모든 경우의 수를 고려하므로 철저한 테스트가 가능합니다.

·         프로그램에서 나올 있는 모든 경로의 수를 고려해야 하므로, 테스트 케이스 설계에 엄청난 공수가 필요합니다.

·         데이터(Data) 간의 상호 배반적 관계로 수행이 불가능한 경로가 다수 존재합니다.

 

 

 

 

경로 커버리지(Path Coverage)예제

 

// c < b 경우 dead code

if (a > b) {

if (a > c) {

//ㆍㆍㆍ

}

//ㆍㆍㆍ

}

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

일일스크럼 프랙티스 고려사항

·         가능하면 팀원 모두 참여합니다.

·         기타 이해당사자들은 선택적으로 참석하되 팀이 이야기하는 것에 귀를 기울여야 합니다.

·         제품 책임자와 자주 진행상황과 방향을 이야기하는 것이 좋습니다.

 

 

 

스프린트 미팅시에는 스크럼 마스터와 팀원들이 모두 참석하여 현황판의 작업현황을 토대로 서로간의 업무를 공유하는 것이 중요합니다.


http://bit.ly/2DAW4Ag

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

 

소프트웨어 테스트 모니터링(SW Test Monitering)

·         테스트 상태 뿐만 아니라 진행 중인 테스트의 현황을 악하는 것도 중요합니다.

·         이슈 개수, 수정 개수 등을 파악합니다.

·         테스트 기간 동안의 이슈를 파악합니다.

·         개발자, 테스터, 관리자 모두에게 매우 중요한 정보입니다.

·         테스트 종료가 다가오면 잔여 이슈 개수 또는 우선순위가 높은 심각한 이슈 개수 등이 주요 관심사가 됩니다.

 

 

 

 

[이슈 현황표 ]


 

빨강

생성된 이슈

녹색

수정된 이슈

 

http://bit.ly/2ZBgjaE

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

결정 테스팅(Decision Testing)

·         결정 커버리지(Decision Coverage)

·         브랜치 커버리지(Branch Coverage) 에지 커버리지(Edge Coverage)

·         결정 커버리지는 테스트 케이스 스위트(Suite, 묶음) 의해 실행된 조건문 분기(if 구문의 혹은 거짓) 전체 가능한 분기의 퍼센트인지를 측정하고 평가하는 것이다.

·         결정 커버리지는 결정 포인트(Decision Points) 내의 전체 조건식이 "" "거짓" 모든 값을 갖게 되어 모든 분기로 흐르게 되면 달성된다.

·         결정 테스팅은 결정 커버리지를 늘리기 위해 특정 조건문의 분기를 테스트하는 테스트 케이스를 도출하는 것이다.

·         조건문의 (True) 거짓(False) 적어도 이상 실행시키는 것을 기준으로 하는 커버리지입니다.

·         구문 커버리지(Statement Coverage) 기준을 포함합니다.

·         모든 결과값을 검증할 있어야 합니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

지속적 통합 프랙티스 과정

개발자 머신에서 소스코드를 통합빌드서버 보내고 통합서버에서는 매일매일 빌드하면서 검증가능한 코드를 통합하고 배포합니다.


http://bit.ly/2PBVU0r

 




'Security > SecureCoding' 카테고리의 다른 글

소프트웨어 테스트 모니터링(SoftWare Test Monitering)  (0) 2020.07.01
결정 테스팅(Decision Testing)  (0) 2020.06.18
지속적 통합 프랙티스 과정  (0) 2020.06.14
구문 테스팅(Statement Testing)  (0) 2020.06.06
Lint(린트)  (0) 2020.05.31
테스트 자동화  (0) 2020.05.17
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

구문 테스팅(Statement Testing)

·         구문 커버리지(Statement Coverage)

·         코드 커버리지(Code Coverage) 노드 커버리지(Node Coverage) 라인 커버리지(Line Coverage)

·         구문 커버리지는 테스트 스위트(Test Suite, 테스트 케이스 묶음) 의해 실행된 구문이 퍼센트인지를 측정하는 것입니다.

·         구문 테스팅은 구문 커버리지를 늘리기 위해 특정 구문을 테스트하는 테스트케이스를 도출하는 것입니다.

·         테스트 케이스에 의해 프로그램 내의 모든 구문(Statement) 이상 실행시키는 것을 기준으로 하는 커버리지입니다.

 

 

http://bit.ly/2DuqTXq

https://en.wikipedia.org/wiki/Code_coverage

 

 

 

 



'Security > SecureCoding' 카테고리의 다른 글

결정 테스팅(Decision Testing)  (0) 2020.06.18
지속적 통합 프랙티스 과정  (0) 2020.06.14
구문 테스팅(Statement Testing)  (0) 2020.06.06
Lint(린트)  (0) 2020.05.31
테스트 자동화  (0) 2020.05.17
디폴트 값(Default Value)  (0) 2020.05.07
Posted by codedragon codedragon

댓글을 달아 주세요

2020. 5. 31. 00:30

Lint(린트) Security/SecureCoding


 

 

Lint(린트)

·         linter(린터)

·         소스 코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 구조체에 표시(flag) 달아놓기 위한 도구들을 가리킵니다.

 

 

http://bit.ly/2UPYIrO

http://bit.ly/2ITg5GF

https://en.wikipedia.org/wiki/Lint_(software)

 



'Security > SecureCoding' 카테고리의 다른 글

지속적 통합 프랙티스 과정  (0) 2020.06.14
구문 테스팅(Statement Testing)  (0) 2020.06.06
Lint(린트)  (0) 2020.05.31
테스트 자동화  (0) 2020.05.17
디폴트 값(Default Value)  (0) 2020.05.07
libssh2 라이브러리 - download(다운로드)  (0) 2020.04.24
Posted by codedragon codedragon

댓글을 달아 주세요

 

 

 

테스트 자동화

테스트 자동화란 사람이 하던 반복적 테스트 절차 자동화 도구를 활용하여 준비, 구현, 수행, 분석 등을 스크립트 형태로 구현함으로써, 시간과 인력 투입의 부담을 최소화하면서 운영 중인 시스템의 모니터링 또는 UI 없는 서비스의 경우에도 정밀한 테스트가 가능하도록 하는 것을 말합니다.

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

디폴트 (Default Value)

·         컴퓨터 시스템자체에서 기본적으로 설정되어 있는 값입니다.

·         프로그램에서 사용자가 값을 지정하지 않아도 자동으로(저절로) 주어지는 값입니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요