Bài viết chuyên sâu

[Software Testing] Về lập TestPlan

[Software Testing] Về lập TestPlan

by Admin Dathoc -
Number of replies: 0

#koolj_softwaretesting
#chiase
#testplan

Vừa rồi mình có chia sẻ Quy trình Kiểm định kiểm tra phần mềm nói chung, cho đại đa số anh chị em đang gia công phần mềm tại Việt Nam. Bài toán đã được áp dụng từ 1996 từ các công ty nhỏ; sau đó 2004 sang FPT Software; và mình nghĩ 50 năm nữa vẫn áp dụng. Và trong đó, xin chia sẻ thêm về: Công việc tạo TestPlan và các Chú ý cùng Templates để tạo một TestPlan hoàn ảo.

Ví dụ một testplan hoàn hảo: dathoc.net/test_process, folder template, file spc_testplan
.
.
👉Mục tiêu công việc tạo TestPlan: Tạo kế hoạch tiến độ: ai, cần tài nguyên gì, làm những cái gì...thuộc testing; thiết kế, mô tả hoạt động kèm biểu mẫu các công việc cụ thể trong các hoạt động testing; các sản phẩm và biểu mẫu sản phẩm sau khi thực hiện xong kế hoạch testing; ước lượng đo lường công việc thực hiện; nêu các rủi ro trong quá trình testing; của dự án.

👉Ai làm cái này: Thông thường test leader, hoặc người có thâm niên công tác làm kiểm thử phần mềm từ 1-2 năm.

👉Thường diễn ra khi nào: Theo đúng quy trình, nó nên được thực thi sau khi đã làm rõ Yêu Cầu bài toán cần gia công phần mềm.

👉Mô hình công việc tạo TestPlan: Có thể tuỳ độ dài dự án, độ khó dự án, độ đông đảo các thành phần dự án; quy định mô hình kiểu 1 master testplan, nhiều iteration testplan

👉Ràng buộc: Đôi khi team theo quy trình agile, rồi dự án testing... họ cũng ko cần phải làm testplan: điều đó hàm ý: có ai đó đã plan công việc này hộ bạn rồi. Hoặc công việc đó bạn làm trong 2 phút là xong.
.
.
Fans của group có thể cho thêm ý kiến để có được một mẫu TestPlan áp dụng dự án nào cũng được.
.
.
.
👉Một PLAN nói chung cần mô tả rõ những thứ sau:
- Tuân theo chuẩn XYZ, chuẩn khách hàng, chuẩn ISO, ISTQB....
- Phạm vi bạn giải quyết những cái gì
- Các thiết kế và xử lý hướng giải quyết. Lịch triển khai xử lý: giai đoạn nào cần xử lý gì.
- Các đo đạc ước lượng kèm rủi ro nếu có
- Các tài nguyên (con người, phi con người) bạn dùng để xử lý. Lịch thực thiện: ai làm cái gì khi nào
- Các thống nhất về giao tiếp giữa các bên trong quá trình xử lý: ai tập trung thông tin gì, link contact
- Các sản phẩm phần sản phẩm đầu ra mỗi xử lý, và: Lịch bàn giao
 .
.
👉Một TEST PLAN cho software development, bất kỳ gia công, hay tạo mới, phần mềm thông thường hay phần cứng... nói chung cần mô tả rõ:
- Theo mô hình khách hàng nếu có; tuỳ theo độ to, độ phức tạp dự án; độ phức tạp của team.
VD: có thể chỉ có 1 testplan; có thể có 1 master testplan và nhiều iteration testplan; testplan cho phần cứng; testplan cho phần mềm....

- Phạm vi yêu cầu CHỨC NĂNG và PHI CHỨC NĂNG từ khách hàng, từ sản phẩm cần test....; cụ thể từng dòng một nội dung; cụ thể giới hạn thời gian không gian; cụ thể ràng buộc nếu có
VD: đăng ký, chọn hàng, cho vào rỏ, thanh toán, đợi hàng ship tới, kiểm tra hàng, xong ---> Yêu cầu dạng Chức năng
VD: đăng ký phải nhanh 3 giây thôi...., chọn hàng có thể customize nhiều màu sắc trên GUI...., cho vào rỏ, thanh toán, đợi hàng cần thân quen với người Nhật...ship tới, kiểm tra hàng cần phục vụ như người Đức..., xong ---> Yêu cầu dạng Phi chức năng

