Tải bản đầy đủ (.ppt) (26 trang)

giáo trình software testing

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (440.46 KB, 26 trang )

Nguyễn Thị Thu Hiền
07/05/14 1
NỘI DUNG MÔN HỌC

Lịch sử về lỗi phần mềm, những khái niệm cơ bản về lỗi
phần mềm

Các kỹ năng nền tảng của việc kiểm thử phần mềm

Những yếu tố cơ bản cần kiểm thử trong một phần mềm

Các giai đoạn trong khi kiểm thử một phần mềm

Làm việc với các tài liệu kiểm thử: lập kế hoạch, viết và
theo dõi các test case, báo cáo lỗi

Chuẩn quốc tế của một phần mềm tốt
07/05/14 2
PHẦN I. NỀN TẢNG CỦA
SOFTWARE TESTING

Bài 1: Cơ bản về software testing

Bài 2: Quy trình phát triển phần mềm
07/05/14 3
BÀI 1. CƠ BẢN VỀ
SOFTWARE TESTING*
1. Những bug phần mềm nghiêm trọng trong lịch sử
2. Thế nào là một bug?
3. Tại sao bug xuất hiện?
4. Chi phí cho việc sửa bug


5. Tester làm những gì?
6. Những yếu tố nào tạo nên một tester tốt
07/05/14 4
1.1. NHỮNG LỖI PHẦN MỀM NGHIÊM
TRỌNG TRONG LỊCH SỬ

Trò chơi “Vua sư tử” của Disney, 1994 – 1995

Lỗi chia dấu phẩy động của bộ vi xử lý Intel Pentium, 1994

Tàu vũ trụ của NASA đáp xuống địa cực của Mars, 1999

Hệ thống phòng thủ tên lửa Patriot, 1991

Sự cố Y2K (năm 2000), khoảng 1974

Mối hiểm nguy của Virus, năm 2004
07/05/14 5
1.2. THẾ NÀO LÀ MỘT LỖI?

Lỗi phần mềm có thể dẫn đến những phiền phức, thậm chí
là gây ra những thảm họa khủng khiếp, tiêu tốn hàng triệu
dollar

Đôi khi lỗi phần mềm rất đơn giản và tinh vi, có khi quá
nhỏ đến nỗi không thể phân biệt được cái nào là lỗi và cái
nào không phải là lỗi
07/05/14 6
1.2. THẾ NÀO LÀ MỘT LỖI?


Mỗi công ty có sự lựa chọn 1 trong các thuật ngữ sau để ám chỉ
lỗi phần mềm:

Defect nhược điểm

Fault khuyết điểm

Failure sự thất bại

Anomaly sự dị thường

Variance biến dị

Incident việc rắc rối

Problem vấn đề

Error lỗi

Bug lỗi

Feature đặc trưng

Inconsistency sự mâu thuẫn
07/05/14 7
1.2. THẾ NÀO LÀ MỘT LỖI?

Một số thuật ngữ trợ giúp (supporting term):

product speci.cation


Spec

product spec

Speci.cation

Spec định nghĩa phần mềm chi tiết là gì, hành động như
thế nào, sẽ làm gì, và sẽ không làm gì?

Spec là luận cứ của cả nhóm phát triển phần mềm
07/05/14 8
1.2. THẾ NÀO LÀ MỘT LỖI?
Như thế nào là lỗi phần mềm?
07/05/14 9
1.2. THẾ NÀO LÀ MỘT LỖI?

Một lỗi phần mềm xuất hiện khi một trong 5 quy tắc sau xuất
hiện:

Phần mềm không thực hiện một số thứ giống như mô tả trong Spec

Phần mềm thực hiện một số việc mà spec yêu cầu nó không được
thực hiện

Phần mềm thực hiện một số chức năng mà spec không đề cập tới

Phần mềm không thực hiện một số việc mà spec không đề cập tới,
nhưng là những việc nên làm


Trong con mắt của tester, phần mềm là khó hiểu, khó sử dụng, chậm
đối với người sử dụng
07/05/14 10
1.2. THẾ NÀO LÀ MỘT LỖI?

Quan trọng là các lỗi phần mềm bạn đưa ra phải hợp lý

Định nghĩa trên về lỗi của một phần mềm đã bao quát những vấn đề cơ
bản

Sử dụng tất cả 5 quy tắc trên sẽ giúp bạn định nghĩa được các loại vấn đề
khác nhau trong phần mềm mà bạn đang kiểm thử.
07/05/14 11
1.3. TẠI SAO BUG XUẤT HIỆN?
Hình 1.1: Các lỗi có thể bị phát sinh do nhiều lý do, nhưng trong quá
trình phân tích các dự án mẫu thì lý do chính phát sinh bug là quá trình
truy vết theo bản đặc tả.
07/05/14 12
1.3. TẠI SAO BUG XUẤT HIỆN

Nguyên nhân chính làm xuất hiện lỗi là speci.cation:

Một số spec không viết cụ thể, không đủ kỹ lưỡng

Spec liên tục thay đổi, nhưng lại không có sự phối hợp, trao đổi
thông tin kịp thời với các đội phát triển dự án.

Nếu spec được xây dựng không đúng, lỗi sẽ phát sinh
07/05/14 13
1.3. TẠI SAO BUG XUẤT HIỆN


