Giáo trình Kiểm thử phần mềm

Mục lục

1 Tổng quan về kiểm thử 1

1.1 Các thuật ngữ và định nghĩa cơ bản về kiểm thử . . . . . . . . 1

1.2 Ca kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Mô tả bài toán kiểm thử qua biểu đồ Venn . . . . . . . . . . . 7

1.4 Việc xác định các ca kiểm thử . . . . . . . . . . . . . . . . . . 10

1.4.1 Kiểm thử hàm . . . . . . . . . . . . . . . . . . . . . . . 10

1.4.2 Kiểm thử cấu trúc . . . . . . . . . . . . . . . . . . . . 12

1.4.3 Tranh luận về kiểm thử hàm so với kiểm thử cấu trúc . 13

1.5 Phân loại các lỗi và sai . . . . . . . . . . . . . . . . . . . . . . 14

1.6 Các mức kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . 15

1.7 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2 Một số ví dụ 21

2.1 Bài toán tam giác . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.1.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . 22

2.1.2 Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.1.3 Cài đặt truyền thống . . . . . . . . . . . . . . . . . . . 22

2.1.4 Cài đặt có cấu trúc . . . . . . . . . . . . . . . . . . . . 25

2.2 Hàm NextDate (ngày kế tiếp) . . . . . . . . . . . . . . . . . . 26

2.2.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . 28

2.2.2 Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2.3 Cài đặt . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3 Hệ thống rút tiền tự động đơn giản . . . . . . . . . . . . . . . 30

2.3.1 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . 31

2.3.2 Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.4 Bộ điều khiển gạt nước ô tô . . . . . . . . . . . . . . . . . . . 34

2.5 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3 Cơ sở toán học rời rạc cho việc kiểm thử 37

3.1 Lý thuyết tập hợp . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.1.1 Phần tử của tập hợp . . . . . . . . . . . . . . . . . . . 38

3.1.2 Định nghĩa tập hợp . . . . . . . . . . . . . . . . . . . . 38

3.1.3 Tập hợp rỗng . . . . . . . . . . . . . . . . . . . . . . . 39

3.1.4 Biểu đồ Venn . . . . . . . . . . . . . . . . . . . . . . . 40

3.1.5 Các phép toán về tập hợp . . . . . . . . . . . . . . . . 41

3.1.6 Quan hệ giữa các tập hợp . . . . . . . . . . . . . . . . 43

3.1.7 Phân hoạch tập hợp . . . . . . . . . . . . . . . . . . . 43

3.1.8 Các đồng nhất thức về tập hợp . . . . . . . . . . . . . 45

3.2 Hàm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2.1 Miền xác định và miền giá trị . . . . . . . . . . . . . . 46

3.2.2 Các loại hàm . . . . . . . . . . . . . . . . . . . . . . . 46

3.2.3 Hàm hợp . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.3 Quan hệ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.3.1 Quan hệ giữa các tập hợp . . . . . . . . . . . . . . . . 49

3.3.2 Quan hệ trên một tập hợp . . . . . . . . . . . . . . . . 51

3.4 Lôgic mệnh đề . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

MỤC LỤC v

3.4.1 Các phép toán lôgic . . . . . . . . . . . . . . . . . . . . 53

3.4.2 Biểu thức lôgic . . . . . . . . . . . . . . . . . . . . . . 53

3.4.3 Tương đương lôgic . . . . . . . . . . . . . . . . . . . . 54

3.5 Lý thuyết xác suất . . . . . . . . . . . . . . . . . . . . . . . . 55

3.6 Lý thuyết đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.6.1 Đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.6.1.1 Bậc của đỉnh . . . . . . . . . . . . . . . . . . 58

3.6.1.2 Ma trận tới . . . . . . . . . . . . . . . . . . . 59

3.6.1.3 Ma trận liền kề . . . . . . . . . . . . . . . . . 59

3.6.1.4 Đường đi trong đồ thị . . . . . . . . . . . . . 60

3.6.1.5 Tính liên thông . . . . . . . . . . . . . . . . . 61

3.6.1.6 Rút gọn đồ thị . . . . . . . . . . . . . . . . . 61

3.6.1.7 Chỉ số chu trình . . . . . . . . . . . . . . . . 62

3.6.2 Đồ thị có hướng . . . . . . . . . . . . . . . . . . . . . . 63

