Giới Thiệu Về Kiểm Thử Phần Mềm: Phương Pháp và Kỹ Thuật Mới Nhất

Trường đại học

George Mason University

Chuyên ngành

Software Engineering

Người đăng

Ẩn danh

Thể loại

textbook

2008

346
1
0

Phí lưu trữ

50.000 VNĐ

Mục lục chi tiết

Preface

1. Part 1 Overview

1. 1 Introduction

1.1. Activities of a Test Engineer

1.1. Testing Levels Based on Software Activity

1.2. Beizer’s Testing Levels Based on Test Process Maturity

1.3. Automation of Test Activities

1.2. Software Testing Limitations and Terminology

1.3. Coverage Criteria for Testing

1.1.1. Infeasibility and Subsumption

1.1.2. Characteristics of a Good Coverage Criterion

1.4. Older Software Testing Terminology

1.5. Bibliographic Notes

2. Part 2 Coverage Criteria

2. 2 Graph Coverage

2.1. Graph Coverage Criteria

2.2. Structural Coverage Criteria

2.3. Data Flow Criteria

2.4. Subsumption Relationships among Graph Coverage Criteria

2.5. Graph Coverage for Source Code

2.1.1. Structural Graph Coverage for Source Code

2.1.2. Data Flow Graph Coverage for Source Code

2.6. Graph Coverage for Design Elements

2.1.3. Structural Graph Coverage for Design Elements

2.1.4. Data Flow Graph Coverage for Design Elements

2.7. Graph Coverage for Specifications

2.1.5. Testing Sequencing Constraints

2.1.6. Testing State Behavior of Software

2.8. Graph Coverage for Use Cases

2.1.7. Use Case Scenarios

2.9. Representing Graphs Algebraically

2.1.8. Reducing Graphs to Path Expressions

2.1.9. Applications of Path Expressions

2.2.0. Deriving Test Inputs

2.2.1. Counting Paths in a Flow Graph and Determining Max Path Length

2.2.2. Minimum Number of Paths to Reach All Edges

2.2.3. Complementary Operations Analysis

2.10. Bibliographic Notes

3. 3 Logic Coverage

3.1. Overview: Logic Predicates and Clauses

3.2. Logic Expression Coverage Criteria

3.1.1. Active Clause Coverage

3.1.2. Inactive Clause Coverage

3.1.3. Infeasibility and Subsumption

3.1.4. Making a Clause Determine a Predicate

3.1.5. Finding Satisfying Values

3.1.6. Structural Logic Coverage of Programs

3.1.7. Predicate Transformation Issues

3.1.8. Specification-Based Logic Coverage

3.1.9. Logic Coverage of Finite State Machines

3.2.0. Disjunctive Normal Form Criteria

3.2.1. Bibliographic Notes

4. 4 Input Space Partitioning

4.1. Input Domain Modeling

4.1.1. Interface-Based Input Domain Modeling

4.1.2. Functionality-Based Input Domain Modeling

4.1.3. Choosing Blocks and Values

4.1.4. Using More than One Input Domain Model

4.1.5. Checking the Input Domain Model

4.1.6. Combination Strategies Criteria

4.1.7. Constraints among Partitions

4.1.8. Bibliographic Notes

5. 5 Syntax-Based Testing

5.1. Syntax-Based Coverage Criteria

5.1.1. BNF Coverage Criteria

5.1.2. Program-Based Grammars

5.1.3. BNF Grammars for Languages

5.1.4. Program-Based Mutation

5.1.5. Integration and Object-Oriented Testing

5.1.6. BNF Integration Testing

5.1.7. Specification-Based Grammars

5.1.8. Specification-Based Mutation

5.1.9. Input Space Grammars

5.2.0. Mutation for Input Grammars

5.2.1. Bibliographic Notes

6. Part 3 Applying Criteria in Practice

6. 6 Practical Considerations

6.1. Integration and Testing

6.1.1. Stubs and Drivers

6.1.2. Class Integration Test Order

6.1.3. Requirements Analysis and Specification

6.1.4. System and Software Design

6.1.5. Operation and Maintenance

6.1.6. Identifying Correct Outputs

6.1.7. Direct Verification of Outputs

6.1.8. Bibliographic Notes

7. 7 Engineering Criteria for Technologies

7.1. Testing Object-Oriented Software

7.1.1. Unique Issues with Testing OO Software

7.1.2. Types of Object-Oriented Faults

7.1.3. Testing Web Applications and Web Services

7.1.4. Testing Static Hyper Text Web Sites

7.1.5. Testing Dynamic Web Applications

7.1.6. Testing Web Services

7.1.7. Testing Graphical User Interfaces

7.1.8. Real-Time Software and Embedded Software

7.1.9. Bibliographic Notes

8. 8 Building Testing Tools

8.1. Instrumentation for Graph and Logical Expression Criteria

8.1.1. Node and Edge Coverage

8.1.2. Data Flow Coverage

8.1.3. Building Mutation Testing Tools

8.1.4. The Interpretation Approach

8.1.5. The Separate Compilation Approach

8.1.6. The Schema-Based Approach

8.1.7. Using Java Reflection

8.1.8. Implementing a Modern Mutation System

8.1.9. Bibliographic Notes

9. 9 Challenges in Testing Software

9.1. Testing for Emergent Properties: Safety and Security

9.1.1. Classes of Test Cases for Emergent Properties

9.1.2. Testability for Common Technologies

9.1.3. Test Criteria and the Future of Software Testing

9.1.4. Going Forward with Testing Research

9.1.5. Bibliographic Notes

List of Criteria

Bibliography

Index

Tài liệu "Khám Phá Phương Pháp Kiểm Thử Phần Mềm Hiện Đại" mang đến cái nhìn sâu sắc về các phương pháp kiểm thử phần mềm tiên tiến, giúp người đọc hiểu rõ hơn về tầm quan trọng của việc đảm bảo chất lượng sản phẩm phần mềm. Tài liệu này không chỉ trình bày các kỹ thuật kiểm thử hiện đại mà còn nhấn mạnh lợi ích của việc áp dụng chúng trong quy trình phát triển phần mềm, từ việc phát hiện lỗi sớm đến việc cải thiện hiệu suất và độ tin cậy của ứng dụng.

Để mở rộng kiến thức của bạn về lĩnh vực này, bạn có thể tham khảo thêm tài liệu Luận văn thạc sĩ nghiên cứu tính khả kiểm thử của ứng dụng trên nền web, nơi cung cấp cái nhìn chi tiết về khả năng kiểm thử của các ứng dụng web. Bên cạnh đó, tài liệu Luận văn kỹ thuật sinh test case tự động từ yêu cầu phần mềm sẽ giúp bạn hiểu rõ hơn về cách tự động hóa quy trình kiểm thử, từ đó nâng cao hiệu quả công việc. Cuối cùng, tài liệu Effective software testing 50 specific ways to improve your testing cung cấp những phương pháp cụ thể để cải thiện quy trình kiểm thử phần mềm, giúp bạn áp dụng những kiến thức đã học vào thực tiễn.

Những tài liệu này sẽ là cơ hội tuyệt vời để bạn khám phá sâu hơn về các khía cạnh khác nhau của kiểm thử phần mềm, từ đó nâng cao kỹ năng và kiến thức của mình trong lĩnh vực này.