Nguyên nhân chính làm xuất hiện lỗi là speci.cation:

Quá trình design cũng dễ phát sinh lỗi:

Bản thiết kế (design) không chi tiết

Khi design thay đổi, nhưng nhóm phát triển chưa kịp cập nhật

Design không đúng dẫn đến phần mềm xây dựng sai
07/05/14 14
1.3. TẠI SAO BUG XUẤT HIỆN

Nguyên nhân chính làm xuất hiện lỗi là speci.cation:

Quá trình design cũng dễ phát sinh lỗi:

Lỗi do quá trình viết code:

Code không đáp ứng đúng yêu cầu của spec, design

Code đáp ứng chưa đủ yêu cầu của spec, design

Code không cập nhật kịp thời các bản spec, design
07/05/14 15
1.3. TẠI SAO BUG XUẤT HIỆN

Nguyên nhân chính làm xuất hiện lỗi là speci.cation:

Quá trình design cũng dễ phát sinh lỗi:


Lỗi do quá trình viết code:

Lỗi khác:

Một số lỗi nhân bản, bắt nguồn từ 1 nguyên nhân

Lỗi do quá trình kiểm thử sai

Những bug tưởng là lỗi, nhưng lại không hẳn là lỗi
07/05/14 16
1.4. CHI PHÍ CHO VIỆC SỬA LỖI
Hình 1.2: Chi phí cho việc sửa lỗi có thể tăng đột ngột trên toàn bộ dự án
Ví dụ: - The Lion King animate StoryBook
- Floating point division
07/05/14 17
1.5. TESTER PHẢI LÀM NHỮNG GÌ?

Mục đích của tester là tìm ra lỗi phần mềm

Ví dụ: ô textbox nhập ngày tháng, nhập đúng => pass => dễ bỏ quên
những trường hợp nhập sai định dạng

Đôi khi phải trả giá rất đắt bởi quá trình kiểm tra lỗi không phát
hiện ra vấn đề
07/05/14 18
1.5. TESTER PHẢI LÀM NHỮNG GÌ?

Mục đích của tester là tìm ra lỗi phần mềm


Mục đích của tester là tìm các lỗi và tìm thấy chúng một cách sớm nhất
có thể

Mục đích của tester là tìm các lỗi, tìm thấy chúng một cách sớm nhất
có thể, và đảm bảo rằng chúng sẽ được sửa
07/05/14 19
1.5. TESTER PHẢI LÀM NHỮNG GÌ?

Chú ý:

Tester là một người đi tìm kiếm sự hoàn hảo

Nhưng một phần mềm được sửa không có nghĩa rằng phần mềm
đã hoàn hảo

Tester phải biết lập kế hoạch, biết dừng quá trình kiểm thử đúng
lúc
07/05/14 20
1.6. NHỮNG YẾU TỐT NÀO TẠO NÊN
MỘT TESTER TỐT

So sánh công việc của tester với programer

Hai công việc đều phải sử dụng nhiều kỹ năng giống nhau

Tester không nhất thiết phải biết lập trình, nhưng họ cũng tạo ra
những khoản lợi nhuận khổng lồ
07/05/14 21
1.6. NHỮNG YẾU TỐT NÀO TẠO NÊN
MỘT TESTER TỐT


So sánh công việc của tester với programer

So sánh các công ty được khách hàng ưa chuộng (1) và các công ty bị
nhiều khách hàng tẩy chay (2)

(1): tạo ra những phần mềm tốt, tester được coi như 1 kỹ sư thực sự

(2): khách hàng ko ưa thích nhứng phần mềm còn nhiều lỗi, họ
không đánh giá đúng vai trò của tester
07/05/14 22
1.6. NHỮNG YẾU TỐT NÀO TẠO NÊN
MỘT TESTER TỐT

Những đặc điểm mà tester nên có:

Là người thích khám phá

Là người thợ sửa chữa

Là người nghiêm khắc

Là người sáng tạo

Là người cầu toàn

Là người có óc phán đoán

Là người khéo léo và biết ngoại giao, có khả năng thuyết phục
người khác

07/05/14 23
1.6. NHỮNG YẾU TỐT NÀO TẠO NÊN
MỘT TESTER TỐT

Nếu tester có kiến thức về lập trình

Kiểm thử mã nguồn

Kiểm thử tự động

Nếu tester là một chuyên gia trong lĩnh vực khác

Nó trợ giúp đắc lực cho quá trình phát hiện lỗi của phần mềm ở
lĩnh vực đó
07/05/14 24
BÀI 1. TỔNG KẾT

Kiểm thử phần mềm là một công việc có tính chất phê bình.

Với tầm cỡ và độ phức tạp của các phần mềm ngày nay, thì yêu cầu cấp
bách là kiểm thử phần mềm cần được thực thi một cách chuyên nghiệp
và hiệu quả.

Trong các chương tiếp sau của phần I, bạn sẽ được tìm hiểu về quy trình
phát triển phần mềm và cách mà tester làm các vấn đề ăn khớp lại với
nhau.

Những hiểu biết của bạn sẽ giúp bạn đánh giá và áp dụng những kỹ thuật
kiểm thử đặc biệt trong toàn bộ nội dung còn lại môn học này.
07/05/14 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×