본문 바로가기

소프트웨어공학27

[소프트웨어 공학] Verification, Validation and Testing Fundamentals of SW Test Verification: 잘 만들고 있는가? Are we builing the product right? Validation: 잘 만들었는가? Are we building the right product? Testing: 실행 결과를 확인한다. Testing vs. Debugging Testing: bug로 인해 발생한 문제를 찾는다. (by. tester) Debugging: bug를 발생시킨 문제를 찾고, 코드를 고친다. (by. developer) Confirm testing: failure가 해결되었음을 다시 확인한다. (by. tester) Test Process Unit test: 개발자가 자신이 구현한 부분을 테스트한다. Integration tes.. 2024. 2. 19.
[소프트웨어 공학] UML(Unified Modeling Language), OOP(Object-Oriented Development Process), Modeling Engineering UML(Unified Modeling Language) Use Case Diagram: actor와 use case의 관계를 도식화한다. 모든 유스케이스를 취합하면 시스템의 모습이 된다. Class Diagram: 클래스 또는 클래스들과 그들의 관계를 표시한다. Sequence Diagram: 시간 경과에 따라 객체 간의 교류 과정을 표현한다. Communication Diagram: 객체 간의 상호관계를 표현한다. Activity Diagram State Chart Component Diagram Deployment Diagram OOP(Object-Oriented Development Process) Inception: 기존 시스템을 업데이트하거나, 새로운 시스템을 개발하기 위한 business ca.. 2024. 2. 19.
[소프트웨어 공학] 소프트웨어 프로세스, 요구 공학 소프트웨어 아키텍처 디자인 소프트웨어 공학이란? : 초기 구상 단계부터 시스템 사용 이후 발생하는 유지보수까지 포함하는 소프트웨어 생산의 모든 관점과 관련한 공학적인 학문 분야이다. 소프트웨어 공학은 고품질 소프트웨어 시스템의 비용 효율적인 개발에 중점을 둔다. 소프트웨어 공학에서의 비용(cost): 개발 + 테스트 비용 소프트웨어 프로세스 소프트웨어 명세화(specification): 시스템을 개발하기 위해 어떤 서비스가 필요한지 이해하고 정의하며, 시스템의 운영/개발에 대한 제약사항을 찾아내는 프로세스 소프트웨어 설계(design) 및 구현(implementation) : 명세를 실현하는 소프트웨어 구조를 설계하고, 소프트웨어 구조를 실행 가능한 프로그램으로 변환한다. 아키텍처 설계: 시스템의 전체 구조, 주요 컴포넌트, 이들.. 2024. 2. 19.
[소프트웨어공학] 기말고사 L5 - Architectural Design (아키텍처 디자인) Architectural patterns Pipeline and filter architecture Model-View-Controller(MVC) architecture Control Styles 중앙 집중식 제어 콜-리턴 모델 관리자 모델 이벤트 기반 제어 브로드캐스트 모델 인터럽트 기반 모델 Software architecture evaluation L6 - Software & System Modeling UML 소프트웨어 모델링 UML(Unified Modeling Language) Relationships Dependency(의존 관계) Association(연관 관계) Generalization(일반화 관계) Aggregatio.. 2023. 12. 10.
[소프트웨어공학] L9 - Verification, Validation, and Test: Black-box Test (2) 2) 경계값 분석 (Boundary Value Analysis) 예) Microsoft Word font size ▶ Menu entry: Valid: 경계값인 8, 72를 테스트한다. Invalid: Not possible ▶ Direct entry: Valid: Integer로 나누고, 경계값인 1,0 그리고 1638, 1689를 테스트한다. Invalid: Not integer (문자, 실수, Black로 굳이 나눌 필요 없지만, 나눴다면 각 항목에 대해 모두 테스트 케이스에 포함한다.) 예) 온라인 대출 화면 3) 결정 테이블 (Decision Table) : 입력 조건이 많고 복잡한 경우, 단순화하여 결정 테이블을 만든다. 예) KTF N-Zone 단말기 요구사항 4) 상태 기반 테스트 (Sta.. 2023. 11. 30.
[소프트웨어공학] L9 - Verification, Validation, and Test: Black-box Test Test Methods ▶ Black-box test Equivalence partitioning (동치분할) Boundary value analysis (경계값 분석) Decision table (결정 테이블) State-based test (상태 기반 테스트) Pair-wise test (조합 테스트) Black-box Test (Specification-Based Test) : 테스트 대상 sw 코드 내용은 보지 않고, 입력값에 대한 프로그램 실행 결과가 올바른 출력인지 테스트한다. by 테스터 동치분할 (Equivalence Partitioning) Q. 입력값을 어떻게 뽑을까? A. 동치분할! : 동치분할하여 valid/invalid equivalence class로 나누고, 클래스 내에서 그룹.. 2023. 11. 29.
[소프트웨어공학] L9 - Verification, Validation, and Test: White-box Test (2) Fault Injection (예: Mutation Test) ▶ Mutation Test 뮤턴트(mutant): 결함이 있는 프로그램 (대상의 일부를 변경시켜서 만든다.) :P(프로그램)과 M(뮤턴트)를 구분해주는 결과값을 내는 뮤턴트를 찾아서, 결함을 감지해내는지 테스트한다. --> P와 M에 대해 다른 결과가 나오면(뮤턴트를 한 번 제대로 이용하고 나면): M is killed. 예: Mutant operator: SRV(scalar variable replacement) ▶ SRV(scalar variable replacement) : 변수를 다른 값으로 바꿔서 뮤턴트를 만든다. muant operator: mutant operator를 이용하면, 다양한 뮤턴트를 만들 수 있다. Mutant sc.. 2023. 11. 29.
[소프트웨어공학] L9 - Verification, Validation, and Test: White-box Test Test Methods Non-execution-based test (Static test) Rely on human: Review Rely on tool: Static anaylsis Execution-based test (Dynamic test) ▶ Black-box test ▶ White-box test (--> structure based) Code-coverage based test Data-flow based test Mutation test White-box Test White-box test (structural test, path test) : SW code의 구조에 기반하여 테스트한다. --> 테스트 기법 (test coverage matric): ▶ Code-coverage based.. 2023. 11. 20.
[소프트웨어공학] L9 - Verification, Validation, and Test: SW Test Techniques Static Test (Static Analysis) ▶ Test Technique ▶ Test Data Selection Method, Test Method ▶ Test Coverage Criteria Test Methods ▶ Non execution based - static test (비실행 기반 - 정적 테스트) Relay on human: Review, Inspection, Walkthrough Relay on tool: Static analysis (정적 분석) --> 예) 요구사항 명세서, 설계 분석, 소스 코드, 테스트 문서 등 (실행파일이 아닌 모든 것!) ▶ Execution-based - dynamic test (실행 기반 - 동적 테스트) Black-box test White-bo.. 2023. 11. 17.