Testing 3

[Software Testing] Modern Symbolic Execution

white-box testing에서는 symbolic execution 기법을 사용한다.symbolic execution, 기호실행은 symbolic 변수를 사용하여 프로그램 input을 symbolic 변수로 교체하는 테스팅 기술이다.여기서 symbolic 변수로 교체하는 것에 그치지 않고 프로그램 실행까지 진행하는 것을 Dynamic symbolic execution이라고 하는데, 여기에 대해 좀 더 자세히 알아보자 Dynamic Symbolic Execution의 두 가지 방법1. Concolic Testing (CREST)2. Execution-Generated Testing (KLEE) Concolic Testing: Concrete + Symbolic 프로그램을 실제 값(Concrete E..

Study 2024.08.15

[Software Testing] Black-box, White-box, and Gray-box testing

테스팅 방법은 크게 black-box teseting, while-box testing으로 나뉜다.프로그램 안의 소스코드를 보느냐(white), 안 보느냐(black, 어두워서 안 보이는 건가..)의 차이다.그리고 그 사이에는 gray-box testing이라는 것도 있다.이것들이 뭔지, 비교하며 알아보자! Black-box, While-box Testingblack-box testingfuzzing : 소프트웨어에 입력값을 무작위로 대입해 보고, 그 과정에서 발생하는 에러나 충돌을 모니터링해서 보안의 허점을 찾아내는 방식.소스코드 없이 테스트를 진행.비용은 싸지만, naive 하다.*naive 하다 : 직관적, 표면적이란 의미로 사용. 내부의 구체적인 로직을 고려하지 않고, 주어진 기능에 대해 단순히..

Study 2024.08.14

[Software Testing] 소프트웨어 테스팅(Software Testing)과 Code Coverage

소프트웨어 제품이나 어플이 잘 작동하는지 검증하기 위해, 소프트웨어 테스트는 필수적이다.소프트웨어 테스트는 어떻게 할까?소프트웨어 테스팅에 대해 알아보자!! Software Testing- what오류를 찾기 위해 입력(테스트케이스)을 자동생성하는 기술 - why우리의 돈과 시간을 잃지 않기 위해 필요소프트웨어 버그를 빠르게 찾기 위함 - howcode coverage를 최대화code coverage : 코드 구문 중 몇 줄이 실행되었는가완벽한 방법은 아니지만, 프로그램에서 더 많은 코드를 실행할수록, 발견하는 프로그램 버그 수도 늘 것이라 생각 coverage metrix(커버리지 지표) : line, branch, path, ,,,line coverage : 실행된 라인의 #branch covera..

Study 2024.08.13