ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (개발준비) 10 - 정보처리기사 시험준비 (22.04.24)
    개발/개발준비 2023. 6. 21. 09:03

    30. 화이트박스 테스트

    1. 화이트박스 테스트의 이해를 위해 논리흐름도(Logic-Flow Diagram)를 이용할 수 있다.

    2. 테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트(Dynamic Test)에 해당한다.

    3. 프로그램의 구조를 고려하지 않기 때문에 테스트 케이스는 프로그램 또는 모듈의 요구나 명세를 기초로 결정한다.

    -> 프로그램 구조를 고려하지 않는 것은 == 블랙박스 테스트

    4.테스트 데이터를 선택하기 위하여 검증기준(Test Coverage)을 정한다.

     

    ※ 화이트 박스 vs 블랙 박스

    * 화이트 박스 

    화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드 논리적인 모든 경로를 테스트하여  테스트 케이스를 설계하는 방법이다.

    • 화이트박스 테스트는 설계된 절차에 초점을 둔 구조적 테스트며, 테스트 과정의 초기에 적용된다.
    • 모듈 안의 작동을 직접 관찰한다.
    • 원시 코드(모듈)의 모든 문장을 한 번 이상 실행함으로써 수행된다.
    • 프로그램의 제어 구조에 따라 선택, 반복 등의 분기점 부분들을 수행함으로써 논리적 경로를 제어한다.

    화이트박스 테스트의 종류에는 기초 경로 검사(Base Path Testing), 제어 구조(Control Structure Testing) 검사 등이 있다. 조건 검사(Condition Testing) 루프 검사(Loop Testing) 데이터 흐름 검사(Data Flow Testing)

     

    * 블랙 박스

    - 블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서  기능이 완전히 작동되는 것을 입증하는 테스트로, 기능 테스트라고도 한다.

    • 사용자의 요구사항 명세를 보면서 테스트하는 것으로, 주로 구현된 기능을 테스트한다.
    • 소프트웨어 인터페이스에서 실시되는 테스트이다.
    • 부정확하거나 누락된 기능, 인터페이스 오류, 자료 구조나 외부 데이터베이스 접근에 따른 오류, 행위나 성능 오류, 초기화와 종료 오류 등을 발견하기 위해 사용되며, 테스트 과정의 후반부에 적용된다.

    블랙박스 테스트의 종류에는 동치 분할 검사(Equivalence Partitioning Testing), 경계값 분석(Boundary Value Analysis), 원인-효과 그래프 검사(Cause-Effect Graphing Testing), 오류 예측 검사(Error Guessing), 비교 검사(Comparison Testing) 등이 있다.

     

    https://devinus.tistory.com/6

     

    [정보처리기사] 화이트박스 테스트와 블랙박스 테스트

    1. 화이트박스 테스트(White Box Test) - 화이트박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법이다. 화이트박

    devinus.tistory.com

     

    32. 버블 정렬

    : 버블 정렬은 첫위치부터 시작해서 오른쪽값과 비교

     

    33. 인스펙션 과정 

    1. 계획 -> 사전준비 -> 준비 -> 인스펙션 회의 -> 수정 -> 후속조치

     

    ※ 인스펙션이란?

    개발 산출물에 대해 실행 이전에 자세한 검토를 수행하는 것으로 코드리뷰(Code Review)와 같은 개념

     

    34. Refactoring

    소프트웨어를 보다 쉽게 이해할 수 있고 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부구조를 변경하는 것

     

    ※ 문항해설

    1. 리팩터링(refactoring) : 소프트웨어 공학에서 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻한다. 

    2. Architecting : 설계 관련

    3. Specification : 명세

    4. Renewal : 유지보수

     

    35. 단위테스트

    1. 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.

    2. 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.

    3. 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.

    -> 테스트 드라이버(test driver)

    테스트 스텁(test stub)은 인자를 통해 받은 값을 가지고 수행한 후 그 결과를 테스트할 모듈에 넘겨주는 역할을 한다.

    4. 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.

     

    ※ 단위테스트, 통합테스트

    - 단위 테스트(Unit Test)는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다.

    - 통합 테스트(Integration Test)는 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해 수행되는 테스트

     

    36. IDE(Integrated Development Environment) 도구의 각 기능

    1. Coding - 프로그래밍 언어를 가지고 컴퓨터 프로그램을 작성할 수 있는 환경을 제공

    2. Compile - 주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 기능

    3. Debugging - 프로그램에서 발견되는 버그를 찾아 수정할 수 있는 기능

    4. Deployment - 소프트웨어를 최종 사용자에게 전달하기 위한 기능

     

    37. 아래 Tree 구조에 대하여 후위 순회(Postorder) 한 결과는?

     

     

    ※ 참고

     

     

     

    https://withhamit.tistory.com/282

     

    트리 순회(전위 순회, 중위 순회, 후위 순회)

    트리를 배우면 같이 배우게 되는 개념 중 하나죠. 트리 순회에 대해 알아보겠습니다. 트리 순회에는 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder) 가 있습니다. 텍스트 추가 [그림 1]은

    withhamit.tistory.com

     

    38. 인터페이스 구현 시 사용하는 기술로 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷은?

    1. JSON (JavaScript Object Notation)
    - 속성-값 쌍(Attribute-Value Pairs)으로 이루어진 데이터 오브젝트를 전달하기 위해 사용하는 개방형 표준 포맷이다.
    - AJAX(Asynchronous Javascript and XML)에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷이다.
    - 언어 독립형 데이터 포맷으로 다양한 프로그래밍 언어에서 사용되고 있다.

     

    39. 순서가 있는 리스트에서 데이터의 삽입(Push), 삭제(Pop)가 한 쪽 끝에서 일어나며 LIFO(Last-In-First-Out)의 특징을 가지는 자료구조는?

    Stack

    1. Stack = LIFO, 한 쪽 끝에서 일어남 (후입선출) 동전 쌓고 빠져나가기
    2. Queue = FIFO, 양방향에서 일어남 (선입선출) 줄서서 빠져나가기
    3. Tree & Graph 는 비선형구조

     

    40. 다음 중 단위 테스트 도구로 사용될 수 없는 것은?

    1. CppUnit - C++ 프로그래밍 언어용 단위 테스트 도구
    2. JUnit - 자바 프로그래밍 언어용 단위 테스트 도구
    3. HttpUnit - 웹 브라우저 없이 웹 사이트 테스트를 수행하는 데 사용되는 오픈 소스 소프트웨어 테스트 프레임워크
    4. IgpUnit은 존재하지 않는 유닛입니다.

     

    41. 다음 조건을 모두 만족하는 정규형은?

     

    결정자라는 키워드가 있기 때문에 BCNF

     

    42. 데이터베이스 트랜잭션 성질

     

     

    트랜잭션이란?

    트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.

     

    트랜잭션의 특성
    - 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
    - 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
    - 격리성(Isolation, 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
    - 영속성(Durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

     

    43. 분산 데이터베이스 시스템과 관련한 설명으로 틀린 것은?

         1. 물리적으로 분산된 데이터베이스 시스템을 논리적으로 하나의 데이터베이스 시스템처럼 사용할 수 있도록 한 것이다.
         2. 물리적으로 분산되어 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터(Local Computer)를 분산 처리기(Distributed Processor)라고 한다.
         3. 분산 데이터베이스 시스템을 위한 통신 네트워크 구조가 데이터 통신에 영향을 주므로 효율적으로 설계해야 한다.
         4. 데이터베이스가 분산되어 있음을 사용자가 인식할 수 있도록 분산 투명성(Distribution Transparency)을 배제해야 한다.

     

    - 위치 투명성(Location Transparency):하드웨어와 소 프트웨어의 물리적 위치를 사용자가 알 필요가 없다.
    - 중복(복제) 투명성(Replication Transparency):사용 자에게 통지할 필요없이 시스템 안에 파일들과 자원들의 부가적인 복사를 자유롭게할수 있다.
    - 병행 투명성(Concurrency Transparency):다중 사용 자들이 자원들을 자동으로 공유할 수 있다.
    - 장애 투명성(Fai ure Transparency):사용자들은 어느 위치의 시스템에 장애가 발생했는지 알 필요가 없다.

     

    44. 다음 테이블을 보고 강남지점의 판매량이 많은 제품부터 출력되도록 할 때 다음 중 가장 적절한 SQL 구문은? (단, 출력은 제품명과 판매량이 출력되도록 한다.)

         1. SELECT 제품명, 판매량 FROM 푸드
    ORDER BY 판매량 ASC;
         2. SELECT 제품명, 판매량 FROM 푸드
    ORDER BY 판매량 DESC;
         3. SELECT 제품명, 판매량 FROM 푸드
    WHERE 지점명 = '강남지점'
    ORDER BY 판매량 ASC;
      4. SELECT 제품명, 판매량 FROM 푸드
    WHERE 지점명 = '강남지점'
    ORDER BY 판매량 DESC;

    - 판매량이 많은 제품부터 출력되도록 하려면 내림차순 정렬을 적용해야 한다. SQL에서 정렬은 ORDER BY을 사용하며

    내림차순은 DESC를 사용한다. 오름차순의 경우 생략이나 ASC를 사용한다.

     

    45. 데이터베이스의 인덱스와 관련한 설명으로 틀린 것은?

         1. 문헌의 색인, 사전과 같이 데이터를 쉽고 빠르게 찾을 수 있도록 만든 데이터 구조이다.
         2. 테이블에 붙여진 색인으로 데이터 검색 시 처리 속도 향상에 도움이 된다.
         3. 인덱스의 추가, 삭제 명령어는 각각 ADD, DELETE이다.
         4. 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제된다.

    * 인덱스(Index)
    - 데이터베이스 성능에 많은 영향을 주는 DBMS의 구성 요소로 테이블과 클러스터에 연관되어 독립적인 저장 공간을 보유하며, 데이터베이스에 저장된 자료를 더욱 빠르게 조회하기 위하여 별도로 구성한 순서 데이터를 말한다.
    - 대부분의 데이터베이스에서 테이블을 삭제하면 인덱스도 같이 삭제된다.

     

    - 인덱스 생성 : CREATE
    - 인덱스 삭제 : DROP

     

    46. 물리적 데이터베이스 구조의 기본 데이터 단위인 저장 레코드의 양식을 설계할 때 고려 사항이 아닌 것은?.

         1. 데이터 타입
         2. 데이터 값의 분포
         3. 트랜잭션 모델링
         4. 접근 빈도

     

    저장 레코드 양식 설계 시 고려 사항
    - 데이터 타입, 데이터 값의 분포, 접근 빈도

     

    트랜잭션 모델링은 개념적 설계 단계에서 하는것

     

    47. SQL의 기능에 따른 분류 중에서 REVOKE문과 같이 데이터의 사용 권한을 관리하는데 사용하는 언어는? 

         1. DDL(Data Definition Language)
         2. DML(Data Manipulation Language)

     

         3. DCL(Data Control Language)
         4. DUL(Data User Language)

     

    DCL 종류
    - COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언한다.
    - ROLLBACK : 명령어로 수행을 실패하였음을 알리고, 수행된 결과를 원상복구시킨다.
    - GRANT : 데이터베이스 사용자에게 사용 권한 부여한다.
    - REVOKE : 데이터베이스 사용자로부터 사용 권한 취소한다.

     

    DDL
    - CREATE : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의
    - ALTER : TABLE에 대한 정의를 변경하는 데 사용
    - DROP : SCHEMA(스키마), DOMAIN(도메인), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 삭제

     

    DML
    - SELECT : 테이블에서 조건에 맞는 튜플을 검색
    - INSERT : 테이블에 새로운 튜플을 삽입
    - DELETE : 테이블에서 조건에 맞는 튜플을 삭제
    - UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경

     

    48.데이터 사전에 대한 설명으로 틀린 것은?

         1. 시스템 카탈로그 또는 시스템 데이터베이스라고도 한다.
         2. 데이터 사전 역시 데이터베이스의 일종이므로 일반 사용자가 생성, 유지 및 수정 할 수 있다.
         3. 데이터베이스에 대한 데이터인 메타데이터(Metadata)를 저장하고 있다.
         4. 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보는 데이터 디렉토리(Data Directory)라는 곳에서 관리한다.

     

    데이터 사전(Data Dictionary)
    - 시스템 자신이 필요로 하는 여러 가지 객체(기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스이다.
    - 시스템 카탈로그(System Catalog), 메타 데이터(Meta Data)라고도 한다.
    - 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL 문을 이용하여 내용 검색이 가능하다.
    - 사용자가 시스템 카탈로그를 직접 갱신할 수 없다.
    - SQL 문으로 여러 가지 객체에 변화를 주면 시스템이 자동으로 갱신한다.

     

    49.데이터베이스에서 릴레이션에 대한 설명으로 틀린 것은?

     

         1. 모든 튜플은 서로 다른 값을 가지고 있다.
         2. 하나의 릴레이션에서 튜플은 특정한 순서를 가진다.
         3. 각 속성은 릴레이션 내에서 유일한 이름을 가진다.
         4. 모든 속성 값은 원자 값(atomic value)을 가진다.

    * 릴레이션의 특징
    - 튜플의 유일성 : 모든 튜플은 서로 다른값을 갖는다
    - 튜플의 무순서성 : 하나의 릴레이션에 튜플에 순서는 없다
    - 속성의 원자성 : 속성값은 원자값을 갖는다
    - 속성의 무순서성 : 각 속성은 릴레이션내에서 유일한 이름을 가지며, 순서는 큰 의미가 없다

     

    릴레이션은 행과 열로 구성된 테이블을 말한다.

     

    50.데이터베이스에서의 뷰(View)에 대한 설명으로 틀린 것은?

    1. 뷰는 다른 뷰를 기반으로 새로운 뷰를 만들 수 있다.
         2. 뷰는 일종의 가상 테이블이며, update에는 제약이 따른다.
         3. 뷰는 기본 테이블을 만드는 것처럼 create view를 사용하여 만들 수 있다.
         4. 뷰는 논리적으로 존재하는 기본 테이블과 다르게 물리적으로만 존재하며 카탈로그에 저장된다.

    뷰는 논리적으로만 존재한다.

     

    51. 트랜잭션의 상태 중 트랜잭션의 마지막 연산이 실행된 직후의 상태로, 모든 연산의 처리는 끝났지만 트랜잭션이 수행한 최종 결과를 데이터베이스에 반영하지 않은 상태는?
         1. Active
         2. Partially Committed
         3. Committed
         4. Aborted

     

    Partially Committed: 마지막 연산이 실행된 직후의 상태로 아직 Commit 연산 실행 전
    Committed: 트랜잭션이 실행을 성공적으로 완료하여 Commit 연산을 수행한 상태

     

     

     

Designed by Tistory.