3.6.2.1 Bậc vào và bậc ra . . . . . . . . . . . . . . . . 64

3.6.2.2 Loại của đỉnh . . . . . . . . . . . . . . . . . . 65

3.6.2.3 Ma trận liền kề của đồ thị có hướng . . . . . 65

3.6.2.4 Đường đi và tựa đường đi . . . . . . . . . . . 66

3.6.2.5 Ma trận đạt được . . . . . . . . . . . . . . . . 67

3.6.2.6 Tính N -liên thông . . . . . . . . . . . . . . . 68

3.6.2.7 Thành phần liên thông mạnh . . . . . . . . . 69

3.6.3 Các loại đồ thị dùng cho kiểm thử . . . . . . . . . . . . 70

3.6.3.1 Máy hữu hạn trạng thái . . . . . . . . . . . . 71

3.6.3.2 Mạng Petri . . . . . . . . . . . . . . . . . . . 73

3.7 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4 Khảo sát đặc tả và mã nguồn 79

4.1 Khảo sát đặc tả . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.1.1 Tiến hành duyệt đặc tả mức cao . . . . . . . . . . . . . 80

4.1.1.1 Hãy là khách hàng của sản phẩm . . . . . . . 80

4.1.1.2 Hãy nghiên cứu các chuẩn và hướng dẫn hiện

hành . . . . . . . . . . . . . . . . . . . . . . . 81

4.1.1.3 Hãy xem xét và kiểm thử các phần mềm tương

tự . . . . . . . . . . . . . . . . . . . . . . . . 82

4.1.2 Các kỹ thuật kiểm thử đặc tả ở mức thấp . . . . . . . 82

4.1.2.1 Danh sách các hạng mục cần thẩm định về

các thuộc tính của đặc tả . . . . . . . . . . . 83

4.1.2.2 Danh sách các hạng mục cần thẩm định về

các thuật ngữ của đặc tả . . . . . . . . . . . . 84

4.2 Khảo sát mã nguồn . . . . . . . . . . . . . . . . . . . . . . . . 85

4.2.1 Khảo sát thiết kế và mã nguồn hay là việc kiểm thử

hộp trắng tĩnh . . . . . . . . . . . . . . . . . . . . . . . 85

4.2.2 Phản biện hình thức . . . . . . . . . . . . . . . . . . . 86

4.2.3 Phản biện chéo . . . . . . . . . . . . . . . . . . . . . . 87

4.2.4 Thông qua . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.2.5 Thanh tra . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.2.6 Các chuẩn và hướng dẫn trong lập trình . . . . . . . . 89

4.2.7 Danh sách các hạng mục chung cho việc khảo sát mã

nguồn . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4.3 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

5 Kiểm thử hàm 97

5.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5.1.1 Sự phức tạp của kiểm thử hàm . . . . . . . . . . . . . 99

5.1.2 Phương pháp hệ thống . . . . . . . . . . . . . . . . . . 101

5.1.3 Lựa chọn phương pháp phù hợp . . . . . . . . . . . . . 106

5.2 Kiểm thử giá trị biên . . . . . . . . . . . . . . . . . . . . . . . 108

5.2.1 Giá trị biên . . . . . . . . . . . . . . . . . . . . . . . . 108

5.2.2 Một số dạng kiểm thử giá trị biên . . . . . . . . . . . . 111

5.2.2.1 Kiểm thử giá trị biên mạnh . . . . . . . . . . 111

5.2.2.2 Kiểm thử giá trị biên tổ hợp . . . . . . . . . . 112

5.2.2.3 Kiểm thử các giá trị đặc biệt . . . . . . . . . 113

5.2.3 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . 114

5.2.3.1 Kiểm thử giá trị biên cho Triangle . . . . . . 114

5.2.3.2 Kiểm thử giá trị biên cho NextDate . . . . . . 115

5.2.4 Kinh nghiệm áp dụng . . . . . . . . . . . . . . . . . . . 115

5.3 Kiểm thử lớp tương đương . . . . . . . . . . . . . . . . . . . . 117

5.3.1 Lớp tương đương . . . . . . . . . . . . . . . . . . . . . 117

5.3.2 Phân loại kiểm thử lớp tương đương . . . . . . . . . . 118

5.3.2.1 Kiểm thử lớp tương đương yếu . . . . . . . . 118

