Professional Documents
Culture Documents
3
Quy trình phát triển phần mềm
4
Quy trình phát triển phần mềm
5
Quy trình thác nước
Xác định
yêu cầu Các giai đoạn tuần
tự nối tiếp nhau, giai
Phân tích đoạn này xong mới
tiến hành giai đoạn
tiếp theo, và không
Thiết kế được phép quay lùi.
Cài đặt
6
Quy trình lặp
7
Quy trình lặp
8
Quy trình tăng trưởng
Tăng trưởng 1
Chuyển giao phần 1
Tăng trưởng 2
Chuyển giao phần 2
Tăng trưởng 3
Chuyển giao phần 3
...
9
Quy trình tăng trưởng
▪ Quy trình này linh hoạt, giúp phát triển phần mềm
nhanh, giảm chi phí khi thay đổi phạm vi và yêu
cầu phần mềm, dễ dàng kiểm thử và phát hiện
vấn đề trong từng vòng lặp nhỏ hơn.
▪ Quy trình này có chi phí cao hơn quy trình thác
nước, cần có kế hoạch và thiết kế đầy đủ trước
khi chia nhỏ và phát triển tăng trưởng dần.
10
Quy trình Scrum
11
Quy trình Scrum
Khởi động dự án
Thường là khách hàng hoặc
Tạo ra các yêu cầu đại diện khách hàng đảm
nhận.
Quyết định các chức năng,
đánh giá độ ưu tiên từng
chức năng (Product Backlog)
Product
Owner Cài đặt các
chức năng theo
Giải quyết trở ngại,
bản yêu cầu
xung đột trong team
Đảm bảo Sprint Tự quản lý, tổ
hoàn thành đúng chức sao cho
Bảo vệ team mục tiêu hiệu quả nhất Team
12
Quy trình Scrum
Họp khoảng 15 phút (Daily meeting):
Danh sách các chức năng
hôm qua làm gì? Vấn đề phát sinh?
cần phát triển cho sản phẩm
Hôm nay sẽ làm gì?
Sprint Review:
đánh giá kết quả
Sprint, cái gì làm
được, chưa làm
được, tiếp tục
phát triển? Và
cập nhận trạng
thái chức năng.
Quy trình phát triển phần mềm Scrum thích hợp với
những dự án nào?
A. Có kế hoạch và yêu cầu rõ ràng.
B. Có nhiều thay đổi và yêu cầu tốc độ cao.
C. Dự án có quy mô vừa và nhỏ.
D. Dự án yêu cần hoàn tất trong thời gian ngắn.
Câu hỏi 2
Developer
Tester
Tổng quan kiểm thử phần mềm
- Đến deadline
- Thực thi hết
test case
Xem
- Tỷ lệ lỗi ở một xét
mức cho phép
- ...
Tổng quan kiểm thử phần mềm
Cẩn thận
Tư duy
logic
7 nguyên tắc kiểm thử phần mềm
Early
testing
Testing
shows Defect
presence clustering
of defects
7 principles
in software
Exhausive testing Pesticide
testing is
paradox
impossible
Absent-of- Testing is
errors context
fallacy dependent
Câu hỏi
Phát biểu nào sau đây thường không phải mục tiêu
của kiểm thử?
A. Tìm lỗi phần mềm.
B. Đánh giá phần mềm có sẵn sàng triển khai
không.
C. Chứng tỏ phần mềm không làm việc.
D. Chứng minh phần mềm phát triển đúng.
Một số thuật ngữ
▪ Ví dụ
Yêu cầu:
- Nhập i
- Tính 2 * i3
- Nếu nhập i = 3 thì kết quả là 54
fault + failure
Một số thuật ngữ
Driver
Module được
kiểm thử
QA QC
Quy trình Sản phẩm
Ngừa lỗi Tìm lỗi
Các vai trò kiểm thử phần mềm
Test Analyst/
Test Leader Test Designer
Khi bug
được tìm
tìm thấy
Nguồn: internet
Các vai trò kiểm thử phần mềm
Nguồn: internet
Quy trình kiểm thử phần mềm
Acceptance
Test
System
Test
Integration
Test
Unit Test
Unit test
Unit test
Integration test
▪ Ưu điểm: quá trình kiểm thử bắt đầu chỉ khi mọi
thứ của hệ thống đã hoàn tất
▪ Khuyết điểm: khi có lỗi xảy ra rất khó cô lập lỗi để
tìm ra nguyên nhân.
▪ Big-bang này thường là lựa chọn không tốt cho
chiến lược tích hợp, nó có thể dẫn đến nhiều rủi
ro sau đó của dự án, thời điểm tốn nhiều chi phí
để giải quyết các vấn đề tìm thấy.
Các chiến lược tích hợp
▪ Yêu cầu chức năng là các yêu cầu chỉ định các
chức năng của hệ thống hoặc các thành phần cần
được thực hiện, nó chỉ định chi tiết những gì
(WHAT) hệ thống cần làm.
▪ Trong suốt quá trình kiểm thử chức năng, ta cần
thực hiện các kiểm tra chức năng như cài đặt,
chạy thử ứng dụng trên máy cục bộ, hệ điều hành
cục bộ, kiểm tra các chức năng của ứng dụng, các
xử lý chuỗi, văn bản như sao chép (copy), dán
(paste) cho các ký tự mở rộng, ...
System test
Performance
Scalability Capacity
Testing
Stability
Kiểm thử hiệu năng
Mục đích phân chia kiểm thử thành nhiều giai đoạn
khác nhau là gì?
A. Dễ dàng quản lý kiểm thử ở các giai đoạn.
B. Mỗi giai đoạn kiểm thử có mục đích khác nhau.
C. Có thể chạy test khác nhau trên các giai đoạn
khác nhau.
D. Càng nhiều giai đoạn thì quá trình kiểm thử
càng tốt hơn.
Câu hỏi 2
▪ Alpha testing
▪ Thực hiện bởi một nhóm người trong tổ chức phát
triển (in-house) phần mềm độc lập với nhóm phát
triển (developer).
▪ Developer quan sát người dùng sử dụng phần mềm
và ghi nhận lỗi phát sinh để sửa chữa.
▪ Alpha testing giúp phát hiện ra những vấn đề thực
tế khi sử dụng phần mềm mà nhóm phát triển chưa
biết.
Acceptance test
▪ Beta testing
▪ Tester là nhóm người từ khách hàng (external).
▪ Phần mềm cũng có thể công khai cho những
người dùng quan tâm dùng thử.
▪ Khách hàng ghi nhận lỗi và báo lại cho các
developer.
▪ Beta testing giúp phát hiện những vấn đề tương tác
giữa phần mềm và những đặc trưng trong môi
trường nó được sử dụng.
▪ Beta testing được thực hiện sau alpha testing.
Câu hỏi
Planning
Follow-up Kick-off
Formal
reviews
Rework Preparation
Review
Meeting
Kỹ thuật review
Low
Informal
Walkthrought
Technical Review
Inspectation
High
Phân tích tĩnh
▪ Phân tích tĩnh giúp phát hiện các vấn đề sớm, đưa
ra những cảnh báo những điểm đáng nghi ngờ
trong mã nguồn chương trình hoặc trong thiết kế
bằng cách tính toán một số độ đo (Metrics) như
độ phức tạp chương trình.
▪ Nó cũng giúp cải thiện khả năng bảo trì mã nguồn
và các thiết kế của phần mềm.
Phân tích tĩnh
+ =
Black-box White-box Gray-box
Kiểm thử động
▪ Verification
▪ Là quá trình đảm bảo sản phẩm phần mềm đúng
với đặc tả của nó.
▪ Thực hiện bởi developer
▪ “Are we building the product right?”
▪ Validation
▪ Là quá trình đảm bảo sản phẩm phần mềm đáp ứng
được yêu cầu của người dùng.
▪ Thực hiện bởi tester
▪ “Are we building the right product?”
V-Model
Acceptance
Requirement
Test
System
Specification
Test
Integration
Design
Test
Software Testing
Câu hỏi
▪ Test case
▪ Checklist
▪ Test plan
▪ Test report
▪ Test scenario
▪ Traceability matrix
Test case
▪ Test case là một tài liệu trong quá trình kiểm thử
phần mềm được phát triển cho một kịch bản cụ
thể để xác minh tính đúng đắn của một yêu cầu
cụ thể.
▪ Test case thể hiện cho một hành vi nào đó trong
chương trình.
▪ Một test case gồm dữ liệu vào, các bước thực hiện
và dữ liệu ra mong muốn.
Test case
Nguồn: https://strongqa.com/
88
Checklist
Nguồn: https://strongqa.com/
89
Test plan
90
Test plan
Nguồn: https://strongqa.com/
92
Test report
▪ Test report thể hiện kết quả kiểm thử chính thức.
▪ Tài liệu này lưu lại kết quả kiểm thử phần mềm
một cách có tổ chức, mô tả điều kiện và môi
trường kiểm thử, so sánh kết quả kiểm thử với
mục tiêu kiểm thử đề ra.
93
Test report
Nguồn: https://strongqa.com/
94
Test scenario
95
Traceability Matrix
96
Traceability Matrix
97
Câu hỏi 1
98
Câu hỏi 2
Nếu kết quả mong muốn không được chỉ định trong
test case thì …
A. Không thể chạy các test case.
B. Khó lặp lại việc kiểm thử.
C. Khó quyết định test case là pass hay failed.
D. Không thể tự động nhập liệu cho kiểm thử
được.
99
Q&A
100