database crud testing through ui with sample test cases
CRUD 작업이란 무엇이며 UI를 통해 CRUD 테스트를 수행하는 방법 :
인간은 수십 년 전에 정보를 저장하기 시작했습니다! 그리고 그 당시에는 모든 데이터가 파일에 저장되는 컴퓨팅 히스토리에서 플랫 파일 데이터베이스가 사용되었습니다.
나중에 1970 년대 초 IBM은 데이터를 쉽게 가져올 수있는 '인덱스'를 도입 한 최초의 관계형 데이터베이스 모델을 개발했습니다.
학습 내용 :
- CRUD 작업 개요
- 데이터베이스 테스트가 중요한 이유는 무엇입니까?
- 4 가지 기본 데이터베이스 기능
- CRUD의 정의
- CRUD 테스트
- 소프트웨어의 CRUD 기능을 테스트하는 방법은 무엇입니까?
- 결론
- 추천 도서
CRUD 작업 개요
현재 가장 일반적인 데이터 저장 시스템은 데이터 베이스 소프트웨어가 쿼리를 통해 데이터를 생성, 읽기, 업데이트 및 삭제하는 곳입니다. 컴퓨터 소프트웨어는 적절하게 설계된 데이터베이스 및 쿼리를 통해 사용자 요구 사항에 빠르고 효과적인 방식으로 응답 할 수 있습니다.
이것은 데이터베이스의 테스트 및 검증이 매우 중요한 요소임을 의미합니다.
오류 메시지, 성공 메시지 등과 같은 그래픽 사용자 인터페이스 (GUI) 응답은 거의 모든 테스트 관리자에게 매우 중요한 것으로 간주됩니다. GUI는 사용자가 볼 수있는 애플리케이션의 가시적 인 부분이기 때문입니다. 그러나 데이터베이스 테스트는 똑같이 중요합니다.
내 경험을 통해 나는 이것을 지루한 작업으로 생각하는 많은 수동 테스터를 보았지만 실제로는 그렇지 않습니다.
이 튜토리얼에서는 사용자 인터페이스 및 MySQL 쿼리를 통한 블랙 박스 데이터베이스 기능 테스트를 간단한 예제와 함께 간단한 방식으로 설명합니다.
데이터베이스 테스트가 중요한 이유는 무엇입니까?
아래에 주어진 요점은 데이터베이스 테스트의 중요성을 훨씬 간단하게 설명합니다.
- 데이터는 중요한 자산이며 저장하고 보호해야합니다.
- 데이터베이스는 새로운 기술과 플랫폼으로 복잡해지고 있습니다. 따라서 버그가 발생할 가능성이 높아집니다.
- 데이터베이스에 저장된 값과 관련된 중요한 기능이있을 수 있습니다.
- 데이터베이스 또는 쿼리의 문제로 인해 주요 기능 문제가 발생할 수 있습니다.
- 데이터가 올바르게 매핑되었는지 확인합니다.
데이터베이스 테스트는 단위 테스트로 수행 할 수 있습니다. 블랙 박스 테스트 , 화이트 박스 테스트 회색 상자 텍스트입니다.
4 가지 기본 데이터베이스 기능
데이터베이스 기반 소프트웨어에는 일반적으로 아래 예에서 명확하게 알 수있는 네 가지 주요 기능이 있습니다.
예 1 :
가장 유명한 소셜 네트워킹 웹 사이트 인 Facebook.
- 새 계정을 만들 수 있습니다.
- 계정 세부 정보보기
- 계정 세부 정보 편집
- 계정 삭제
- 댓글을 작성할 수 있습니다.
- 보기
- 편집
- 그들을 삭제
예 2 :
유명한 채용 정보 검색 웹 사이트 인 LinkedIn :
다음 중 반응 형 디자인을 테스트하는 데 적합한 방법이 아닌 것은 무엇입니까?
- 프로필을 만들 수 있습니다.
- 보기
- 편집
- 삭제
- 게시물을 추가 할 수 있습니다.
- 보기
- 편집
- 그들을 삭제
여기에서 일련의 일반적인 활동을 보셨나요?
예! 당신이 옳습니다.
대부분의 소프트웨어는 이러한 용어의 생성,보기, 편집 및 삭제 기능을 지원합니다. 잔인한 온다.
CRUD의 정의
컴퓨터 프로그래밍에서 잔인한 생성, 읽기, 업데이트 및 삭제를 의미합니다. 영구 저장소의 네 가지 주요 및 기본 기능입니다. 이들은 종종 양식을 통해 소프트웨어 응용 프로그램에서 수행됩니다.
- 창조하다 – 데이터베이스에 항목을 삽입합니다.
- 읽다 또는 검색 – 데이터베이스에서 항목을 선택하고 봅니다.
- 최신 정보 – 항목을 완전히 또는 부분적으로 업데이트합니다.
- 지우다 또는 삭제 – 항목을 삭제 / 삭제합니다.
소프트웨어 요구 사항에 따라 CRUD주기가 다를 수 있습니다.
예를 들면 : 때때로 영업 사원이 계정을 만들고 사용자가 그것을 봅니다. 사용자에게 편집 또는 삭제할 권한이 없을 수 있습니다. 반면에 요구 사항은 사용자가 자신의 계정을 만들고 영업 사원이 계정을 확인하고 승인하는 것입니다. 이러한주기는 테스터의 관점에서 매우 중요합니다.
위에서 설명한 기능의 경우 데이터베이스에서 실행되는 해당 쿼리가 있습니다.
다음은 각 작업에 대한 MYSQL 쿼리의 예입니다.
동작 | 샘플 쿼리 |
---|---|
창조하다 | INSERT INTO table_name (열 1, 열 2, 열 3, ...) VALUES (값 1, 값 2, 값 3, ...); |
읽다 | SELECT * from table; |
최신 정보 | table_name 업데이트 SET 열 1 = 값 11, 열 2 = 값 22 WHERE 조건; |
지우다 | DELETE FROM TABLE table_name 여기서 column1 = 'value11'; |
CRUD의 세 가지 변형은 다음과 같습니다. 빵 (찾아보기, 읽기, 편집, 추가, 삭제), 데이브 (삭제, 추가,보기, 편집) 및 쓰레기 (생성, 복제, 추가, 처리).
CRUD 테스트
CRUD 테스트는 데이터베이스 기능에 대한 블랙 박스 테스트입니다.
아시다시피 블랙 박스 테스트는 테스트 소프트웨어 시스템을 '블랙 박스'로 간주하고 테스트는 UI를 통해 수행됩니다.
계정 등록, 개인 정보 편집, 세부 정보보기, 계정 삭제 등과 같은 모든 프런트 엔드 작업에는 데이터베이스에 해당하는 CRUD 작업이 있다는 것을 이해했습니다. 이러한 조치가 데이터베이스에 제대로 반영되는지 확인하기 위해 CRUD 테스트가 수행됩니다.
CRUD 테스트는 사용자 등록 후 '계정이 성공적으로 생성되었습니다'와 같은 성공 메시지를 확인하는 일반적인 블랙 박스 프런트 엔드 테스트와 다릅니다. 여기서 우리는 계정 세부 정보가 실제로 데이터베이스에 입력되고 있는지 확인해야합니다.
수동 테스터가이를 수행 할 수있는 두 가지 방법이 있습니다.
# 1) 자체적으로 쿼리 실행- SQL 언어 및 소프트웨어 요구 사항을 잘 이해하고있는 테스터는 자체 쿼리를 만들어 데이터베이스를 테스트 할 수 있습니다. 이렇게하면 가능한 모든 사례를 좋은 쿼리로 확인할 수 있습니다.
# 2) 개발자의 도움으로 쿼리 실행- 테스터는 애플리케이션의 사용자 인터페이스를 확인하고 개발자로부터 쿼리를받을 수 있습니다.
CRUD 작업에 대한 테스트 사례를 작성하는 동안 다음 질문을 고려해야합니다.
- 어떤 종류의 CRUD 작업이 유효하고 테스트 애플리케이션에 대해 유효하지 않은 것은 무엇입니까?
- CRUD 작업은 서로 어떤 관계를 가지고 있어야합니까?
- CRUD 작업은 언제 실행됩니까?
- 누가 CRUD 기능에 액세스합니까? 시스템이 사용자마다 다른 권한을 설정합니까?
일반 테스트 프로세스 DB 테스트 일반적인 수동 블랙 박스 GUI 테스트와 크게 다르지 않습니다.
처럼,
1 단계: 테스트 환경을 준비하십시오.
2 단계: 테스트 단계를 실행하십시오.
3 단계 : 테스트 결과를 확인하십시오.
4 단계 : 예상 결과에 따라 실제 결과를 검증합니다.
5 단계 : 버그 및 기타 발견 사항을보고합니다.
테스트 결과를 확인하기 위해 GUI 응답과 Query 결과를 사용합니다. CRUD 블랙 박스 테스트의 경우 SELECT라는 쿼리 만 필요합니다.
우리 모두 알다시피 데이터베이스는 데이터를 저장합니다. 데이터를 검색해야 할 때 SELECT 쿼리가 사용됩니다. 블랙 박스 테스트에서는이 쿼리를 사용하여 UI를 통한 작업이 데이터베이스에 적절한 반영을 표시하는지 확인해야합니다.
Mac에서 .dat 파일을 여는 방법
‘SELECT’는 다음과 같은 방식으로 사용할 수 있습니다.
#1) 테스터가 모든 데이터를 확인하고 확인하려는 경우 SELECT 쿼리에서 시작 기호 (*)를 사용할 수 있습니다. 이것은 가장 간단한 형태의 SELECT 쿼리입니다.
SELECT * FROM table_name;
위의 문은 table_name 테이블의 모든 행에서 모든 필드를 선택합니다.
# 2) 경우에 따라 첫 번째 쿼리 결과가 지저분해질 수 있습니다. 테스터가 일부 필드에만 관심이있는 경우 다음 스크립트를 사용할 수 있습니다.
SELECT ‘field_1’, ‘field_2’, ‘field_3’ FROM table_name;
위의 문은 table_name 테이블의 모든 행에서‘field_1’,‘field_2’및‘field_3’필드를 선택합니다.
#삼) 테스터가 모든 기준에 따라 결과를보고 싶다면 WHERE 절을 사용할 수 있습니다.
SELECT ‘field_1’ FROM table_name WHERE field_2 = ‘success’;
위의 문은 table_name 테이블의 모든 행에서‘field_1’필드를 선택합니다. 여기서‘field2’는‘success’입니다.
소프트웨어의 CRUD 기능을 테스트하는 방법은 무엇입니까?
다음을 고려하세요 예 MySQL 데이터베이스를 사용하여 데이터를 저장하기위한 특정 사용자 권한을 허용하는 사용자 인터페이스의.
예 | 데이터베이스 세부 정보 |
---|---|
1. '제품 추가'양식을 사용하여 제품 이름, 제품 설명, 제품 가격을 포함한 모든 세부 정보로 제품을 생성 할 수 있습니다. | 데이터베이스 : Shopping_DB 표 : 제품 필드 : product_name, product_details, product_price 해당 필드에 세부 정보가 추가 된 '제품'테이블에 행을 생성합니다. |
2. '상품 상세 페이지'에서 상품명, 상품 설명, 상품 가격에 대한 상세 정보를 읽을 수 있습니다. | 데이터베이스 : Shopping_DB 표 : 제품 필드 : product_name, product_details, product_price 모든 데이터를 선택하거나 '제품'테이블에서 특정 데이터를 선택합니다. |
3. '제품 편집'양식을 사용하여 제품 이름, 제품 설명, 제품 가격을 업데이트 할 수 있습니다. | 데이터베이스 : Shopping_DB 표 : 제품 필드 : product_name, product_details, product_price '제품'테이블의 특정 행에있는 모든 세부 정보 또는 특정 세부 정보를 업데이트합니다. |
4. 제품을 삭제할 수 있습니다 | 데이터베이스 : Shopping_DB 표 : 제품 필드 : product_name, product_details, product_price 테이블을 삭제하거나 테이블에서 특정 행을 삭제하여 '제품'테이블의 모든 세부 사항을 삭제하십시오. |
이 경우에 CRUD 기능을 어떻게 확인할 수 있는지 확인해 보겠습니다.
노트 :이 테스트로 인해 데이터베이스가 변경 될 수 있으므로 항상 데이터베이스 덤프에서 CRUD 테스트를 수행하십시오. 아래 명령을 사용하여 전체 데이터베이스를 덤프 할 수 있습니다.
$ mysqldump -u (uname) -p (pass) Shopping_DB> Shopping_DB_backup.sql
# 1) CREATE 기능
새 제품 항목을 추가하면 다음 단계를 따를 수 있습니다.
- '제품 추가'양식을로드합니다.
- 제품 이름을 입력하고‘테스트 이름’이라고 말하세요.
- 제품 설명을 입력하고 '이것은 테스트 제품 세부 정보입니다'라고 말합니다.
- 제품 가격을 입력하고‘100’이라고 말하세요.
- 양식을 제출하십시오.
결과 확인 :
- 테스터는 제품이 소프트웨어 응용 프로그램의 프런트 엔드에 모든 세부 정보와 함께 표시되는지 수동으로 확인합니다.
- 테스터는 MYSQL 데이터베이스 서버에서 쿼리를 실행하여 특정 행이 있는지 확인합니다.
질문:
웹 개발에 필요한 도구
SELECT * FROM products WHERE product_name = ‘test name’;
MySQL의 쿼리 결과 :
해당 세부 정보가있는 행이 다음과 같이 표시되어야합니다.
mysql> SELECT * FROM products WHERE product_name =‘테스트 이름’; + ------------- + ----------------------------- + ----- ------------ + | 제품 _ 이름 | product_details | product_price | + ------------- + ----------------------------- + ----- ------------ + | 테스트 이름 | 이것은 테스트 제품 세부 사항입니다 | 100 | |
고려해야 할 기타 사례 :
- 일부 시스템의 경우 사용자마다 다른 권한이 있습니다. 이 경우 테스터는 각 사용자 역할에 대한 응답을 확인해야 할 수 있습니다.
- 중복 제품이 허용되지 않는 경우 테스터는 동일한 세부 사항을 가진 제품을 다시 한 번 추가하여 확인할 수 있습니다. 이번에는 데이터베이스에 동일한 제품에 해당하는 두 번째 항목이 없어야합니다.
- 소프트웨어가 한 번에 여러 제품 생성을 허용하는 경우 테스터는 제출 된 모든 제품의 모든 세부 정보가 데이터베이스에 올바르게 입력되었는지 여부를 확인할 수 있습니다.
- 다른 입력 조합을 시도하십시오.
- 서버 다운 타임 동안 어떤 일이 발생하는지 확인하십시오.
# 2) 읽기 기능
작성된 항목을 읽을 수 있는지 확인하려면 다음 단계를 따르십시오.
- 테스트 이름 1, 테스트 이름 2, 테스트 이름 3과 같이 CREATE 기능을 통해 다른 입력 조합으로 일부 제품을 만듭니다.
- 제품을 검색해보십시오.
결과 확인 :
- 테스터는 제품 세부 정보가 올바른지 수동으로 확인합니다.
- 테스터는 데이터베이스에 저장된 세부 사항과 세부 사항을 비교합니다.
질문:
SELECT * FROM 제품 WHERE product_name =‘test name 1’OR product_name =‘test name 12’OR product_name =‘test name 3’; |
MySQL의 쿼리 결과 :
선택한 제품의 세부 정보가 표시되어야합니다. 테스터는이를 확인하고 UI의 결과와 비교할 수 있습니다.
mysql> SELECT * FROM products WHERE product_name = 'test name 1'OR product_name = 'test name 12'OR product_name = 'test name 3'; + ------------- + ----------------------------- + ----- ------------ + | 제품 _ 이름 | product_details | product_price | + ------------- + ----------------------------- + ----- ------------ + | 테스트 이름 1 | 이것은 테스트 제품 세부 사항입니다 1 | 100 | | 테스트 이름 2 | 이것은 테스트 제품 세부 사항 2 | 100 | | 테스트 이름 3 | 이것은 테스트 제품 세부 사항 3 | 100 | |
고려해야 할 기타 사례 :
- 한 번에 하나씩 항목을 봅니다.
- 한 번에 여러 항목을 봅니다.
- 존재하지 않는 항목을 보려고합니다.
- 다른 조건으로 검색해보십시오.
- 다른 사용자 역할에 대한 기능을 확인하십시오.
- 서버 다운 타임 동안 어떤 일이 발생하는지 확인하십시오.
# 3) 업데이트 기능
기존 항목을 편집하거나 업데이트하려면 다음 단계를 따르십시오.
- CREATE 기능을 사용하여 제품을 만듭니다.
- 제품의 다른 필드를 편집하고 '테스트 이름'에서 'V Neck Top'까지 말하세요.
- 제출
결과 확인 :
- 테스터가 제품 세부 정보가 변경되었는지 수동으로 확인합니다.
- 테스터가 MYSQL 쿼리를 실행하고 세부 정보를 봅니다.
질문:
SELECT * FROM products WHERE product_name = ‘V Neck Top’;
MySQL의 쿼리 결과 :
해당 세부 사항이있는 행이 표시되어야합니다.
mysql> SELECT * FROM products WHERE product_name =‘V Neck Top’; + ------------- + ----------------------------- + ----- ------------ + | 제품 _ 이름 | product_details | product_price | + ------------- + ----------------------------- + ----- ------------ + | V 넥 탑 | 이것은 테스트 제품 세부 사항입니다 | 100 | + ------------- + ----------------------------- + ----- ------------ + |
이전 제품 이름으로 검색하면 데이터베이스에서 세부 정보를 반환하지 않아야합니다.
고려해야 할 기타 사례 :
- 한 번에 여러 항목을 업데이트합니다.
- 이미 존재하는 키 값으로 업데이트하십시오.
- 모든 세부 사항 또는 부분 세부 사항을 업데이트하십시오.
- 다른 입력 조합으로 필드를 업데이트하십시오.
- 다른 권한에 대해 업데이트 된 기능을 확인하십시오.
- 서버 다운 타임 동안 어떤 일이 발생하는지 확인하십시오.
# 4) 기능 삭제
삭제 기능을 확인하려면 다음 단계를 따르십시오.
- CREATE 기능이있는 제품을 만듭니다.
- 제품을 삭제하십시오.
결과 확인 :
- 테스터는 제품이 UI에서 제거되었는지 수동으로 확인합니다.
- 테스터는 MySQL 데이터베이스를 수동으로 확인하고 해당 행이 삭제되었는지 확인합니다.
질문 :
SELECT * FROM products WHERE product_name = ‘test name’;
MySQL의 쿼리 결과 :
그러면 아래와 같이 쿼리 결과가 표시됩니다.
mysql>SELECT * FROM products WHERE product_name = ‘test name’; Empty set (0.00 sec)
고려해야 할 기타 사례 :
- 단일 요청으로 여러 항목을 삭제합니다.
- 업데이트 된 항목을 삭제합니다.
- 두 개의 탭을 가져와 두 탭 모두에서 제품에 대한 삭제 요청을 제공하십시오.
결론
데이터베이스 테스트는 소프트웨어 응용 프로그램의 보안과 신뢰성을 확인하기 때문에 매우 중요합니다. 대부분의 소프트웨어 응용 프로그램은 데이터베이스에서 데이터를 생성, 읽기, 업데이트 및 삭제하는 작업을 처리합니다. 소프트웨어 요구 사항에 따라 CRUD주기가 다를 수 있습니다. 테스터는 CRUD주기를 기반으로 테스트 케이스를 계획해야합니다.
CRUD 기능은 수동으로 테스트 할 수 있으며 사용자 인터페이스 및 데이터베이스에서 확인할 수 있습니다. SELECT 쿼리를 사용하여 각 CRUD 작업에 해당하는 데이터베이스의 변경 사항을 확인할 수 있습니다.
CRUD 테스트 전문가입니까? CRUD를 처음 사용하는 독자들과 공유 할 흥미로운 사실이 있습니까? 아래 댓글란에 여러분의 생각 / 제안을 자유롭게 표현 해주세요 !!