5.3.2.2 Kiểm thử lớp tương đương mạnh . . . . . . . 119

5.3.2.3 Kiểm thử lớp tương đương đơn giản . . . . . 120

5.3.3 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . 121

5.3.3.1 Kiểm thử lớp tương đương cho Triangle . . . 121

5.3.3.2 Kiểm thử lớp tương đương cho NextDate . . . 122

5.3.3.3 Kiểm thử tương đương yếu cho NextDate . . 123

5.3.3.4 Kiểm thử tương đương mạnh cho NextDate . 123

5.3.4 Kinh nghiệm áp dụng . . . . . . . . . . . . . . . . . . . 124

5.4 Kiểm thử bằng bảng quyết định . . . . . . . . . . . . . . . . . 126

5.4.1 Bảng quyết định . . . . . . . . . . . . . . . . . . . . . 126

5.4.2 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . 128

5.4.3 Kinh nghiệm áp dụng . . . . . . . . . . . . . . . . . . . 130

5.5 Kiểm thử tổ hợp . . . . . . . . . . . . . . . . . . . . . . . . . 132

5.5.1 Kiểm thử đôi một . . . . . . . . . . . . . . . . . . . . . 132

5.5.2 Ma trận trực giao . . . . . . . . . . . . . . . . . . . . . 133

5.5.3 Kinh nghiệm áp dụng . . . . . . . . . . . . . . . . . . . 134

5.6 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

6 Kiểm thử dòng điều khiển 137

6.1 Kiểm thử hộp trắng . . . . . . . . . . . . . . . . . . . . . . . . 137

6.2 Đồ thị dòng điều khiển . . . . . . . . . . . . . . . . . . . . . . 138

6.3 Các độ đo kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . 139

6.4 Kiểm thử dựa trên độ đo . . . . . . . . . . . . . . . . . . . . . 142

6.4.1 Kiểm thử cho độ đo C1

. . . . . . . . . . . . . . . . . . 143

6.4.2 Kiểm thử cho độ đo C2

. . . . . . . . . . . . . . . . . . 144

6.4.3 Kiểm thử cho độ đo C3

. . . . . . . . . . . . . . . . . . 145

6.4.4 Kiểm thử vòng lặp . . . . . . . . . . . . . . . . . . . . 147

6.5 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

6.6 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

7 Kiểm thử dòng dữ liệu 159

7.1 Kiểm thử dựa trên gán và sử dụng giá trị biến . . . . . . . . . 160

7.1.1 Ý tưởng . . . . . . . . . . . . . . . . . . . . . . . . . . 160

7.1.2 Các vấn đề phổ biến về dòng dữ liệu . . . . . . . . . . 160

7.1.3 Tổng quan về kiểm thử dòng dữ liệu động . . . . . . . 164

7.1.4 Đồ thị dòng dữ liệu . . . . . . . . . . . . . . . . . . . . 166

7.1.5 Các khái niệm về dòng dữ liệu . . . . . . . . . . . . . . 169

7.1.6 Các độ đo cho kiểm thử dòng dữ liệu . . . . . . . . . . 172

7.1.7 Sinh các ca kiểm thử . . . . . . . . . . . . . . . . . . . 176

7.2 Kiểm thử dựa trên lát cắt . . . . . . . . . . . . . . . . . . . . 178

MỤC LỤC ix

7.2.1 Ý tưởng về kiểm thử dựa trên lát cắt . . . . . . . . . . 179

7.2.2 Ví dụ áp dụng . . . . . . . . . . . . . . . . . . . . . . . 182

7.2.3 Một số lưu ý với kiểm thử dựa trên lát cắt . . . . . . . 188

7.3 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

7.4 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

8 Kiểm thử dựa trên mô hình 197

8.1 Khái niệm về kiểm thử dựa trên mô hình . . . . . . . . . . . . 197

8.2 Các phương pháp đặc tả mô hình . . . . . . . . . . . . . . . . 198

8.2.1 Máy hữu hạn trạng thái . . . . . . . . . . . . . . . . . 198

8.2.2 Ôtômat đơn định hữu hạn trạng thái . . . . . . . . . . 200

8.2.3 Biểu đồ trạng thái . . . . . . . . . . . . . . . . . . . . 201

8.2.4 Máy trạng thái UML . . . . . . . . . . . . . . . . . . . 201

