1) 블랙박스 : 안이보이지 않는 박스
- 내부 로직, 처리과정이 불투명하게 외부개발자에게 숨겨져 있어 해당 시스템이나 모듈의 내부 작동방식을 이해하기 어렵다. (입력과 출력 결과만 볼수 있다)
- 단순한 인터페이스를 통해 서비스를 이요하며 내부 로직이 비공개 되어있어 보안이 강화되어 악의적 해킹이나 경쟁사로 부터 보호가 가능하다.
- 인터페이스의 복잡성과 반대 되어 사용법이 간단하고 직관적, 지적 재산 보호기능
- 오류 발생시 원인을 찾고 해결하기 어려운 편. 사용자와 제휴사는 내부 작동원리를 알수 없어 신뢰구축이 힘들수 있ㅇㅁ
2) 화이트박스 : 투명박스
- 내부 작동원리가 명확하게 공개되어 동작, 데이터 처리 등을 이해할수 있다.
- 투명성, 신뢰성, 규제 준수, 개발효율성, 사용자 경험의 개선
1) 화이트박스 : 시스템, 모델의 내부 구조, 로직, 코드가 투명하고 이해할수 있도록 공개된 상태. 다 OPEN!!!
2) 공개 API : 외부개발자가 특정 서비스, 플랫폼의 기능을 사용할수 있도록 공개된 인터페이스를 뜻하며 API로 공개된 기능은 사용가능하나 그 기능을 내부적으로 구현하는 방식은 알수 없는 경우가 많다. 내부 비공개, 정해진 인터페이스로 공개한 기능 OPEN!!
1) 화이트 박스 테스트는 소프트웨어의 내부 구조와 로직을 이해하고 조건에 따른 동작 등을 검사하여 해당 코드가 원하는대로 동작하는지, 적절하게 테스트 되었는지 확인한다. (시스템의 작동원리, 각 코드가 정상 작동하는가?)
단위테스트에 자주 사용되나, 내부로직을 철저히 테스트 하기위해서 통합 및 시스템 테스트에 적용 가능
2) 블랙박스 테스트 : 내부 구조나 동작 방식을 모르는 상태에서 테스트. 요구사항, SW사양에 기반한 입력값에 따른 출력을 확인하고 기대하는대로 동작여부를 평가함. 내부 구현 지식 없이 이 SW가 요구사항대로 기능이 동작하는데 검증
(사용자의 관점에서 예상대로 잘 작동하는가?)
단위, 통합, 시스템 테스트 모두 적용. 입력/출력만 포커스.
1) 단위테스트 : 개별 구성요소, 코드 조각을 테스트. 소프트웨어를 기준으로 각각의 부부이 독립적으로 설계된대로 잘 돌아가는지 확인한다. 일반적으로 개발자가 코드 짜면서 작성 실행, 화이트박스의 한 형태가 될 수 있다.
2) 통합테스트 : 구성요소나 시스템간의 인터페이스, 상호작용을 테스트. 소프트웨어 여러부분이 예상대로 함께 잘 작동하는지 검증. 테스터의 시스템 내부의 이해도에 따라 화이트박스 및 블랙박스 테스트 모두가 포함될수 있음.
3) 시스템테스트 : 통합 소프트웨어 테스트의 단계. 위 단위 및 통합테스트와 다르게 시스템 테스트는 전체 시스템의 기능과 성능을 평가한다. 최종 사용자 관점에서 수행되는 높은 수준의 단계.
system test 특징>>
- End-to-End Testing
애플리케이션 전체를 테스트 (실제 시나리오, 환경 기반 예상대로 잘 동작하는가?)
- Requirement Verification
요구사항을 준수하였는가?
- Black Box Approach
블랙박스 테스트의 한 형태로 수행된다. 입력/출력만 초점에 맞춰져있고 테스터는 소프트웨어의 내부작동을 알 필요 없다.
- Performed in an Enviroment that Mimics Production
유형>>
- 기능 테스트
- 성능 테스트 (부하테스트, 스트레스테스트, 확장성 테스트) : 다양한 조건에서 성능 평가
- 보안 테스트 : SW의 취약점, 위협, 위험을 검사
- 사용성 테스트 : 사용하기 쉬운지
- 호환성 테스트 : 브라우저, OS, 다양한 디바이스, 환경에서 잘 돌아가는가?
- 회귀 테스트 : 새 코드 변경이 기존 기능에 오류 및 부정적 영향이 갔는가? (일부러 코드 수정)
효과>>
초반 테스트에서 발견되지 않을수 있는 결함, 문제를 검출할수 있다. 실제 사용자에게 릴리즈 되기 전에 모두 잘 동작하는지 사용자가 이용하는데 문제가 없는지 기대한 만큼 충족이 되는지 확인이 가능핟,
SW품질을 높이고 릴리즈한 뒤 수정을 줄이고(수정비용), 이후 발생할수 있는 여러가지 위험을 줄인다.