테스트 주도 개발이란 매우 짧은 개발사이클을 반복하는 SW개발 프로세스로서 개발자는 먼저 요구사항을 검증하는 자동화된 테스트케이스를 작성하고 그리고 그 TC를 통과하기 위한 최소한의 코드를 생성하며 마지막으로 코드를 표준에 맞게 리팩토링하는 과정으로 개발하는 것을 뜻한다. * 리팩토링이란?: 결과의 변경없이 코드의 구조를 재조정하여 가독성을 높이고 유지보수를 편하게 하는 행위
참고: http://blog.rightbrain.co.kr/?p=5810 1. 폭포수 모델 사람들이 가장 흔하게 쓰고 있고 어쩌면 당연하다고도 생각 될 만큼 익숙한 프로젝트 수행 방식이 "워터폴 모델"이다. 요구분석 설계디자인코딩개발 순으로 순차적으로 이어지는 흐름이 마치 폭포수 처럼 아래로 이어져 보인다 하여 이름이 붙여졌다. 워터폴 모델은 기술적으로 안정성이 있고 분업하기 쉽다는 장점이 있다.하지만 워터폴 모델의 치명적인 단점은 디자인이 구현되어 시각적으로 확인하거나, 개발을 통해 실제로 웹 또는 앱이 구동되는 모습을 보기 전까지, 고객들은 자신이 요구했던 사항들을 제대로 확인하기 어렵다는 단점이 있다. 2. 애자일 방법론 애자일 (Agile)은 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방..
SW품질관리에서 코드의 복잡한 정도를 수치화하면,특정 기준 이상이면 조치를 취해 복잡도를 제어할 수 있다. if/else/switch 등의 분기문을 많이 쓰면 복잡한 코드에 해당한다. 복잡한 정도를 수치화하는 방법 중 대표적인 것으로 사이클로매틱 복잡도가 있다. - 사이클로매틱 복잡도: 조건 복잡도라고도 불린다. 사이클로매틱 복잡도는 계산 방법에 따라서 여러가지로 나뉘는데 CC2라고 불리는 방법이 가장 엄격한 방법이다. SW 공학에서 가장 보편적으로 사용되는 복잡도 측정 방법이기도 하며, 여기에 Boolean에 대한 복잡도 까지 함께 계산하는 것이 CC2이다. CC2값이 높을 수록 코드가 복잡하다는 것을 의미한다. CC2 = (Decision 수의 합) + (추가 Boolean 연산의 합) + 1 여기서..
출처: http://www.softfactory.org/test/performance 1. 성능 테스트 성능 테스트는 시스템의 요소가 특정 상황에서 어느 정도의 성능을 보이는 지를 측정하는 것이다.성능 테스트의 메인목표는 어플리케이션의 결함을 찾는 목적이 아니라 시스템에 대한 벤치마킹 행위이다. 2. 부하 테스트 임계치의 한계에 도달할 때까지 시스템에 부하를 꾸준히 증가시키는 테스트를 말한다.발생시키는 부하는 실제 시스템에 적용될 예상 트래픽이어야 한다. 버퍼 오버플로우, 메모리 leak, 메모리 오류등의 문제를 밝혀내기 위한 것이다.시스템을 구성하는 DB, HW 등 모든 요소가 갖는 한계를 찾아서 장래의 부하를 대응하기 위함이다.특정된 비즈니스 시나리오 상에서 예상되는 동시 접속자 수가 최대인 것을 골..
출처 : http://blog.wishket.com/%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C-%EC%95%B1-%EC%9B%B9-%EC%95%B1-%ED%95%98%EC%9D%B4%EB%B8%8C%EB%A6%AC%EB%93%9C-%EC%95%B1-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0/ 1. 네이티브 앱 네이티브 앱은 모바일 기기에 직접 다운로드 하여 사용하는 앱이다.네이티브 앱은 사용자가 공용 앱스토어에서 직접 설치할 수도 있다.네이티브 어플을 만들기 위해서는 개발자가 사람이 읽을 수 있는 형식으로 소스코드를 작성하고, 다양한 OS별로 선언 파일이나 이미지, 오디오 등의 리소스를 만들어야 한다. 그 다..
출처 : https://eunguru.tistory.com/162 1. 확인 테스팅 : 결함이 발견되고 수정된 후에 원래의 결함이 성공적으로 제거 되었는지 확인하기 위해 다시 테스트하는것 2. 회귀 테스팅 : 결함 수정 이후 변경의 결과로 새로 도입되었거나 발견되지 않았던 또 다른 결함을 발견. 이미 테스트된 프로그램의 테스팅을 반복하는 것, Regression(톼행) 여부를 확인 하는 테스팅 결함은 테스트 중인 SW에 존재하거나 다른 관련이 있는 또는 전혀 관련이 없는 SW컴포넌트에 의해 존재 가능. SW또는 환경이 변경되면 회귀테스팅을 수행해야한다. (OS가 변경되는 경우) 수행 범위와 정도: 이전에 정상 동작했던 SW에서 결함을 발견하지 못해 야기될 수 있는 리스크에 바탕을 둔다. 모든 테스트 레벨..
출처: https://eunguru.tistory.com/162 1. 테스트 유형별 테스트 목적 1) 기능 테스팅- 소프트웨어가 수행하는 기능에 대한 품질 테스팅 2) 비기능 테스팅- 호환성, 신뢰성, 사용성과 같은 비기능적인 품질 특성을 테스팅 3) 구조적 테스팅- 소프트웨어나 시스템의 구조나 아키텍쳐에 대한 테스팅 4) 확인/회귀 테스팅- 유지 보수 테스팅에 많이 사용된다.- 변경 내용에 관련된 테스팅이다. 확인 테스팅 : 결함에 대한 수정이 이루어 졌는지에 대한 테스팅회귀 테스팅 : 의도하지 않은 변경을 찾는 테스팅