8.2.5 Các phương pháp đặc tả khác . . . . . . . . . . . . . . 203

8.3 Sinh các ca kiểm thử từ mô hình . . . . . . . . . . . . . . . . 203

8.4 Sinh đầu ra mong muốn cho các ca kiểm thử . . . . . . . . . . 205

8.5 Thực hiện các ca kiểm thử . . . . . . . . . . . . . . . . . . . . 205

8.6 Ví dụ minh họa . . . . . . . . . . . . . . . . . . . . . . . . . . 206

8.6.1 Đặc tả hệ thống . . . . . . . . . . . . . . . . . . . . . . 206

8.6.2 Sinh các ca kiểm thử . . . . . . . . . . . . . . . . . . . 208

8.6.3 Thực hiện các ca kiểm thử . . . . . . . . . . . . . . . . 209

8.7 Thuận lợi và khó khăn của kiểm thử dựa trên mô hình . . . . 210

8.8 Một số công cụ kiểm thử dựa trên mô hình . . . . . . . . . . . 212

8.8.1 AGEDIS . . . . . . . . . . . . . . . . . . . . . . . . . . 212

8.8.2 Spec Explorer . . . . . . . . . . . . . . . . . . . . . . . 213

8.8.3 Conformiq Qtronic . . . . . . . . . . . . . . . . . . . . 214

8.8.4 JCrasher . . . . . . . . . . . . . . . . . . . . . . . . . . 214

x MỤC LỤC

8.8.5 Selenium . . . . . . . . . . . . . . . . . . . . . . . . . . 215

8.8.6 SoapUI . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

8.8.7 W3af . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

8.9 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

8.10 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

9 Kiểm thử tự động và công cụ hỗ trợ 219

9.1 Tổng quan về kiểm thử tự động . . . . . . . . . . . . . . . . . 219

9.2 Kiến trúc của một bộ công cụ kiểm thử tự động . . . . . . . . 221

9.3 Một số công cụ kiểm thử tự động . . . . . . . . . . . . . . . . 223

9.3.1 CFT4CUnit . . . . . . . . . . . . . . . . . . . . . . . . 223

9.3.2 JDFT . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

9.3.3 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

9.3.4 QuickTest Professional . . . . . . . . . . . . . . . . . . 227

9.3.5 Apache JMeter . . . . . . . . . . . . . . . . . . . . . . 228

9.3.6 Load Runner . . . . . . . . . . . . . . . . . . . . . . . 228

9.4 Tổng kết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

9.5 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

10 Kiểm thử tích hợp 231

10.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

10.2 Các loại giao diện và lỗi giao diện . . . . . . . . . . . . . . . . 232

10.3 Tích hợp dựa trên cấu trúc mô-đun . . . . . . . . . . . . . . . 234

10.3.1 Tích hợp từ trên xuống . . . . . . . . . . . . . . . . . . 235

10.3.2 Tích hợp từ dưới lên . . . . . . . . . . . . . . . . . . . 236

10.3.3 Tích hợp bánh kẹp . . . . . . . . . . . . . . . . . . . . 237

10.4 Tích hợp dựa trên đồ thị gọi hàm . . . . . . . . . . . . . . . . 238

10.4.1 Tích hợp đôi một . . . . . . . . . . . . . . . . . . . . . 238

MỤC LỤC xi

10.4.2 Tích hợp láng giềng . . . . . . . . . . . . . . . . . . . . 239

10.5 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

11 Kiểm thử hệ thống, chấp nhận và hồi quy 241

11.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

11.2 Kiểm thử hệ thống . . . . . . . . . . . . . . . . . . . . . . . . 243

11.2.1 Kiểm thử tính dễ dùng . . . . . . . . . . . . . . . . . . 246

11.2.2 Kiểm thử giao diện người dùng . . . . . . . . . . . . . 250

11.2.3 Kiểm thử hiệu năng . . . . . . . . . . . . . . . . . . . 250

11.2.3.1 Khái niệm . . . . . . . . . . . . . . . . . . . . 250

11.2.3.2 Kiểm thử hiệu năng liên quan . . . . . . . . . 251

11.3 Kiểm thử chấp nhận . . . . . . . . . . . . . . . . . . . . . . . 253

11.4 Kiểm thử hồi quy . . . . . . . . . . . . . . . . . . . . . . . . . 255

11.4.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . . . 255

