Featured Lab

1. balance 잔액 / account 계좌

 


2. 화이트박스 / 블랙박스

1) 블랙박스 : 안이보이지 않는 박스

- 내부 로직, 처리과정이 불투명하게 외부개발자에게 숨겨져 있어 해당 시스템이나 모듈의 내부 작동방식을 이해하기 어렵다. (입력과 출력 결과만 볼수 있다)

- 단순한 인터페이스를 통해 서비스를 이요하며 내부 로직이 비공개 되어있어 보안이 강화되어 악의적 해킹이나 경쟁사로 부터 보호가 가능하다.

- 인터페이스의 복잡성과 반대 되어 사용법이 간단하고 직관적, 지적 재산 보호기능

- 오류 발생시 원인을 찾고 해결하기 어려운 편. 사용자와 제휴사는 내부 작동원리를 알수 없어 신뢰구축이 힘들수 있ㅇㅁ

 

2) 화이트박스 : 투명박스 

- 내부 작동원리가 명확하게 공개되어 동작, 데이터 처리 등을 이해할수 있다.

- 투명성, 신뢰성, 규제 준수, 개발효율성, 사용자 경험의 개선

 


3. API와 화이트 박스의 차이점

1) 화이트박스 : 시스템, 모델의 내부 구조, 로직, 코드가 투명하고 이해할수 있도록 공개된 상태. 다 OPEN!!!

 

2) 공개 API : 외부개발자가 특정 서비스, 플랫폼의 기능을 사용할수 있도록 공개된 인터페이스를 뜻하며 API로 공개된 기능은 사용가능하나 그 기능을 내부적으로 구현하는 방식은 알수 없는 경우가 많다. 내부 비공개, 정해진 인터페이스로 공개한 기능 OPEN!!

 


4. 화이트박스 테스팅 / 블랙박스 테스팅

1) 화이트 박스 테스트는 소프트웨어의 내부 구조와 로직을 이해하고 조건에 따른 동작 등을 검사하여 해당 코드가 원하는대로 동작하는지, 적절하게 테스트 되었는지 확인한다. (시스템의 작동원리, 각 코드가 정상 작동하는가?)

단위테스트에 자주 사용되나, 내부로직을 철저히 테스트 하기위해서 통합 및 시스템 테스트에 적용 가능

 

2) 블랙박스 테스트 : 내부 구조나 동작 방식을 모르는 상태에서 테스트. 요구사항, SW사양에 기반한 입력값에 따른 출력을 확인하고 기대하는대로 동작여부를 평가함. 내부 구현 지식 없이 이 SW가 요구사항대로 기능이 동작하는데 검증

(사용자의 관점에서 예상대로 잘 작동하는가?)

단위, 통합, 시스템 테스트 모두 적용. 입력/출력만 포커스. 

 


5. 통합테스트 / 단위테스트 / 시스템 테스트

1) 단위테스트 : 개별 구성요소, 코드 조각을 테스트. 소프트웨어를 기준으로 각각의 부부이 독립적으로 설계된대로 잘 돌아가는지 확인한다. 일반적으로 개발자가 코드 짜면서 작성 실행, 화이트박스의 한 형태가 될 수 있다.

 

2) 통합테스트 : 구성요소나 시스템간의 인터페이스, 상호작용을 테스트. 소프트웨어 여러부분이 예상대로 함께 잘 작동하는지 검증. 테스터의 시스템 내부의 이해도에 따라 화이트박스 및 블랙박스 테스트 모두가 포함될수 있음.

 

3) 시스템테스트 : 통합 소프트웨어 테스트의 단계. 위 단위 및 통합테스트와 다르게 시스템 테스트는 전체 시스템의 기능과 성능을 평가한다. 최종 사용자 관점에서 수행되는 높은 수준의 단계.

system test 특징>>

- End-to-End Testing

애플리케이션 전체를 테스트 (실제 시나리오, 환경 기반 예상대로 잘 동작하는가?)

- Requirement Verification

요구사항을 준수하였는가?

- Black Box Approach

블랙박스 테스트의 한 형태로 수행된다. 입력/출력만 초점에 맞춰져있고 테스터는 소프트웨어의 내부작동을 알 필요 없다.

- Performed in an Enviroment that Mimics Production

 

유형>>

- 기능 테스트

- 성능 테스트 (부하테스트, 스트레스테스트, 확장성 테스트) : 다양한 조건에서 성능 평가

- 보안 테스트 : SW의 취약점, 위협, 위험을 검사

- 사용성 테스트 : 사용하기 쉬운지 

- 호환성 테스트 : 브라우저, OS, 다양한 디바이스, 환경에서 잘 돌아가는가?

- 회귀 테스트 : 새 코드 변경이 기존 기능에 오류 및 부정적 영향이 갔는가? (일부러 코드 수정)

 

효과>>

초반 테스트에서 발견되지 않을수 있는 결함, 문제를 검출할수 있다. 실제 사용자에게 릴리즈 되기 전에 모두 잘 동작하는지 사용자가 이용하는데 문제가 없는지 기대한 만큼 충족이 되는지 확인이 가능핟,

SW품질을 높이고 릴리즈한 뒤 수정을 줄이고(수정비용), 이후 발생할수 있는 여러가지 위험을 줄인다.

 

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band