본문 바로가기

더 괜찮은 개발자가 되기위한/시스템 개발하기

(7)
웹 테스트 자동화 도구 셀레니움 □ 웹 테스트 자동화 도구 셀레니움 셀레니움은 프로그램을 통해 사람과 같이 브라우저를 제어할 수 있는 프로그램이다. 셀레니움은 웹 드라이버와 IDE 형식으로 제공되는데 웹 드라이버(Web Driver)는 C, 파이썬, 루비와 같은 프로그램 언어와 API 수준의 인터페이스를 제공하는 모듈이다. 웹 드라이버를 사용하면 프로그래밍을 통해 웹 스크롤러와 테스트 자동화 도구를 개발할 수 있다. 셀레니움 구성 셀레니움 IDE는 브라우저 플러그인 형태로 제공되는 실행 프로그램이다. 사용자의 브라우저 사용을 기록하고 재현할 수 있다. 간단한 클릭뿐만이 아니라 마우스를 이동하는 것과 로그인 까지 사람이 하는 모든 동작을 기록해서 저장하고 나중에 똑 같이 재현할 수 있다. 셀레니움 IDE를 통해 Record & Play ..
대표적인 단위테스트 도구 JUnit □ 대표적인 단위테스트 도구 JUnit JUnit은 이클립스로 개발하는 자바 환경에서 가장 많이 사용되는 단위 테스트 도구이다. 테스트 함수를 단일 패키지로 묶을 수 있으며 다양한 검증 함수를 지원해 프로그램이 반복적으로 수정되는 프로그램 개발 과정에서 테스트 케이스를 반복적으로 적용할 수 있다. 단위 테스트 시간을 획기적으로 줄일 수 있을 뿐만 아니라 테스트 품질도 향상시킬 수 있다. JUnit, 설정 JUnit을 이클립스에 기본적으로 내장되어 있지만 사용을 위해서는 라이브러리를 추가해 줘야 한다. 이클립스 프로젝트 환경설정에서 Java Build Path > Library > Add Library에서 JUnit을 추가해주면 된다. 사칙연산 프로그램 개발 본격적으로 JUnit을 사용하기 전에 테스트를 ..
프로그램 단위 테스트 □ 프로그램 단위 테스트 ○ 단위테스트란 단위테스트 절차 단위 테스트는 실행 가능한 최소 단위의 프로그램을 테스트하는 것을 말한다. 단위테스트는 중소 규모의 프로젝트에서는 개발자와 설계자가 진행하고 큰 규모의 프로젝트에서는 전문 테스터가 참여하기도 한다. 단위 테스트는 모두 5단계로 구성된다. 테스트 일정과 방법 그리고 담당자를 정의하는 단위 테스트 계획 단계가 있고 어떤 입력 값을 어떤 절차로 넣어 어떤 결과를 얻어야 하는지를 정하는 테스트 케이스 작성 단계가 있다. 단위 테스트는 테스트 케이스를 기반으로 수행하며 테스트가 완료되면 어떤 오류가 발생했는지 결함 보고서에 상세히 기록한다. 개발자는 이를 기반으로 프로그램을 다시 수정하게 된다. 프로젝트 일정이 짧고 투입 인력이 적은 국내 프로젝트의 특성 ..
효율적으로 코딩하기 □ 효율적으로 코딩하기 ○ 샘플 프로그램 만들기 고급 개발자에 의한 샘플 프로그램 만들기 유지보수가 효율적인 프로그램을 만들기 위해서는 코딩 표준을 참조해서 동일한 명명 규칙과 코딩 스타일을 적용해야 한다. 하지만 프로그램을 만들 때 개발자는 문서를 잘 읽지않는 경향이 있다. 읽고 공부하는 것보다 따라하고 옆 사람에게 물어보는게 훨씬 수월하기 때문이다. 프로젝트에서는 개발 효율을 높이고 코딩 품질을 높이기 위해 고급 개발자에게 샘플 프로그램을 먼저 개발하게 하는 경우가 많다. 표준을 준수하고 효율적으로 잘짜여진 샘플 프로그램이 주어 진다면 다른 개발자들은 고품질의 프로그램을 손 쉽게 만들 수 있다. ○ 코드 리뷰 코드 리뷰 코드 리뷰는 작성자가 여러 사람 앞에서 자신이 만든 코드를 직접 설명하는 방식으로..
팀으로 개발하기 □ 팀으로 개발하기 이클립스와 SVN 대표적인 형상관리 소프트웨어인 SVN은 파일이 형상을 시계열적으로 관리하는 기능을 제공하지만 팀 작업을 지원하는 기능도 제공한다. SVN은 서버와 클라이언트 방식으로 동작하는데 대표적인 개발 툴인 이클립스에서도 SVN 클라이언트 플러그인을 지원하고 있다. 체크아웃(Check Out)을 통해 서버에 있는 모든 소스를 클라이언트로 가져올 수 있다. 업데이트(Update)를 통해서는 클라이언트에 있는 소소를 서버 기준으로 최신 버전으로 유지할 수 있다. 팀작업에서 유용한 것이 바로 락(Lock)과 언락(Unlock)인데 여러 명이 작업할 때 자신이 프로그램을 변경할 경우 락을 걸어 다른 사람이 수정하지 못하도록 하는 것이 좋다. 작업이 완료된 후 커밋(Commit)을 통해..
개발환경 구축하기 □ 개발환경 구축하기 ○ 개발환경 구성 개발환경 구성 일반적인 프로젝트 개발 환경은 형상관리서버, 웹서버 그리고 DB 서버로 구성된다. 프로젝트 규모가 작은 경우에는 세 가지 시스템이 하나의 서버에 설치되기도 하지만 여력이 된다면 서로 기능과 역할이 다르기 때문에 별도의 서버로 구성하는 것이 좋다. 형상관리 서버는 여러 명의 프로그래머가 협업을 할 수 있도록 도와주고 프로그램과 산출물을 시계열적으로 관리하는 역할을 한다. 프로젝트에서는 하나의 프로그램을 한 명이 계속 개발하는 것이 아니라 다른 사람이 수정할 수 있기 때문에 프로그램에 대한 락(Lock)과 언락(Unlock) 기능을 필 수 적으로 지원해야 한다. (1) 공통 기능을 A 개발자가 수정하기 위해서는 먼저 프로그램에 대해 락을 걸로 수정해야 한..
개발 표준 정하기 □ 개발 표준 정하기 ○ 개발 표준 구성 프로젝트 설계의 개념 개발 표준은 모든 개발자가 동일한 형태의 소스코드를 만들기 위해 필요하다. 소스코드가 동일한 형태로 만들어지면 다른 사람이 개발한 소스를 쉽게 이해할 수 있어 프로그램을 쉽게 수정할 수 있다. 개발 표준은 프로그램 개발 생산성 향상뿐 아니라 프로그램 유지보수를 쉽게 하는 역할을 한다. 일반적으로 개발 표준은 디렉토리 구조와 서버 및 클라이언트 개발표준으로 나뉜다. 디렉토리 구조는 서버에 프로그램을 어떤 구조로 저장할 지에 대한 규칙을 정하는 것이다. 서버 개발 표준은 서버에서 동작하는 자바, php와 같은 프로그램에 대한 프로그램 구조를 정의하는 것이다. 클라이언트 개발 표준은 사용자 화면을 구성하는 HTML와 CSS, 자바스크립트에 대한 프..