how test java applications tips with sample test cases
이 자습서에서는 Java 응용 프로그램과 관련된 구성 요소와 버그가없는 고품질 응용 프로그램을 보장하기 위해 수행해야하는 다양한 유형의 테스트에 대해 알아 봅니다.
이것은 JAVA 애플리케이션 테스트에 대한 3 부작 시리즈.
- 이 기사에서는 J2EE 애플리케이션에 대한 J2EE 구성 요소와 수동 테스트 접근 방식에 대해 알아 봅니다.
- 두 번째에서는 자동화 된 테스트 J2EE 애플리케이션 테스트를위한 접근 방식
- 세 번째에서는 J2EE 애플리케이션 테스트에 사용할 수있는 포괄적 인 도구 목록을 검토합니다.
학습 내용 :
J2EE 애플리케이션 개요부터 시작하겠습니다.
에 자바 웹 애플리케이션은 각각 중요한 목적을 제공하는 여러 구성 요소로 구성됩니다. MVC 는 Model View Controller의 약자로 가장 인기 있고 자주 사용되는 건축 설계 패턴입니다.
테스트 방법을 배우기 전에 J2EE 응용 프로그램의 다양한 구성 요소.
- 클라이언트 / 브라우저 URL이있는 웹 주소를 요청합니다.
- JSP (Java Server Pages) – JSP 사용자에게 데이터를 제공하기위한 서버 측 기술입니다. HTML 페이지 내에 Java 코드를 삽입하는 데 도움이되는 JSP 태그라는 특수 태그의 도움으로 동적 컨텐츠 표시를 지원합니다. (정적 HTML은 항상 동일한 내용을 표시합니다). 런타임에 JSP는 Servlet으로 변환됩니다. 비즈니스 로직은 일반적으로 여기에 작성되지 않습니다.
- JSF (Java Server Faces) – JSF는 사용자 인터페이스의 효과적인 디자인을위한 뷰 컴포넌트 프레임 워크입니다.
- 자바 스크립트 / Jquery – 보기 / 화면의 클라이언트 측 유효성 검사에 사용되는 스크립팅 언어입니다.
- 서블릿 – 서블릿은 입력에서받은 데이터의 유효성을 검사하고 적절한 비즈니스 논리 코드를 선택하고 값을 Bean 코드로 전달합니다.
- EJB (Enterprise Java Bean) – 여기에서 전체 비즈니스 로직이 일반적으로 작성되고 처리됩니다. 그런 다음 Bean은 코드를 호출하여 데이터베이스를 읽거나 쓰거나 업데이트합니다. 데이터베이스 작업이 완료되면 응답이 서블릿으로 다시 전송되고 결과를 표시 할 적절한 JSP가 차례로 선택됩니다.
- 웹 서비스 - 웹 서비스는 별도의 서버에서 실행되고 HTTP 프로토콜을 통해 통신하는 응용 프로그램의 구성 요소입니다.
- 데이터베이스 – 응용 프로그램의 전체 데이터를 저장합니다.
모든 웹 응용 프로그램이 JSP-> 서블릿-> EJB-> 데이터베이스 모델 . 대부분의 J2EE 애플리케이션은 현재 Struts, Spring 또는 Hibernate와 같은 프레임 워크로 작성되었습니다. 응용 프로그램의 디자인은 응용 프로그램의 크기, 비용, 개발 시간, 리소스 및 팀 규모에 따라 각 요구 사항에 따라 다릅니다.
JAVA / J2EE 애플리케이션 테스트
이제 전체 J2EE 애플리케이션 테스트로 이동하겠습니다. 이는 여러 단계로 수행됩니다.예를 들면, 우리는 세 화면 :
- 로그인 화면
- 조직의 모든 직원을 나열하는 직원 디스플레이 화면
- 직원 수정 / 추가 / 삭제 화면.
이 세 화면의 UI (사용자 인터페이스)는 JSP / HTML 및 JavaScript를 통해 수행되는 유효성 검사로 개발되었습니다. 샘플 애플리케이션이므로 로직은 Servlet 및 DAO (Data Access Object)에 있습니다. DAO는 데이터베이스에 연결하기위한 클래스입니다.
다음은 샘플 화면입니다.
수동 Java 애플리케이션 테스트 :
수동 JAVA 테스트 중에 테스터는 세부 설계 문서에서 테스트 케이스를 준비하고 가능한 모든 시나리오와 코드 스 니펫을 다루려고합니다.
# 1) 자바 단위 테스트
단위 테스트는 테스트의 한 유형입니다. 여기서 사용자는 정확성, 정확성 및 요구 사항 충족을 위해 가장 작은 코드 조각을 테스트해야합니다.
우리가로그인 화면의 예. 로그인 화면에는 사용자 이름과 암호라는 두 개의 텍스트 필드가 있으며 제출 및 취소 버튼이 두 개 있습니다.
테스트 케이스는 모든 루프와 조건문을 포함해야합니다. 테스트 케이스는 예상 결과와 테스트 데이터를 표시해야합니다. 다음은 사용자가 로그인 화면에서 수동으로 실행할 수있는 몇 가지 일반적인 테스트 사례입니다. 결과는 테스트 케이스 문서에 기록됩니다.
다음은 로그인 화면에 대한 샘플 테스트 케이스 형식입니다.
S. 아니. | 테스트 케이스 | 예상 결과 | 실제 결과 | 통과 실패 |
---|---|---|---|---|
4 | 사용자가 10 자 이상의 사용자 이름을 입력합니다. | 에러 메시지 '사용자 이름은 10 자 이하 여야합니다.'가 표시되어야합니다. | 오류 메시지가 표시되지 않습니다 | 불합격 |
하나 | 사용자는 사용자 이름, 암호 레이블의 모양을 확인합니다. | 레이블의 철자가 정확하고 보통 크기의 글꼴로 표시되어야합니다. | 레이블 사용자 이름과 암호가 올바르게 표시됩니다. | 통과하다 |
두 | 사용자가 버튼의 모양을 확인합니다. 제출 및 취소 | 버튼은 올바른 이름으로 표시되어야합니다. | 제출 및 취소 버튼이 올바르게 표시됩니다. | 통과하다 |
삼 | 사용자가 화면의 배경색을 확인합니다. | 로그인 양식은 흰색 테이블 안에 있어야하며 화면은 배경이 회색이어야합니다. | 화면 모양이 요구 사항과 일치하지 않습니다. | 불합격 |
4 | 사용자는 사용자 이름 텍스트 상자를 공백으로 둡니다. | '사용자 이름은 비워 둘 수 없습니다'라는 오류 메시지가 표시되어야합니다. | '사용자 이름은 비워 둘 수 없습니다'라는 오류 메시지가 표시됩니다. | 통과하다 |
5 | 사용자는 사용자 이름 텍스트 상자에 일부 값을 입력하고 암호 텍스트 상자는 공백으로 둡니다. | '비밀번호는 비워 둘 수 없습니다'라는 오류 메시지가 표시되어야합니다. | '비밀번호는 비워 둘 수 없습니다'라는 오류 메시지가 표시됩니다. | 통과하다 |
6 | 사용자는 'abcd'로 사용자 이름을 입력하고 'xxxx'로 암호를 입력합니다. | 에러 메시지 '잘못된 사용자 이름 암호 조합' 표시되어야합니다 | 에러 메시지 '잘못된 사용자 이름 암호 조합' 표시됩니다 | 통과하다 |
5 | 사용자는 'testuser'로 사용자 이름을 입력하고 'password'로 암호를 입력하고 제출 버튼을 클릭합니다. | 사용자는 '직원 세부 정보 화면'을 볼 수 있어야합니다. | 직원 세부 정보 화면이 표시됩니다. | 통과하다 |
표에는 일부 테스트 사례가 나열되어 있지만 전체 목록은 다음과 같습니다.
- NULL 포인터 예외를 포함한 모든 예외 확인
- 사용자 이름과 암호에 NULLS가 허용되지 않는지 확인하십시오.
- 사용자 이름 / 암호가 올바른 형식인지 확인
- 사용자 이름에 숫자가 허용되지 않는지 확인
- 사용자 이름에 특수 문자가 허용되지 않는지 확인하십시오.
- 사용자 이름과 비밀번호의 올바른 조합을 입력했는지 확인하면 응용 프로그램이 다음 화면, 즉 직원 정보 화면으로 이동합니다.
- 입력 한 사용자 이름이 올바른 길이인지 확인하십시오.
- 사용자 이름 텍스트 필드가 해당 필드에 지정된 최대 문자 수만 허용하는지 확인하십시오.
- 요구 사항에 지정된 경우 암호 필드가 입력하는 동안 *로 표시되는지 확인하십시오.
- 비밀번호가 대소 문자를 구분하는지 확인
- 사용자 이름이 대소 문자를 구분하지 않는지 확인
- 종료 후에도 로그인 페이지가 사용자 이름 또는 비밀번호를 기억하지 않는지 확인
- 제출 및 취소 버튼이 요구 사항에 따라 작동하는지 확인
- 응용 프로그램을 처음 사용하는 경우 사용자 이름에 응용 프로그램 입력 권한이 있는지 확인하십시오.
- 데이터베이스에서 사용자 이름 / 비밀번호 조합을 삭제하고 해당 조합이 다시 로그인 할 수 없는지 확인하십시오.
- 위의 모든 경우에 적절한 유효성 검사 오류 메시지가 표시되는지 확인하십시오.
- 라벨 및 버튼이 화면의 올바른 위치에 있고 텍스트가 올바르게 표시되는지 확인합니다.
- 화면 모양이 요구 사항에 맞는지 확인하십시오.
- 예외 처리 여부 확인
- 필요한 작업에 대해 로깅이 수행되었는지 확인
테스트 사례를 살펴본 후 특정 화면의 필드, 버튼, 기능 및 유효성 검사를 주로 처리하고 있음을 알 수 있습니다. 단위 테스트는 모든 작은 코드 조각과 구성 요소의 테스트를 매우 예리하게 다루기 때문에 정확합니다. 모든 화면에 대해 동일한 유형의 테스트를 수행해야합니다.
위의 내용은 예시 일 뿐이며 테스트 케이스는 프로젝트 별 세부 설계 문서를 기반으로 작성되었습니다.
또한 읽기=> 사용 가능한 테스트 케이스 샘플 과 테스트 시나리오 웹 애플리케이션 테스트 용.
# 2) 통합 테스트
통합 테스트에서는 개별 모듈이 통합되고 정확성을 위해 함께 테스트됩니다.
유튜브 비디오 다운로더 소프트웨어 무료 다운로드
위의 예에서 세 가지 화면을 각각 세 명의 다른 팀원이 개발하도록합니다. 이제 단위 테스트를 마쳤으므로 모든 코드를 통합하고 잘 작동하는지 확인해야합니다. 데이터 또는 컨트롤이 한 화면에서 다른 화면으로 올바르게 전송되는지 확인하기 위해 통합 테스트가 수행됩니다.
Employee Application 예제에 대한 몇 가지 샘플 통합 테스트 사례는 다음과 같습니다.
- 로그인 한 사용자와 세션이 다른 모든 새로운 통합 화면에서 동일한 지 확인하십시오.
- 다른 모듈이 불필요하게 데이터베이스의 레코드를 업데이트 / 삭제 / 삽입하지 않는지 확인하십시오.
- 추가시 '신규', 수정시 '업데이트 됨', 삭제시 '삭제됨'이라는 직원 상태 필드가 있습니다. 두 개 또는 세 개의 화면에서 동일한 상태 필드를 사용할 수 있지만 필드가 잘못 업데이트되지 않도록하는 것이 중요합니다.
- 통합 후 머리글, 바닥 글, 화면 크기 및 모양이 요구 사항을 충족하는지 확인
- 제출 버튼을 클릭하면 컨트롤이 다음 화면으로 전송되는지 확인합니다.
- 취소 버튼을 클릭하면 수행 된 작업이 취소되었는지 확인합니다.
또한 J2EE 애플리케이션에 대한 일반 통합 테스트 케이스는 다음과 같습니다.
- 끝에서 끝까지 개체, XML 또는 세션의 데이터 흐름을 확인합니다. 정확성을 확인하십시오.
- 각 모듈에서 세션이 올바르게 관리되는지 확인
- 외부 응용 프로그램 (웹 서비스)이 관련된 경우 응용 프로그램이 응용 프로그램에서 호출하고 데이터를 다시 검색 할 수 있는지 확인합니다.
# 3) 시스템 테스트
시스템 테스트에서 전체 애플리케이션은 요구 사항과 관련하여 기능 및 완전성을 테스트합니다. 모든 구성 요소의 단위 테스트가 수행되고 코드 구성 요소도 통합 테스트 중에 함께 결합되고 테스트되는 시점을 묻는 것이 더 쉬울 것입니다. 시스템 테스트에서 무엇이 다를 수 있습니까? 시스템 테스트의 아이디어가 응용 프로그램을 중단하는 것이라고 말하는 것은 정확하지 않습니다. :)
시나리오 # 1 : 프레임 워크를 사용하여 새 직원 애플리케이션을 개발합니다.예를 들면, Struts. 조직의 다른 서버에서 실행되는 다른 여러 응용 프로그램도 있습니다. 그러나 그들 모두는 동일한 기존 웹 서비스를 호출하여 특정 사람의 주소와 전화 번호를 가져옵니다.
통합 테스트 중에 애플리케이션이 웹 서비스를 호출 할 수 있는지 그리고 응답을받을 수 있는지 테스트했을 것입니다. 하지만 웹 서비스 자체에 문제가 있다면 어떨까요? 아니면 웹 서비스가 일부 드문 입력에 응답하지 않습니까? 우리의 경우 웹 서비스는 직원 번호를 최대 6 자까지만 사용할 수 있습니다. 또는 웹 서비스는 반환하는 동안 특정 주소 형식에 대한 예외를 throw합니다. 이것은 외부 적이지만 시스템 테스트의 일부이기도합니다.
시나리오 # 2 : 직원 지원이 완료되었습니다. 직원을 추가하면 직원 번호 # 1001이 생성됩니다. 수정, 삭제, 업데이트, 추가, 수정, 삭제, 추가, 추가, 추가, 수정, 삭제 후 마지막으로 다른 항목을 추가합니다. 새 직원 번호가 다시 # 1001이면 어떻게됩니까?
시나리오 # 3 : 두 명의 사용자가 동시에 애플리케이션을 사용하고 있다고 가정 해 보겠습니다. 둘 다 같은 직원에서 일하기 시작하고 한 사람은 삭제합니다. 다른 사용자가 세션에 저장된 것과 동일한 직원의 수정을 진행할 수 있다면 어떻게합니까?
다음은 시스템 테스트의 몇 가지 중요한 측면입니다.
- 데이터 흐름 및 제어가 올바른지 확인하십시오. 끝으로 종료
- 거래 데이터의 보안 보장
- 애플리케이션이 모든 비즈니스 기능을 따르는 지 확인
- 응용 프로그램이 최종 제품으로 잘 작동하는지 확인합니다. 끊어진 링크, 세션 관리, 쿠키, 로깅, 오류 처리, 예외 처리, 유효성 검사 및 트랜잭션 흐름을 확인합니다.
# 4) 성능 테스트
이러한 유형의 테스트는 응용 프로그램을 사용하는 사용자가 많거나 데이터베이스에있는 데이터 양이 많거나 둘 다를 사용하는 경우에 수행됩니다. 다음은 몇 가지 경우입니다.
- 여러 사용자가 동시에 로그인하는 경우 응용 프로그램이 중단 / 충돌하지 않는지 확인하십시오.
- 데이터베이스에서 많은 양의 데이터를 사용할 수있는 경우 – 검색 화면 그리드가 세션 시간 초과 전에 쿼리를 실행하는 데 오래 걸리지 않는지 확인합니다.
- 다중 스레드 환경에서 응용 프로그램이 모든 스레드를 잘 처리 할 수 있는지 확인합니다.
- 많은 수의 객체가 생성되는 애플리케이션에서 충분한 메모리가 할당되었는지, 가비지 콜렉션이 처리되었는지, 메모리 부족 예외가 없는지 확인하십시오.
결론
이 기사에서는 J2EE 애플리케이션의 개요를 다뤘습니다. 또한 예제를 통해 애플리케이션의 각 구성 요소에 대해 단위, 통합, 기능 및 시스템 테스트를 수동으로 수행하는 방법도 살펴 보았습니다.
에서 다음 기사 , 자동화 테스트가 대규모 J2EE 애플리케이션에 어떻게 도움이 될 수 있는지 살펴볼 것입니다.
저자 정보 : 이것은 Padmavaty S의 게스트 기사입니다. 전체 7 년 이상의 소프트웨어 테스트 경험을 가진 그녀는 Java, J2EE, MVC 및 Struts 프레임 워크 테스트에 대한 광범위한 경험을 가지고 있습니다.
JAVA 애플리케이션을 테스트하고 있다면 알려주세요. 아래 의견에 경험과 질문을 공유하십시오.
추천 도서
- ISTQB 테스트 인증 샘플 질문 문서 (답변 포함)
- JAVA / J2EE 응용 프로그램의 자동화 테스트를 수행하는 방법 (2 부)
- 최고의 소프트웨어 테스트 도구 2021 (QA 테스트 자동화 도구)
- 애플리케이션을 테스트하기 전에 읽어야 할 20 가지 실용적인 소프트웨어 테스트 팁
- 의료 애플리케이션 테스트-팁 및 중요 테스트 시나리오 (2 부)
- 응용 프로그램에서 버그를 찾는 방법? 팁과 요령
- JMeter를 사용한 데이터베이스 테스트
- Java Virtual Machine : JVM이 Java 응용 프로그램을 실행하는 데 도움이되는 방법