11.4.2 Kỹ thuật kiểm thử hồi quy . . . . . . . . . . . . . . . . 256

11.5 Bài tập . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

pdf286 trang | Chuyên mục: Kiểm Chứng Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 3099 | Lượt tải: 5download
Tóm tắt nội dung Giáo trình Kiểm thử phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ẢO 265
[DJ76] Fosdick Lloyd D. and Osterweil Leon J., Data flow analysis in
software reliability, ACM Comput. Surv. 8 (1976), no. 3, 305–
330.
[fS91] International Organization for Standardization, Data
elements and interchange formats—information inter-
change—representation of dates and times, International
standard iso 8601:1988, technical corrigendum 1, switzerland,
International Organization for Standardization, 1991.
[G.95] Leveson Nancy G., Safeware: system safety and computers,
ACM, New York, NY, USA, 1995.
[GG12] Markus Grtner and Markus Grtner, Atdd by example: A
practical guide to acceptance test-driven development, 1st ed.,
Addison-Wesley Professional, 2012.
[GJ88] Frankl P. G. and Weyuker E. J., An applicable family of data
flow testing criteria, IEEE Trans. Softw. Eng. 14 (1988), no. 10,
1483–1498.
[GOA05] Mats Grindal, Jeff Offutt, and Sten F. Andler, Combination
testing strategies: a survey, Softw. Test., Verif. Reliab. 15
(2005), no. 3, 167–199.
[Gru73] F. Gruenberger, Program testing: The historical perspective,
Program Test Methods, Prentice-Hall, 1973, pp. 11–14.
[IEE93] Computer Society IEEE, Ieee standard classification for soft-
ware anomalies, Ieee standard 1044-1993, IEEE Computer So-
ciety, 1993.
[Ing61] Stuart J. Inglis, Planets, stars, and galaxies, 4th ed., Wiley and
Sons, New York, NY, USA, 1961.
[Jor13] Paul C. Jorgensen, Software testing: A craftman’s approach, 4th
ed., CRC Press, Inc., Boca Raton, FL, USA, 2013.
[Kar12] Michael Kart, Behavior-driven development: conference tuto-
rial, J. Comput. Sci. Coll. 27 (2012), no. 4, 75–75.
266 TÀI LIỆU THAM KHẢO
[KJ02] El-Far I. K. and Whittaker J.A., Model-based software testing,
Encyclopedia of Software Engineering (2002), 825—-837.
[Kru05] Steve Krug, Don’t make me think: A common sense approach to
the web (2nd edition), New Riders Publishing, Thousand Oaks,
CA, USA, 2005.
[KWG04] D. Richard Kuhn, Dolores R. Wallace, and Albert M. Gallo,
Software fault interactions and implications for software test-
ing, IEEE Trans. Software Eng. 30 (2004), no. 6, 418–421.
[Lee03] Copeland Lee, A practitioner’s guide to software test design,
Artech House, Inc., Norwood, MA, USA, 2003.
[Mal87] Chellappa Mallika, Nontraversible paths in a program, IEEE
Trans. Softw. Eng. 13 (1987), no. 6, 751–756.
[Mar81] Weiser Mark, Program slicing, Proceedings of the 5th inter-
national conference on Software engineering (Piscataway, NJ,
USA), ICSE ’81, IEEE Press, 1981, pp. 439–449.
[Mar84] , Program slicing, IEEE Trans. Softw. Eng. 10 (1984),
no. 4, 352–357.
[Mar03] Robert Cecil Martin, Agile software development: Principles,
patterns, and practices, Prentice Hall PTR, Upper Saddle
River, NJ, USA, 2003.
[McC76] T.J. McCabe, A complexity measure, IEEE Transactions on
Software Engineering 2 (1976), no. 4, 308–320.
[MFB+07] J. Meier, Carlos Farre, Prashant Bansode, Scott Barber, and
Dennis Rea, Performance testing guidance for web applications:
patterns & practices, Microsoft Press, Redmond, WA, USA,
2007.
[MG04] J. Mayer and R. Guderlei, Test oracles using statistical methods,
the First International Workshop on Software Quality, 2004,
pp. 179–189.
[Mil91] Edward F. Miller, Automated software testing: A technical per-
spective, American Programmer 4 (1991), no. 4, 38–43.
TÀI LIỆU THAM KHẢO 267
[MMA02] Vanmali M., Last M., and Kandel A., Using a neural network in
the software testing process, International Journal of Intelligent
Systems 17 (2002), no. 1, 45–62.
[MMA04] Last M., Friendman M., and Kandel A., Using data mining for
automated software testing, International Journal of Software
Engineering and Knowledge Engineering 14 (2004), no. 4, 369–
393.
[Mol09] Ian Molyneaux, The art of application performance testing:
Help for programmers and quality assurance, 1st ed., O’Reilly
Media, Inc., 2009.
[MRA04] Blackburn M., Busser R., and Nauman A., Why model-based
test automation is different and what you should know to get
started, Proceedings of International Conference on Practical
Software Quality and Testing, PSQT’04, 2004.
[Mye75] Glenford J. Myers, The art of software testing, Wiley Inter-
science, New York, NY, USA, 1975.
[oST02a] National Institute of Standards and Technology, The economic
impacts of inadequate infrastructure for software testing, Nist
planning report, National Institute of Standards and Technol-
ogy, 2002.
[oST02b] , Software errors cost u.s. economy $59.5 bullion an-
nually, Nist news release, National Institute of Standards and
Technology, 2002.
[PE85] D. E. Perry and W. M. Evangelist, An empirical study of
software interface faults, Proceedings of the Twentieth Annual
Hawaii International Conference on Systems Sciences, January
1987, Volume II, 1985, pp. 113–126.
[Pos90] Robert M. Poston, Automated software testing, Workshop Pro-
gramming Environments (NJ, USA), Inc. Tinton Falls, 1990.
[Pos91] , A complete toolkit for the software tester, American
Programmer 4 (1991), no. 4, 28–37.
268 TÀI LIỆU THAM KHẢO
[PZKH06] Hu Peifeng, Zhang Zhenyu, Chan W. K., and Tse T. H., An em-
pirical comparison between direct and indirect test result check-
ing approaches, Proceedings of the 3rd international workshop
on Software quality assurance (New York, NY, USA), SOQUA
’06, ACM, 2006, pp. 6–13.
[Rob85] Mandl Robert, Orthogonal latin squares: an application of ex-
periment design to compiler testing, Commun. ACM 28 (1985),
no. 10, 1054–1058.
[Rub94] Jeffrey Rubin, Handbook of usability testing: How to plan, de-
sign, and conduct effective tests, John Wiley & Sons, Inc., New
York, NY, USA, 1994.
[S.82] Pressman Roger S., Software engineering: A practitioner’s ap-
proach, McGraw-Hill, Inc., New York, NY, USA, 1982.
[Shr89] Phadke Madhav Shridhar, Quality engineering using robust de-
sign, Englewood Cliffs, N.J. Prentice Hall, 1989.
[SJ85] Rapps Sandra and Weyuker Elaine J., Selecting software test
data using data flow information, IEEE Trans. Softw. Eng. 11
(1985), no. 4, 367–375.
[Som10] Ian Sommerville, Software engineering, 9 ed., Addison-Wesley,
2010.
[SvBGF+91] Fujiwara Susumu, von Bochmann Gregor, Khendek Ferhat,
Amalou Mokhtar, and Ghedamsi Abderrazak, Test selection
based on finite state models, IEEE Trans. Softw. Eng. 17 (1991),
no. 6, 591–603.
[TL02] Kuo-Chung Tai and Yu Lei, A test generation strategy for pair-
wise testing, IEEE Trans. Software Eng. 28 (2002), no. 1, 109–
111.
[WM96] Arthur H. Watson and Thomas J. McCabe, Structured testing:
A testing methodology using the cyclomatic complexity metric,
NIST Special Publication 500-235, National Institute of Stan-
dards and Technology, Computer Systems Laboratory, NIST,
Gaithersburg, MD 20899-0001, 1996.
Sơ lược về các tác giả
TS. Đặng Văn Hưng2 tốt nghiệp ngành Toán học tính toán tại Khoa Toán-
Cơ, Trường Đại học Tổng hợp Hà Nội (nay thuộc Trường đại học Khoa học
Tự nhiên, Đại học Quốc gia Hà Nội) năm 1977, bảo vệ thành công học vị
Tiến sĩ ngành Khoa học máy tính tại Viện Khoa học Máy tính và Tự động
hóa, Viện Hàn lâm Khoa học Hungary tháng 2 năm 1988. TS Đặng Văn
Hưng khởi đầu sự nghiệp chuyên môn của mình là một nghiên cứu viên tại
viện Công nghệ Thông tin, Viện Khoa học và Công nghệ Việt Nam từ năm
1978, và làm nghiên cứu viên của Viện Quốc tế về Kỹ nghệ Phần mềm thuộc
Trường đại học Liên hiệp quốc từ năm 1995 đến năm 2007. Từ năm 2008 đến
nay TS Đặng Văn Hưng là giảng viên cao cấp của Khoa Công nghệ Thông
tin, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội.
TS. Đặng Văn Hưng đã tham gia tích cực vào một số hoạt động khoa học
như giảng dạy tại một số trường hè quốc tế, tham gia các tiểu ban chương
trình của nhiều hội nghị quốc tế về lĩnh vực công nghệ thông tin, hiệu đính
sách và tạp chí quốc tế cho nhà xuất bản Springer. Lĩnh vực nghiên cứu mà
Đặng Văn Hưng quan tâm bao gồm các phương pháp hình thức, mô hình
hoá, đặc tả và kiểm chứng phần mềm, các hệ tính toán sông song và phân
tán, kỹ thuật phát triển phần mềm dựa trên thành phần. TS. Đặng Văn
Hưng đã công bố hơn 80 bài báo trong lĩnh vực chuyên môn của mình trong
các tạp chí và kỷ yếu của các hội nghị quốc tế và trong nước. TS. Đặng Văn
Hưng đã từng là giáo sư mời của đại học Sư phạm Hoa Đông, Thượng Hải,
Trung quốc, và hiện nay là phó tổng biên tập Chuyên san Công nghệ Thông
tin và Truyền thông của Đại học Quốc gia Hà Nội.
2∼dvh/
269
270 TÀI LIỆU THAM KHẢO
TS. Trương Anh Hoàng3 tốt nghiệp ngành tin học tại khoa Toán-Cơ,
trường Đại học Tổng hợp Hà Nội (nay thuộc trường đại học Khoa học Tự
nhiên, Đại học Quốc gia Hà Nội) năm 1994, bảo vệ thành công học vị Tiến
sĩ khoa học ngành Tin học tại Trường Đại học Bergen, Na Uy năm 2006.
Sau khi tốt nghiệp đại học Trương Anh Hoàng đã tham gia nhiều dự án
phát triển phần mềm ở nhiều công ty trong và ngoài nước và thu được nhiều
kinh nghiệm thực tế ở các dự án này. Từ năm 2008 đến nay TS. Trương Anh
Hoàng là giảng viên Khoa Công nghệ Thông tin, Trường Đại học Công nghệ,
Đại học Quốc gia Hà Nội. Các môn giảng dạy chính của TS. là Công nghệ
Phần mềm và Kiểm thử Phần mềm. Một số hướng nghiên cứu chính của TS.
là hệ thống kiểu, phân tích và kiểm chứng chương trình, và kiểm thử tự động.
TS. Phạm Ngọc Hùng4 tốt nghiệp đại học ngành Công nghệ Thông tin
tại Khoa Công nghệ (nay là Trường Đại học Công nghệ), Đại học Quốc
gia Hà Nội (ĐHQGHN) năm 2002, tốt nghiệp Thạc sĩ chuyên ngành Công
nghệ Phần mềm tại Viện Khoa học và Công nghệ tiên tiến Nhật Bản năm
2006, bảo vệ thành công học vị Tiến sĩ chuyên ngành Công nghệ Phần mềm
tại Viện Khoa học và Công nghệ tiên tiến Nhật Bản năm 2009. TS. Phạm
Ngọc Hùng bắt đầu sự nghiệp nghiên cứu từ năm 2002 tại Khoa Công nghệ,
ĐHQGHN. Từ năm 2009 đến nay, Tiến sĩ là giảng viên tại Trường Đại học
Công nghệ, ĐHQGHN. Các hướng nghiên cứu quan tâm của TS. Phạm Ngọc
Hùng gồm các phương pháp hình thức, mô hình hoá, đặc tả và kiểm chứng
phần mềm, kiểm thử tự động và tiến hóa phần mềm.
3∼hoangta/
4∼hungpn/

File đính kèm:

  • pdfGiáo trình Kiểm thử phần mềm.pdf
Tài liệu liên quan