- Các ước lượng: đo đạc lượng lỗi có thể xảy ra toàn dự án; đo đạc về tài nguyên tiêu tốn khi số lỗi đó xảy ra; đo đạc tài nguyên tiêu tốn để sửa số lỗi đó; đo đạc các thông số về công việc testing (tỷ lệ lỗi trên thời gian test... tỷ lệ lỗi lặp lại trên số case.... xu thế lỗi co cụm, phạm vi); ...và có thể kèm rủi ro nếu các ước lượng là KHÔNG ok.
VD: Có 3 kiểu lỗi trong dự án: lỗi dễ: 5 phút xử lý; lỗi vừa: 20 phút; lỗi khó: 1 ngày -> Vậy theo mô hình XYZ, chúng tôi có 540 lỗi dễ, 300 lỗi vừa và 20 lỗi khó. Tổng lực sửa là: 56 ngày công; chi phí sửa là: $3000
.
.
- Các thiết kế KIỂU kiểm tra, kiểm thử mà sẽ xử lý (có thể khách hàng yêu cầu, tự trải nghiệm, quy định từ quy trình...) trong đó nêu rõ: đầu ra, đầu vào, các bước làm; các case thiết kế; đo đạc thời gian viết, thời gian thực thi; số lượng lỗi nếu có tìm ra ở Kiểu này; biểu mẫu quy định từng báo cáo khi kết thúc KIỂU; data chuẩn bị; script automation nếu có; thời điểm khi nào gọi là xong KIỂU kiểm tra; các chỉ số tốt, xấu cần vượt.
VD: Kiểu kiểm tra chức năng - functional test: đầu vào: yêu cầu, testcase, data test; đầu ra: report, buglist; cách làm: thiết kế testcase theo thuật toán XYZ, thực thi, logbug; tín hiệu xong khi: tất cả testcase pass;
VD: Kiểu kiểm tra bảo mật - penetration test: đầu vào: yêu cầu, testcase, data test; đầu ra: report, buglist; cách làm: thiết kế testcase theo OWASP, thực thi, logbug; tín hiệu xong khi: tất cả testcase pass kèm không có dấu hiệu từ công cụ bảo mật cảnh báo; hoặc có cảnh báo cấp độ 3/10;
VD: Kiểu kiểm tra hiệu năng - load test: đầu vào: yêu cầu, testcase, data test; đầu ra: report, buglist; cách làm: thiết kế testcase theo thuật toán XYZ, kèm tool abc, thực thi, ghi lại thông số; tín hiệu xong khi: tất cả testcase được thực thi và có báo cáo;
.
.
- Phân bổ LEVEL với KIỂU test
VD: level unit test: có unit variable test, unit component test
VD: level system test: có functional test, tracability test, loadtest, penetration test;
VD: level acceptance test: có regression test

- Các tài nguyên: Máy móc cần CPU, RAM ...client, server thế nào cho môi trường test. Kèm con người: ai, vai trò gì, làm những gì trong giai đoạn gì.
VD: Bạn A tester, dùng máy Celeron test, cần thiết bị X ram 32, chip snapdraton;
VD: Module thanh toán dùng máy Celeron test lient, mobile iphone 6 client, cần server X là database, Y là web api

- Các mẫu thống nhất liên hệ contact trong team; khi có vấn đề lỗi
VD: khi có >3; >5 lỗi liên hệ ai; khi có >1 lỗi fatal liên hệ ai? nếu nửa đêm liên hệ ai? nếu bạn A nghỉ liên tục 2 ngày liên hệ ai? nếu team đánh nhau liên hệ ai? nếu xảy ra cháy, động đất liên hệ ai?

- Các sản phẩm/phần sản phẩm đầu ra kèm lịch trình bàn giao
VD: Ngày 1/2/20xx, chuyển giao xong testcase, bởi bạn Y
VD: Ngày 1/2/20xx, chuyển giao xong testreport, kèm buglist, bởi bạn Y
.
.
👉Một TEST PLAN gọi là làm đơn giản hơn, hoặc cải tiến để phục vụ dự án nhỏ, có thể bạn bỏ đi một số bước, chặng, khâu để dễ hơn với team, đặc thù dự án:
VD1:
- Không có phạm vi yêu cầu
- Không có thiết kế case
- Chỉ có Lịch thực hiện test và progress của các hoạt động
- Có báo cáo sau lịch thực hiện.
VD2:
- Không có phạm vi yêu cầu
- Không có thiết kế case
- Chỉ có Lịch thực hiện test và progress của các hoạt động
- Không báo cáo sau lịch thực hiện.
.
.
Vậy với bạn bạn trải nghiệm testplan thế nào, share thêm nhé!


------------------------
Kiến thức cơ bản: dathoc.net/skill
..và biểu mẫu phục vụ software testing: dathoc.net/booktest
Quy trình kiểm định phần mềm: dathoc.net/booktest, folder test_process
Về thiết kế TestCase: https://dathoc.net/mod/forum/discuss.php?d=133
Log bug sao cho hiệu quả: https://dathoc.net/mod/forum/discuss.php?d=138
Về kiểm định hiệu năng: https://dathoc.net/mod/forum/discuss.php?d=132
Về SOA API testing: https://dathoc.net/mod/forum/discuss.php?d=134
10 lưu ý quan trọng trong scripting automation testing: https://dathoc.net/mod/forum/discuss.php?d=137
Lưu ý quan trọng trong UI, UX testing: https://dathoc.net/mod/forum/discuss.php?d=131
Về game testing: https://dathoc.net/mod/forum/discuss.php?d=83, phần kỹ sư test game
Về lập kế hoạch TestPlan: https://dathoc.net/mod/forum/discuss.php?d=143
Về nghề BA: https://dathoc.net/mod/forum/discuss.php?d=135
Về Data Analysis & Bigdata testing: https://dathoc.net/mod/forum/discuss.php?d=141
Về Blockchain testing: https://dathoc.net/mod/forum/discuss.php?d=136