[Java] 블랙 박스 테스트 & 화이트 박스 테스트 & 커버리지(Coverage) 예시
·
Java
블랙 박스 테스팅 & 화이트 박스 테스팅의 정의 소프트웨어 테스트에서 "화이트 박스 테스팅(White Box Testing)"과 "블랙 박스 테스팅 (Black Box Testing)"은 두 가지 주요 전략입니다. 화이트 박스 테스팅(White Box Testing)은 소프트웨어 코드의 내부 작동 및 구조를 이해하고 분석하여 테스트 케이스를 설계하고 수행하는 것입니다. 즉, 이 방법은 코드의 내부를 살펴보고, 코드에 대한 전문적인 지식과 프로그래밍 경험이 필요합니다. 화이트 박스 테스팅은 구현 방식에 따라 "구조적 테스팅(Structural Testing)" 또는 "코드 기반 테스팅(Code-based Testing)"으로도 알려져 있습니다. 블랙 박스 테스팅(Black Box Testing)은 소프트웨..
[Java] 재귀(Recursion) 함수란? 쉽게 이해해보자
·
Java
Recursive 함수란 무엇인가? Recursive 함수는 자신을 다시 호출하여 문제를 해결하는 함수입니다. 이러한 방법을 이용하면 반복문 대신 문제를 더욱 간결하고 쉽게 해결할 수 있습니다. Recursive 함수의 특징은 무엇인가? Recursive 함수는 일반적으로 다음과 같은 특징을 가집니다. 자기 자신을 호출하는 방법으로 문제를 해결합니다. Base case(기본 경우)와 Recursive case(재귀적인 경우)로 구분됩니다. Base case: 재귀 호출을 멈추는 조건을 나타냅니다. Recursive case: 재귀 호출이 반복적으로 일어나는 부분입니다. Recursive 함수 예시를 쉽게 설명해보자 예시: 팩토리얼 계산 함수 예시 설명: 팩토리얼은 1부터 n까지의 정수를 곱한 값입니다. ..
[Java] 자바에서 ConcurrentModificationException이 발생하는 이유와 해결 방법 | Map.keySet()
·
Java
ConcurrentModificationException 발생이유 Java에서 ConcurrentModificationException은 하나 이상의 스레드가 동시에 컬렉션을 수정하려고 할 때 발생하는 예외입니다. 이 예외가 발생하면 프로그램이 예기치 않게 종료될 수 있습니다. 따라서 이 예외를 발생시키는 원인과 이를 해결하기 위한 방법을 이해하는 것은 중요합니다 쉽게 설명해서, for(String key : map.keySet()){ map.put(key, 0) } 위 코드에서 map.keySet() 함수를 사용하여 key를 하나씩 참조하는 작업을 수행하는 스레드(Thread)가 있습니다. 이 스레드는 현재 map을 순회하고 있습니다. 이 동안, 다른 스레드가 map.put(key, value)와 같은..
[Java] Collection | 자바 List | ArrayList | 다양한 메소드
·
Java
List 란? List는 자바에서 제공하는 데이터 구조 중 하나이며, 여러 개의 데이터를 저장할 수 있는 자료형입니다. List는 배열과 비슷하게 인덱스를 사용하여 데이터에 접근할 수 있지만, 배열과 달리 크기가 가변적이므로 데이터의 추가, 삭제 등이 용이합니다 크기가 가변적이라는 것은 리스트(List)에 저장된 데이터의 개수가 변할 수 있다는 뜻입니다. 즉, 데이터를 추가하거나 삭제할 때마다 리스트의 크기가 동적으로 변화할 수 있습니다. 이와는 달리 배열(Array)은 미리 크기를 지정하고 데이터를 저장하는 것이기 때문에, 크기를 변경할 수 없습니다 List는 인터페이스로 정의되어 있고, ArrayList, LinkedList 등 다양한 구현체가 존재합니다. ArrayList는 내부적으로 배열을 사용하..