Professional Documents
Culture Documents
pointer: có thể can thiệp vô vùng RAM (con trỏ quét vùng RAM)
=====================================================
bug - mistake - error - defect - failure
***
NHẬP MÔN KIỂM THỬ PHẦN MỀM - SOFTWARE TESTING
- Kiểm thử là nghề của "thánh soi" đi tìm ra các sai sót, bất thường của App được
viết cho người dùng sử dụng. Sai sót được gọi BUG.
I. THUẬT NGỮ "SAME SAME" NHAU: bug, defect ,mistake, error, failure -> xem cheat
sheet có 1 câu giải thích ngữ nghĩa đặt trong bối cảnh
II. ĐỊNH NGHĨA VỀ KIỂM THỬ PHẦN MỀM - KIỂM THỬ PHẦN MỀM LÀ GÌ? - WHAT IS SOFTWARE
TESTING
Đích đến của việc kiểm thử là tìm cái bug/sai, và khẳng định app ngon sẵn sàng đưa
vào sử dụng. Vậy đi tìm bug là kiểm thử, vậy làm sao khẳng định được đâu là bug,
khi nào là bug.
1. KIỂM THỬ PHẦN MỀM LÀ SO SÁNH GIỮA 2 ĐẠI LƯỢNG, 2 GIÁ TRỊ, 2 THỨ
- EXPECTED VALUE (giá trị kì vọng, giá trị cần phải đạt được)
- ACTUAL VALUE (giá trị thực tế, giá trị trả về thấy được)
- Kiểm thử phần mềm là so snahs giữa expected value và actual value
- nếu expected value == actual value -> app ngon
- nếu expected value != actual value -> BUG
VÍ DỤ: ta cần tìm app thu ngân - tính tiền bán hàng
- Tính tiền bán hàng tùy từng thời điểm có khuyến mãi. Vị trong tháng 9 này khuyến
mãi 10% cho đơn hàng trị giá từ 1 triệu đồng trở lên
- Dân dev viết code, cài luông công thức tính bill có áp dụng khuyến mãi tùy đơn
hàng
- Dân tester/QC/dân kiểm thử/dân thán soi sẽ chạy app, chạy thử tính năng tạo bill
xem nó chạy có đúng hay không, test tính nawg tính bill coi có đúng hay không? ->
nếu đúng, ok. nếu sau -> bug
-muốn test thì phải đưa data, chạy thử app với data đưa vào, xem app xử lý đúng hya
sai! SO SÁNH GIỮA EXPECTED VÀ ACTUAL VALUE
- Dân QC/tester biết rằng: NẾU ĐƯA VÀO APP CÁC MÓN HÀNG MÀ TỔNG THANH TOÁN LÀ 800K
-> KHÁCH HÀNG PHẢI TRẢ 800K, KO GIẢM -> 800K ĐƯỢC GỌI LÀ EXPECTED VALUEMAF APP PHẢI
TRẢ VỀ
THỰC TẾ NHẤN NÚT SCAN SẢN PHẨM, TIỀN BILL CỨ TĂNG THEO TÍT TÍT
NẾU KHÁCH HÀNG, TESTER DỪNG Ở 800K THÌ MÀN HÌNH TOTAL PHẢI LÀ 800K -> MÀN HÌNH CÓ
GÌ KHI CHẠY THÌ GỌI KAF ACTUAL VALUE
nếu màn hình == kì vọng khi chưa có app == 800k, app ngon
* TEST CASE 1:KIẾM THỬ tính bill với tiền mua < 1 triệu! App ko tính khuyến mãi
trong trường hợp này
- DÂN TESTER KIỂM THỬ CÂU CHUYỆN 2, TÌNH HUỐNG 2
SCAN sản phẩm, tít tít vừa đủ 1tr đồng; chẳng cần app, chỉ cần tình nhẩm, máy
casio, cũng biết được rằng khách phải trả
- Vậy 900K gọi là giá trị kì vọng, expected value mà app phải trả về khi mua 1
triệu đồng (khuyến mãi 10%)
- chờ app viết xõng, scan 1 triệu đồng, phần bill phải trả app phải ra 1 con số nào
đó - actual value
- nếu actual value lúc này là 900k == expected value của máy casio -> app ngon
- nếu actual value = bill phải trả == 1 triệu đồng RÕ RÀNG ACTUAL VALUE QUÁ KHÁC
EXPECTED ĐANG LÀ 900K -> bug xuất hiện
* TEST CASE 2: KIỂM THỬ tính bill với tiền mua == 1 triệu! app tính khuyến mãi
trong trường hợp này, trừ 10% tính bill
* CHỐT HẠ: Đ/N 1: KIỂM THỬ LÀ RUN APP CHẠY CÓ NHƯ TÍNH TOÁN DỰ KIẾN TRƯỚC HAY KHÔNG
2. KIỂM THỬ PHẦN MỀM LÀ SO SÁNH, ĐO LƯỜNG XEMM APP CÓ ĐẠT ĐƯỢC CÁC THÔNG SỐ VẬN
HÀNH, THÔNG SỐ HIỆU NĂNG, THÔNG SỐ TRẢI NGHIỆM HAY KHÔNG?
- Dân kiểm thử sẽ chạy app, đo xem chạy nhanh như thiết kế, dự định hay không, app
có chịu được 1 lượng người tải hay không ở cùng 1 thời điểm, kiểm tra xem tính dễ
dùng, tiện dụng của app có hay không? kiểm tra màu sắc, font chữ, ngữ pháp, dấu
câu... có ổn không
- VÍ DỤ: kiểm thử phần mềm còn đo thử xem nhấn 1 nút bất kì trên app, nhấn cái
dropdown (xổ ra filter/ dánh sách) thì APP ohair hồi trong vòng 3s trở lại cho bất
kì nút nhấn nào- hiệu năng sử dụng, performance
- ví dụ: không care app tính bill 10% đúng hay sai, mà chỉ quan tâm đủ 3s trở lại
hay không
-> KIỂM THỬ DẠNG TRẢI NGHIỆM APP ĐƯỢC GỌI LÀ KIỂM THỬ PHI CHỨC NĂNG NON-FUNCTIONAL
TESTING
* KHÔNG ĐƯỢC NHẦM LẪN VỚI NON-FUNCTIONAL REQUIREMENT TESTING -> CHŨ NÀY NẾU CÓ THÌ
NGHĨA KHÁC, THƯỜNG KHÔNG DÙNG THUẬT NGỮ NÀY
ví dụ: đo xem app chạy nhanh không từ 3s trở lại hay không -> non-functional
testing
khách hàng nói rằng: "app phải chạy nhanh , từ 1,5s trở lại"
QC/tester: câu này vớ vẩn không thể làm được loại câu này
non-functional không làm được
* Tìm ra những câu requirement vớ vẩn là 1 chuyện khác của nghề kiểm thử
-ví dụ: kiểm thử xem mã màu của các nút nhấn có đúng như thiết kế, bảng màu hay
không -> non-functional testing
3. KIẾM THỬ PHẦN MỀM CÒN LÀ SO SÁNH, ĐỐI CHIẾU, KIỂM TRA XEM APP CÓ ĐƯƠC CÀI ĐẶT,
HIỆN THỰC ĐÚNG NHƯ ĐÃ HỨA HAY KHÔNG; HỨA GÌ VỚI KHÁCH HÀNG, HỨA APP CÓ BAO NHIÊU
TÍNH NANGWTHIF PHẢI CÀI CHO ĐỦ (CHƯA CẦN BIẾT CHẠY ĐÚNG SAI - ĐÚNG SAI NẰM Ở 1, 2)
- VÍ DỤ: app cần login = phone, gmail, có làm chưa
- app hỗ trợ thanh toán qua momo, moca, cod, có làm chưa
- trong việc làm phần mềm, có 1 tài liệu liệt kê các tính năng của phần mềm sẽ làm,
tài liệu hứa sẽ làm tính năng gì, tài liệu gì, tài liệu này gọi tên là Software
Requirements Specification (SRS)
Bản đặc tả yêu cầu phần mềm
(nói theo nhà FU, mục III, của cuốn khóa luận tốt nghiệp - Capstone Project ở kì 9,
SWR302 luôn)
------------
CHỐT HẠ: DÙ KIỂM THỬ CÓ NHIỀU ĐỊNH NGHĨA NHƯNG CUỐI CÙNG ĐỀU LÀ:
- SO SÁNH GIỮA CẶP GÍ TRỊ: EXPECTED VALUE VS ACTUAL VALUE
- SO SÁNH GIỮA CÁC KÌ VỌNG APP PHẢI LÀ VÀ THỰC TẾ APP ĐEM LẠI CÁI GÌ
NẾU 2 CÁI == NHAU, NGON
NẾU 2 CÁI != NHAU, BUG
-----
SLOT 3 - SWT301
III. AI THAM GIA VÀO QUÁ TRÌNH KIỂM THỬ, AI LÀM THÁNH SOI, AI THAM GIA VÀO VIỆC ĐẢM
BẢO CHẤT LƯỢNG PHẦN MỀM
1. Developer
[NGOẠI TRUYỆN] thông tin tuyển dụng: tuyển QA/QC (Quality Assurance)
3. QC MANAGER
- C2: gọi hàm với đưa data đưa vào in kết quả xử lý ra 1 tệp tin gọi là log
file, sau đó xem kết quả (actual) đối chiếu với excepted
2 cách 1,2 là cách truyền thống, dễ làm, nhưng tốn công luận kết quả đúng sai
= mắt, có thể gây ra sai sót luôn
- C3: (fix C1, C2) mắt người dev không cần phải đi so sánh từng cặp expected
vs actual nữa! máy tự làm, code tự làm
- mấy tool ở trên hay ở chỗ nó góp phần vào câu chuyện tự động hóa quy trình kiểm
tra code và phối hợp với quy trình deploy sản phẩm
nghĩa là bạn đưa code lên server, server tự chạy bộ kiểm thử Unit test
check xem code ngon hay không, nếu ngon, đóng gói code thành app đem lên server
khác để sẵn sàng cho việc test app, cho dùng thật từ k/h quy trình tự động hóa quá
trình quản lý code/quản lý test/ quản lý deploy được gọi chung 1 cái tên là:
Unit Test -> CI/CD/DevOps (chứng chỉ, job title, lương 2k trở lên)
test case 2: đưa vào con số 250, thì app phải trả về chữ FA (hệ 16)
- cách mà tester chuẩn bị data/test case, sau đó mở app, input, click, đọc kết quả,
luận đúng sai hoàn toàn dùng sức trâu bò, thủ công
kĩ thuật kiểm thử thủ công để biết 1 app đún sai gọi là manual, testing
(cách làm truyền thống)
- có 1 kĩ thuật mới, kĩ thuật hiện đại giúp toàn bộ thao tác làm = tay ở trên tự
động luôn, tức là có cách để app tự mở lên, tự gõ info vào, tự click chọn tự nhấn
nút, tự mở trang khác, tự bắt message kết quả, tự so sánh với expected luôn, tự
động hết, kĩ thuật kiểm thử này gọi là
TÊN TOOL: KATALON (KMS), AKA AT/AKA TEST (FSOFT), RANOREX, TEST COMPLETE,
TELERIK,..
- DÂN QC /TESTER DÙNG CÁC BỘ THƯ VIỆN ĐỂ ĐIỀU KHIỂN APP, VIẾT CODE DÙNG THƯ
VIỆN NÀY ĐỂ IMPLETEMENT CÁC TEST CASE, NGHĨA LÀ VIẾT CÁC ĐOẠN CODE LẬP TRÌNH ĐỂ TỬ
ĐỘNG MỞ APP, CLICK CHUỘT, INPUT,...
ĐOẠN CODE NÀY DÙNG CÁC THỬ VIỆN ĐỂ ĐIỀU KHIỂN APP THÌ ĐOẠN CODE NÀY ĐƯỢC GỌI
LÀ TEST SCRIPT
THƯ VIỆN NỔI TIẾNG GIÚP TỰ ĐỘNG HÓA VIỆC KIỂM THỬ KHIẾN APP CHẠY NHƯ MA NHẬP
LÀ SELENIUM, APPIUM, CYPRESS...
* HỆ QUẢ: MẤY CÁI THƯ VIỆN NÀY GIÚP LÀM THÊM VIỆC: VIẾT TOOL, CÀY VIEW, CÀO
DATA TỪ WEB VỀ MÁY TÍNH, VỀ DATABASE CỦA MÌNH, TOOL CÀI DATA LÀ: CRAWL/CRAWLER BOT
* CHỐT HẠ:
- CÔNG VIỆC CỦA QC:
- TẠO TEST CASE (BỘ DATA KIỂM THỬ, EXPECTED VALUE, STEP ĐỂ KIỂM THỬ, NHẬP
INFO)
- TẠO TEST SCRIPT (VIẾT CODE ĐỂ TỰ ĐỘNG THỰC THI CÁC TEST CASE)
- THỰC THI TEST CASE -> GỌI LÀ TEST RUN -> ĐI TÌM BUG HOY
===================================================================================
===================================================================================
==================
Slot 4 - SWT301
[NGOẠI TRUYỆN] thông tin tuyển dụng: tuyển QA/QC (Quality Assurance)
* NHIỆM VỤ CỦA QA
- Không sờ trực tiếp vào app để tìm bug (QC/TESTER đi tìm bug), MÀ ĐI VÒNG VÒNG
CÔNG TY, NGÓ VÀO CÁC PHÒNG BAN, KỂ CẢ PHÒNG PHÁT TRIỂN PHẦN MỀM, NGÓ VÀO CẢ DỰ ÁN
MÌNH ĐANG LÀM THANH TRA, KIỂM TRA XEM CÁC PHÒNG BAN, CÁC DỰ ÁN CÓ LÀM ĐÚNG NHƯ CAM
KẾT, CÓ TUÂN THEO QUY ĐỊNH TRÌNH CHẤT LƯỢNG ĐÃ CAM KẾT HAY KHÔNG
- ĐỨNG NGOÀI TẤT CẢ, KIỂM TRA SỰ TUÂN THỦ CỦA CÁC PHÒNG BAN, CỦA DEV TEAM
- NẾU THẤY SAI SÓT, KO NHÀO VÀO SỬA, MÀ ĐI MÉC SẾP, LÃNH ĐẠO
(~~~ thầy giám thị, đội cờ đỏ của trường, giám thị hành lang)
- VÍ DỤ:
- DEV TEAM LÀM DỰ ÁN, CHỌN SCRUM LÀM PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM
QUY TẮC LÀM SCRUM CƠ BẢN CÓ NHỮNG ĐIỀU SAU
1. Dự án chia thành các khoảng thời gian đều nhau, trung bình 2 tuần
2. Mỗi 2 tuần phải demo sản phẩm/run được cho khách hàng, demo vào thứ 6 tuần
thứ 2
3. Toàn bộ requirements/tính năng hứa làm này gọi là USER STORY, lưu trữ ở 1
nơi gọi là BACKLOG, ví dụ lưu ở JIRA, TRELLO, NOTTION...
4. BUG lưu ở 1 nơi, gọi là BUG DATABASE,ví dụ BUG ZILLA, JIRA
5. Cuối mỗi tuần thứ 2 của sprint, họp demo với khách hàng, ghi nhận
feedback, deal với khách hàng về các tính năng thứ phát sinh thêm, hay thứ cần
chỉnh sửa, và phải ghi biên bản làm việc rõ ràng
6. CUOIS BUỔI DEMO (TUẦN 2 MỖI SPRINT) CÓ 1 CUỘC HỌP KHÁC TRONG NỘI BỘ TEAM
GỌI LÀ RETROSPECTIVE - HỌP CHIA SẺ CẢM XÚC VÀ KINH NGHIỆM VÀ BÀI HỌC TRONG 2 TUẦN
BIÊN BẢN GHI NHẬN
7. MỖI NGÀY 2 3 4 5 6 BUỔI SÁNG ĐẦU GIỜ HỌP ĐỨNG VÀ NHANH TRONG VÒNG 15P
MỖI THÀNH VIÊN NÓI ĐÚNG 3 CÂU:
- HÔM QUA BẠN ĐÃ LÀM GÌ?
- HÔM NAY SẼ LÀM GÌ?
- BẠN ĐANG GẶP VẤN ĐỀ GÌ?
PHIÊN HỌP NÀY GỌI LÀ DAILY STANDUP MEETING
- QA LÂU LÂU GHÉ HỎI THĂM: 4 TUẦN TRÔI QUA RỒI, TUI MUỐN XEM 2 BIÊN BẢN LÀM VIỆC
VỚI KHÁCH HÀNG? CÓ ĐỦ 2 BIÊN BẢN CHƯA? CHƯA THÌ ĐI MÉC, CÓ, CHẢ QUAN TÂM NỘI DUNG
- QA LÀ CÁNH TAY NỐI DÀI CỦA CÁC SẾP ĐỂ KIỂM SOÁT TÍNH TUÂN THỦ KỈ LUẬT, QUY TRÌNH
CỦA CÁC NHÓM, PHÒNG BAN TRONG CÔNG TY VỚI Ý NGHĨA SAU LÀ:
- MỌI VIỆC THEO ĐÚNG KẾ HOẠCH, QUY TRÌNH, ĐỘI NGŨ CHUYÊN NGHIỆP, HY VỌNG SẢN
PHẨM CÓ CHẤT LƯỢNG, MỌI THỨ ĐỀU CÓ VĂN BẢN GIẤY TỜ LÀM BẰNG CHỨNG, SAU NÀY DỄ NÓI
CHUYỆN DỄ TÌM NGUYÊN NHÂN, ĐỂ CẢI TIẾN
- QA LÀ DÂN CHƠI VỚI CÁC BỘ TIÊU CHUẨN CHẤT LƯỢNG: ISO, CMMI
- HỌ LÀ NGƯỜI CÙNG VỚI CÁC SẾP ĐƯA RA CÁC TIÊU CHUẨN, QUY TRÌNH, CÁC MẪU BÁO
CÁO/REPORT TRONG CÔNG TY ĐỂ THEO DÕI ĐƯỢC MỌI THỨ ĐANG DIỄN RA TRONG CÔNG TY, PHÒNG
BAN, PROJECT
4. USER/ END-USER - NGƯỜI CUỐI CÙNG THAM GIA VÀO CÂU CHUYỆN ĐẢM BẢO CHẤT LƯỢNG PHẦN
MỀM
tui ------> browser ---> lazada.vn ----> internet --> server <....> xử lí <----->
DB
bạn ------> browser ---> shopee.vn ----> internet --> server
IP
IIS/Tomcat
nginx...
app của mình
------------------------click-------------------------------------------DB>|
END
Tui/Bạn <--------------------------------------------------------------
|<END
------------------------------------>---------XỬ LÝ-------------------
ĐỂ TRẢ VỀ CHO END-USER
HẬU TRƯỜNG USER KHÔNG THẤY BACK-END
BROWSER<-----------------------------------------
BACK-END XỬ LÝ XONG TRẢ VỀ TRÌNH DUYỆT
TRÌNH DUYỆT TRƯỚC MẶT MÌNH, ĐẾN TRÌNH DUYỆT LÀ DỪNG
FRONT-END: THÔNG TIN VỀ ĐẾN MẶT MÌNH QUA MÀN HÌNH TRÌNH DUYỆT
LẬP TRÌNH BÀY INFO
CHO ĐẸP
FRONT-END DEVELOPMENT BACK-END DEV
FULL-STACK DEV
END-USER: THÔNG TIN TỪ APP TRẢ VỀ ĐẾN MÌNH LÀ CÙNG ĐƯỜNG, HẺM CỤT RỒI, HẾT ĐI ĐÂU
ĐƯỢC NỮA TUI LÀ NGƯỜI CUỐI CÙNG HỨNG THÔNG TIN TỪ APP
DB TUI CŨNG LÀ NGƯỜI CUỐI CÙNG HỨNG INFO TỪ APP, TỪ USER - END
END LÀ KẾT THÚC CỦA CÁI GÌ ĐÓ, 1 HÀNH TRÌNH INFO CHẠY LÊN
* CÓ NHIỀU CÁCH PHÂN LOẠI PHẦN MỀM, TÙY THEO TIÊU CHÍ PHÂN LOẠI
** PHÂN LOẠI PHẦN MỀM THEO PLATFORM (PHẦN CỨNG + OS + APP PHỤ TRỢ CHO VIỆC CHẠY APP
MÌNH): IOS, ANDROID, LINUX, WINDOWS, MACOS...
** PHÂN LOẠI THEO MỤC ĐÍCH SỬ DỤNG, THEO LOẠI USER/END-USER THÌ TA CHIA PHẦN MỀM
THÀNH 2 LOẠI CHÍNH (CÓ THẾ CÓ PHẦN MỀM RƠI VÀO 2 LOẠI LUÔN)
> GENERIC APP - APP PHỔ THÔNG, APP ĐẠI CƯƠNG, APP HƯỚNG ĐẾN SỐ DÒNG NGƯỜI DÙNG
>VÍ DỤ: GAME, TOOLS: BROWSER, DOWNLOAD, NÉN/XẢ, XỬ LÝ ẢNH /DỰNG PHIM
VĂN PHÒNG: W, P, E, MAIL
> Đặc trưng: thường sẽ có nút download, đăng kí login dùng thử
hướng đến nhà nhà người người xài app - nhu cầu phổ thông nhiều
người cần
NGƯỜI DÙNG TRÊN MẠNG DÙNG THỬ -> RA BUG, RA FEEDBACK, RA REPORT
-> USER/END-USER ĐÃ ĐÓNG VAI TRÒ QC/TESTER
----------------
> CUSTOMIZED APP, BESPOKE APP: HÀNG ĐỘ, HÀNG THỬA RIÊNG, HÀNG LÀM THEO ĐẶT HÀNG,
DÙNG CHO MỤC ĐÍCH CHUYÊN BIỆT CỦA TỔ CHỨC/ ĐƠN VỊ/ CÔNG TY MUỐN CÓ APP
> VÍ DỤ: APP thu ngân/tính tiền của GS25, 7-Eleven, Tocotoco,
App chuyển tiền của TPBank, ACB, Vietcombank
App quản lý ngân hàng cả ACB, TPBank
App quản lý bệnh viện của BVCR, BV115
App quản lý kho của Hòa Phát, Tân Hiệp Phát
> Đặc trưng: rất thường không có nút download, mà thường chỉ có video demo để
PR năng lực công ty làm app
hướng đến 1 tập user hữu hạn, dùng cho công việc của doanh
nghiệp: bv, nhà hàng, quán ăn, khách sạn, công ty sản xuất, công ty dịch vụ
tổ chức: trường, viện, trung
tâm, hội nhóm
doanh nghiệp hoạt động theo quy tắc kinh doanh riêng, app phải
riêng!
CÔNG TY LÀM APP, LÀM XONG, CÀI ĐẶT LÊN SERVER CÔNG TY ĐẶT
HÀNG(SERVER TGDD, BV CR, HÒA PH) CÓ THỂ CÀI THÊM TRÊN MÁY CỦA NHÂN VIÊN CÔNG TY ĐẶT
HÀNG
VÍ DỤ: APP QUẢN LÝ KHO CỦA HÒA PHÁT, THÌ MÌNH CÔNG TY P/M PHẢI
CÀI APP CHO MÁY CỦA THỦ KHO CỦA HOÀ PHÁT DÙNG
APP QUẢN LÝ NGÂN HÀNG: MỞ TK CHO KHÁCH HÀNG CỦA NGÂN HÀNG GHI
NHẬN KHOẢN VAY CỦA K/H CỦA NGÂN HÀNG
NHÂN VIÊN CỦA CÔNG TY ĐẶT HÀNG LÀM APP SẼ LÀ END-USER DÙNG THỬ APP MÌNH VIẾT CHO HỌ
COI ÁP CÓ ỔN KHÔNG CÓ DÙNG ĐƯỢC TRONG HOẠT ĐỘNG CỦA CÔNG TY HAY KHÔNG
- NHÂN VIÊN HÒA PHÁT NÓI RẰNG APP NGON, DÙNG ĐƯỢC
- NHÂN VIÊN KHO CỦA TGDD, BÁC SĨ CỦA CHỢ RẪY NÓI RẰNG APP DÙNG KHÓ QUÁ
MÌNH LÀ CÔNG TY PHẦN MỀM CUNG CẤP APP CHO HỌ NGHE, GHI CHÉP, VỀ NHÀ FIX, SỬA NGAY
CHO HỌ THỬ TIẾP
NẾU LÀ APP CHUYỂN TIỀN CỦA NGÂN HÀN, THÌ NV NGÂN HÀNG CÒN GIẢ BỘ ĐÓNG VAI NGƯỜI
CHUYỂN TIỀN RÚT TIỀN ĐỂ TEST XEM APP CÓ ỔN KHÔNG VỚI KHÁCH HÀNG CỦA NGÂN HÀNG KHI
SAU NÀY HỌ TRẢI NGHIỆM APP CHUYỂN TIỀN
NÓI CHUNG NHÂN VIÊN CÔNG TY ĐẶT HÀNG LÀM APP SẼ LÀ END-USER DÙNG THỬ APP ĐỂ XEM ỔN
KHÔNG
* CHỐT HẠ: DÙ APP LOẠI NÀO THÌ CŨNG CẦN NGƯỜI DÙNG DÙNG THỬ
NGƯỜI DÙNG CÓ THỂ LÀ BẤT KỲ AI CHO APP GENERIC
NGƯỜI DÙNG LÀ NHÂN VIÊN CỦA CÔNG TY ĐẶT HÀNG LÀM APP RIÊNG CHO HỌ (CUSTOMIZE,
BESPOKE )
HÀNH ĐỘNG DÙNG THỬ ĐỂ TÌM BUG, FEEDBACK, GỢI Ý, CMT, CÀM RÀM CHÍNH LÀ HÀNH
ĐỘNG ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
VIỆC NGƯỜI DÙNG CUỐI THAM GIA VÀO KIẾM THỬ (CHỦ ĐỘNG, BỊ ÉP TỰ NGUYỆN) GỌI LÀ
UAT - USER ACCEPTANCE TESTING - KIỂM THỬ CHẤP NHẬN, KIỂM THỬ NGHIỆM THU SẢN
PHẨM
======================================
IV. 7 VIÊN NGỌC RỒNG
--------------------
[NGOẠI TRUYỆN] - VÀI CON SỐ ĐÁNG NHỚ
* OOP: 4 + 5
* AGILE: 4 (MAMIFETO)
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
* DB: 3 DANG CHUẨN (NF),
3 LOẠI SQL: DDL (create/drop/alter), DML (select, update, delete), DCL
(grant, revoke)
5 LOẠI JOIN: INNER JOIN, LEFT, RIGHT, FULL, TÍCH ĐỀ CÁC - CARTESIAN PRODUCT
* SWR: 3 GÓC NHÌN: WHY, WHAT, WHO
* SWT: 7 VIÊN NGỌC RỒNG!!
* ARCHITECTURAL VIEW: 4 + 1 VIEW MODEL
===================================================================================
===================================================================================
====================
SLOT 6 - SWT301
7 VIÊN NGỌC RỒNG - 7 NGUYÊN LÝ CỦA VIỆC KIỂM THỬ - 7 PRINCIPLES OF SOFTWARE TESTING
- đây là những câu phát biểu danh cho dân kiểm thử phần mềm, dân QC/Tester mang ý
nghĩa
Định Hướng, Chỉ Hướng , Chỉ Dẫn những nguyên tắc
là kim chỉ nam châm dẫn lỗi đi
NHỚ NÓ, DÂN QC BIẾT NÊN LÀM GÌ, LÀM NHƯ THẾ NÀO 1 CÁCH TỔNG QUÁT NHẤT KHI TEST
PHẦN MỀM GIỐNG 4 NGUYÊN LÝ OOP SẼ CHỈ DẪN TƯ DUY VỀ LÀM APP THEO STYLE OOP/CLASS
OBJECT
** NL1: TESTING SHOWS PRESENCE OF DEFECTS
- KIỂM THỬ LÀ HOẠT ĐỘNG LIÊN QUAN ĐẾN ĐẢM BẢO PHẦN MỀM CÓ CHẤT LƯỢNG - "KHÔNG CÓ
BUG" (CHÚ Ý NGOẶC KÉP)
- KIỂM THỬ PHẦN MỀM LÀ ĐI TÌM BUG, ĐI TÌM CẰNG NHIỀU BUG CÀNG TỐT, TÌM ĐƯỢC CÀNG
NHIỀU BUG NGHIÊM TRỌNG CÀNG TỐT(BUG NHIỀU LẮM HẢ)
- KIỂM THỬ PHẦN MỀM KHÔNG CÓ NGHĨA VỤ, (KHÔNG VÌ MỤC ĐÍCH) CHỨNG MINH RẰNG APP ĐÃ
HẾT BUG RỒI
- KIỂM THỬ PHẦN MỀM KHÔNG PHẢI LÀ ĐI TÌM HẾT BUG VÀ GÂY RẰNG APP HẾT BUG RỒI, VÌ
ĐIỀU NÀY LÀ KHÔNG TƯỞNG
- APP LUÔN CÓ BUG, LUÔN TỒN TẠI BUG, BẤT CHẤT ĐÃ DÀNH THỜI GIAN TEST KĨ CỠ
NÀO
- CHÂN LÝ: APP LUÔN CÒN CÓ BUG - NÓI VUI: BUG LÀ 1 TÍNH NĂNG
CÂU HỎI: TẠI SAO APP LUÔN CÓ BUG? VÌ APP VỐN PHỨC TẠP , ĐƯỢC TẠO THÀNH TỰ
NHIÊN THÀNH TỐ, THÀNH PHẦN KHÁC NHAU!! KHI CÓ NHIỀU THÀNH PHẦN CHUNG VỚI NHAU -> SẼ
PHÁT SINH VẤN ĐỀ VÌ SỰ KHÁC BIỆT VÀ BẤT ĐỒNG BỘ
LÚC NÀO ĐÓ
- APP LUÔN CÒN BUG NHƯNG KHONG ĐỒNG NGHĨA VỚI VIỆC DÂN QC CHÚNG TA CẨU THẢ TRONG
VIỆC KIỂM THỬ
- DÂN QC PHẢI NỖ LỰC TÌM CÁC BUG, BUG CÒN TIỀM ẨN, VÌ: ĐẠO ĐƯC NGHỀ NGHIỆP, CAM KẾT
CHẤT LƯỢNG VỚI KHÁC HÀNG CỦA CÔNG TY MÀ MÌNH ĐANG LÀM THUÊ
- KHÔNG PHẢI LÀ CỨU RỖI, MÀ LÀ NÂNG CAO TRÁCH NHIỆM, VÌ BUG LUÔN CÒN ĐÓ!!
Ví dụ: Kiểm thử tình năng + 2 con số của phần mềm calculator huyền thoại
- Kiểm thử ta thiết kế Test case: Bộ data đưa vào (input) app để tun 1 tính
năng đi kèm theo là expected value sau đó ta run cái test case này để xem trả ra kq
có như kì vọng hay không (test run,)
+ 2 con số, ta có vài test case như sau:
TC1: 0 + 0 -> 0?
0 + 1 -> 1?
0 + 2 -> 2?
0 + TRÀN MIỀN GIÁ TRỊ - BONDARY
+ VỚI SỐ ÂM
+ VỚI SỐ THỰC, THỰC + THỰC, THỰC + NGUYÊN, CÓ BIÊN
+ VỚI + - * / DẤU NGOẶC ()
SỐ TỔ HỢP CÁC BỘ DATA/TEST CASE DÀNH CHO 1 CHỨC NĂNG LÀ VÔ SỐ
TA KHÔNG ĐỦ SỨC, KHÔNG ĐỦ THỜI GIAN ĐỂ TEST HẾT CÁC TỔ HỢP SỬ DỤNG TÍNH
NĂNG,CÁC MÀN HÌNH
KHÔNG ĐỦ SỨC TEST HẾT, LÀM SAO DÁM KẾT LUẬN APP ỔN ÁP??
> KHÔNG TEST HẾT ĐƯỢC CÁC TÌNH HUỐNG, VẬY CẦN CÓ CHIẾN LƯỢC THIẾT KẾ CÁC TÌNH HUỐNG
CHO ĐỦ TỐT
> CÓ THỂ VÌ KHÔNG TEST ĐƯỢC HẾT, NÓ GÓP 1 PHẦN VÀO NGUYÊN LÝ: APP LUÔN CÓ BUG
** NL3: EARLY TESTING - KIỂM THỬ CÀNG SỚM CÀNG TỐT, KIỂM THỬ THẬM CHÍ ĐƯỢC TIẾN
HÀNH KHI CHƯA VIẾT 1 DÒNG CODE NÀO CHO APP, KIỂM THỬ ĐƯỢC ÁP DỤNG, TIẾN HÀNH NGAY
KHI Ở GIAI ĐOẠN DẦU TIÊN CỦA DỰ ÁN, KIEEMRE THỬ NÊN THAM GIA NGAY TỪ GIAI ĐOẠN
REQUIREMENTS, DESIGN, THAY VÌ PHẢI CHỜ ĐẾN KHI CÓ CODE/APP 1 KIỂM THỬ
LÍ DO KIỂM THỬ SỚM LÀ: TỪ REQS ĐÃ CÓ THỂ BỊ SAI, TỪ DESIGN ĐÃ CÓ THỂ BỊ SAI, PHÁT
HIỆN SAI TỪ SỚM, SAUWR APP ĐỠ TỐN KÉM HƠN LÀ UI ĐÃ LÊN, API ĐÃ XONG DATABASE CŨNG
ĐÃ ỔN, VIỆC THÊM BỚT CHỈNH SỬA TRONG CODE SẼ TỐN KÉM
DÂN KIỂM THỬ THAM GIA VÀO CÙNG VỚI BA, ĐỌC CÁI DOCUMENT VỀ APP MÀ BA VIẾT RA TRONG
DOCUMENT CÓ HỨA HẸN VỀ TÍNH NĂNG, MÀN HÌNH, XỬ LÝ CỦA TÍNH NĂNG CẢU CÁI APP SẼ ĐANG
LÀM
ĐỌC/REVIEW DOCUMENT ĐỂ TÌM RA SAI SÓT, THIẾU HỤT SẼ GIÚP REQS TỐT VÀ CHÍNH XÁC ĐỂ
LÀM HÀI LONG KHÁCH HÀNG
PHÍ TỔN THẤT SỬA APP/CODE KHI ĐÃ ĐI ĐẾN DIADNJ CODE RẤT CAO, SO VỚI VIỆC CHƯA VIẾT
CODE MỚI HỨA HẸN TÍNH NĂNG, MỚI PHÁC THẢO DATABASE
DÂN QC SẼ ĐƯỢC QC MANAGER/VÀ PM PHÂN CÔNG CÙNG THAM DỰ QUÁ TRÌNH LÀM DỰ ÁN TỪ SỚM
ĐỂ
- HIỂU APP
- HIỂU TÍNH NĂNG ĐANG LÀM (DÂN DEV KHÔNG HIỂU APP = DÂN QC/BA, DO
LÀM THEO)
- THIẾT KẾ TEST CASE TỪ SỚM MODULE, DÂN QC LÀM VIỆC VỚI FULL APP)
DÂN QC SẼ ĐỌC CUỐN TÀI LIỆU MÀ DÂN BA VIẾT RA ĐỂ HIỂU APP, VÀ LÀM TEST CASE TỪ CÁC
REQS CÓ TRONG CUỐN TÀI LIỆU VỪA TIẾP CẬN
LÀM PHẦN MỀM, CUỐN DOCUMENT ĐẦU TIÊN LÀ CUỐN XUẤT HIỆN DƯỚI VAI TRÒ CỦA BA VIẾT RA
CUỐN NÀY GHI NHẬN HẾT LỜI HỨA VỀ TÍNH NĂNG PHẦN MỀM SẼ LÀM
CUỐN NÀY GỌI LÀ: SOFTWARE REQUIREMENTS SPECIFICATION - SRS
BẢN ĐẶC TẢ YÊU CẦU PHẦN MỀM
VỚI KHÓA LUẬN TỐT NGHIỆP TRƯỜNG 3 CHỮ - CAPSTONE PROJECT
CUỐN
[QC MANAGER]
- LÀ SẾP CỦA DÂN QC
- TỐT NHẤT NÊN ĐI LÊN TỪ QC/TESTER (LÀM SẾP TỐT NHẤT NÊN ĐI QUA CON ĐƯỜNG LÀM LÍNH
TRƯỚC)
- LÊN KẾ HOẠC CHO VIỆC KIỂM THỬ 1 DỰ ÁN NÀO ĐÓ, PHẢI PHỐI HỢP VỚI PM ĐỂ CÙNG BÀN
KHI NÀO TEST, TEST GÌ, CẦN THIẾT BỊ GÌ, ĐỘ KHÓ ĐỂ PHÂN BỐ NHÂN LỰC QC
- CHUẨN BỊ TRANG THIẾT BỊ, MÁY MÓC, SERVER SẴN SÀNG CHO VIỆC TEST. VÍ DỤ TEST APP
BÁN HÀNG THÌ CẦN MÀN HÌNH CHẠM, MÁY ĐỌC BARCODE, MÁY IN; APP GIỮ XE CÓ CAMERA ĐỂ
CHỤP BIỂN SỐ XE
- PHÂN BỐ CON NGƯỜI QC VÀO DỰ ÁN THÍCH HỢP
- YÊU CẦU LÍNH/QC THIẾT KẾ TEST CASE, CHẠY TEST CASE - TEST RUN, GHI NHẬN BUG -
"LOG BUG"
- REPORT TÌNH TRẠNG APP VỚI PM/SẾP TRÊN
** NL4: DEFECTS CLUSTERING - SỰ PHÂN BỐ, PHÂN TÁN CỦA BUG, CỦA NHỮNG SAI SÓT
- CÓ NHỮNG CHỖ TRONG APP CÓ NHIỀU BUG
- CÓ NHỮNG CHỖ TRONG APP CÓ ÍT BUG HƠN
- CÓ NHỮNG CHỖ TRONG APP/TÍNH NĂNG MÀ CHIẾM PHẦN LỚN BUG CỦA TOÀN BỘ
- CHỈ 1 VÀI MODULE, CHIẾM SỐ LƯỢNG BUG ÁP ĐẢO
KHÔNG DÀN TRẢI NHÂN LỰC, NỖ LỰC ĐỂ TÌM BUG, TÌM NHIỀU BUG MÀ HÃY TẬP TRUNG VÀO
CHỖ NÀO ĐÓ
CÂU HỎI: CHỖ NÀO TRONG APP THÌ SẼ CÓ NHIỀU BUG, VÀ ÍT BUG
- NHỮNG TÌNH NĂNG CƠ BẢN, KINH ĐIỂN: CRUD USER, CRUD CATEGORY, CRUD ... MÀ CHỈ XẢY
RA TRÊN 1 HOẶC 2 TABLE, NÓ SẼ ÍT BỊ SAI, ÍT BUG
NHỮNG TÍNH NĂNG BÊN NGOÀI ( BÊN NGOÀI À APP MOMO, MOCA, ... GOOGLE MAIL, FB)
- THIẾT BỊ NGOẠI VI(CAMERA, CẢM BIẾN -SENSOR, MÁY ĐỌC MÃ VẠCH, MÁY IN, THIẾT BỊ
IOT, CƠ KHÍ...) TÍNH NĂNG APP MÌNH MÀ LẠI CHƠI VỚI NHIỀU MÓN, THÌ NÓ CÓ THỂ PHÁT
SINH NHỮNG THỨ KHÔNG ĐỒNG BỘ, KHÔNG TƯƠNG THÍCH, KHÔNG ỔN ĐỊNH ĐƯỜNG TRUYỀN...
>>> GÂY RA NHIỀU BUG HƠN CHỖ KHÁC
BUG Ở ĐÂU ĐƯỢC DỰ ĐOÁN NHIỀU -> PHÂN BỐ NHÂN LỰC QC TẬP TRUNG VÀO ĐÓ
** NL5: PESTICIDE PARADOX - NGHỊCH LÝ THUỐC TRỪ SÂU - HIỆN TƯỢNG KHÁNG THUỐC
- UỐNG THUỐC THUỐC CHỮA BỆNH, BỆNH KHÔNG LUI DO KHÁNG THUỐC, QUEN THUỐC
- NHỜ DÂN QC CHẶN BUG, GÁC CỬA, CHECK VAR, NHƯNG BUG CÒN, CÒN NHIỀU!! CÓ NHỜ CŨNG
NHƯ KHÔNG
NGUYÊN NHÂN:
- DO DÂN QC LÀM MÃI 1 VIỆC, LÀM HOÀI MỘT VIỆC SINH RA: QUEN VIỆC VÀ CHỦ QUAN;
THÔI PHẦN NÀY KHỎI TEST VÌ HÔM QUA ĐÃ TEST RỒI, CHẮC NÓ VẪN ỔN!!
- DO DÂN QC LÀM MÃI 1 VIỆC, TEST MÃI 1 APP, SẼ CÓ CẢM GIÁC QUEN THUỘC, NÊN DỄ BỎ
QUA KO DI KHÁM PHÁ LẠI CÁC TÍNH NĂNG, VÀ BIẾT ĐÂU TRONG QUÁ TRÌNH FIX BUG, NÂNG CẤP
TÍNH NĂNG CỦA DEV, CODE CHO TÍNH NĂNG CŨ ĐÃ THAY ĐỔI -> KO ĐC TEST LẠI -> TIỀM ẨN
BUG
CÁCH FIX:
- NÊN HOÁN ĐỔI TÁC VỤ, CÔNG VIỆC, DỰ ÁN, LOẠI HÌNH KIỂM THỬ CHO DÂN QC, KO BẮT LÀM
MÃI 1 VIỆC TRONG 1 KHOẢNG THỜI GIAN ĐỦ DAIF, HOÁN ĐỔI CÔNG VIỆC
- VÍ DỤ: TEST ƯEB APP 1 THỜI GIAN, CHUYỂN QUA TEST MOBILE, TEST DESKSTOP APP ĐỦ
THỜI GIAN THÌ CHUYỂN QUA WEB APP, TEST APP THƯƠNG MẠI ĐIỆN TỬ ĐỦ THỜI GIAN THÌ
CHUYỂN QUA APP IOT
- MÔI TRƯỜNG MỚI, CÔNG VIỆC MỚI TẠO NÊN SỰ TÒ MÒ, PHẤN KHÍCH, HAM KHÁM PHÁ -> NHỜ
CÁI KHÁM PHÁ CÓ THỂ TÌM RA, PHÁT LỘ BUG
----------------------
** NL6. TESTING IS CONTEXT DEPENDENT - KIỂM THỬ PHẦN MỀM PHỤ THUỘC NGỮ CẢNH - CÂU
CHUYỆN
- CÁC LOẠI APP KHÁC NHAU THÌ KIỂM THỬ KHÁC NHAU, TEST CASE KHÁC NHAU
- CÁC MÔI TRƯỜNG CHẠY APP KHÁC NHAU THÌ KIỂM THỬ KHÁC NHAU, TEST CASE KHÁC NHAU
- VÍ DỤ:
- TEST APP CHẠY TRÊN ANDROID CÓ CHÚT KHÁC BIỆT VỚI APP CHẠY TRÊN IOS, ĐẶC
BIỆT PHẦN BẢO MẬT, PHẦN TRUY XUẤT HỆ THỐNG
- TEST WEB APPP THÌ KHÁC MOBILE. MÀ WEB APP THÌ LẠI CẦN XEM USER DÙNG GÌ ĐỂ
XEM WEB
- DÙNG MÁY TÍNH KHÁC MOBILE DO MÀN HÌNH HẸP, 2 CHIỀU DỌC NGANG NÊN CẦN
RESPONSIVE/FLUENT
- TEST APP IOT THÌ NGOÀI TEST TÍNH NĂNG CHẠY, CÒN PHẢI LƯU Ý TÍNH TƯƠNG THÍCH
THIẾT BỊ
IOT: CẢM BIẾN, CAMERA, THIẾT BỊ CƠ KHÍ, CƠ ĐIỆN TỬ - XEM ĐỘ ỔN ĐỊNH,
GIAO THỨC GIAO TIẾP, ĐỘ PHÂN GIẢI, ÁNH SÁNG, MÔI TRƯỜNG...
- TÓM LẠI KỊCH BẢN KIỂM THỬ RẤT ĐA DẠNG VỚI CÁC LOẠI APP CŨNG ĐA DẠNG
--------------------
** NL7. ABSENCE OF ERROR FALLACY
- CẤM TUYỆT ĐỐI GÁY KIỂU: APP EM CỰC TỐT, KO CÓ BUG, ĐỐT ĐUỐC KO TÌM RA BUG
- NẾU APP MÀ "RẤT ÍT BUG" SAU NHIỀU LẦN TEST VÀ NHIỀU LẦN FIX, MÌNH VỖ NGỰC APP
NGON VÌ KO BUG CÂU DẠNG NÀY SAO VÌ 2 Ý NGHĨA
> APP NÀO CŨNG CÓ BUG, CŨNG CÒN TỒN TẠI BUG (NL1), GÁY APP FREE OF ERRORS,
GÁY APP KO BUG LÀ SAI RÒI, QUÁ SAI
> GIẢ SỬ APP NGON VÌ KO BUG, THÌ GÁY APP KO BUG KO PHẢI LÀ MỤC TIÊU LÀM APP
NÓI CÁCH KHÁC: LÀM APP, LÀM SẢN PHẨM KO BỊ LỖI, LÀM APP LÀM SP CÓ CHẤT LƯỢNG
ĐÓ LÀ ĐIỀU BẮT BUỘC PHẢI LÀM, KO AI MUỐN ĐEM SẢN PHẨM BỊ LỖI ĐI BÁN
- CUSTOMIZED/ BESPOKE: APP LÀM RIÊNG CHO NHU CẦU CỦA DOANH NGHIỆP
- APP Quản lí kho, Bán hàng, Ko lưu, Hải quan, Hành chính công...
- ĐỘ THÀNH CÔNG CHÍNH LÀ NHỮNG FEEDBACK CỦA NHÂN VIÊN CỦA TỔ CHỨC ĐÓ XÀI
HỌ NÓI RẰNG APP NGON, KO THỂ THIẾU TRONG CÔNG VIỆC HỌ ĐANG LÀM HOẶC ĐỀ
XUẤT CHỈNH SỬA ĐỂ PHÙ HỢP SỬ DỤNG
NGƯỜI DÙNG LÀ BÁ TÁNH HAY NHÂN VIÊN CÔNG TY THÍCH DÙNG THÍCH XÀI APP
> HÀNH ĐỘNG DÙNG XÀI THẤY ỔN VÀ TIẾP TỤC DÙNG SAU GIAI ĐOẠN DÙNG THỬ THÌ GỌI
LÀ UAT - USER ACCEPTANCE TESTING
Quy trình làm phần mềm theo tiến trình thời gian thì bao gồm các công đoạn sau:
(ko care phương pháp làm là Scrum hay Waterfall)
WRSPM World > Requirements > Specification > Program > Machine
SWR
Requirements: Elicitation > Analysic > Specification > Validation
CẮT RIÊNG | Implementation | Testing -> DÍNH ĐẾN CODE, APP RỒI, KO HỨA NHƯ BÊN REQS
CODE CODE CODE CODE CODE CODE CODE CODE CODE ................. APP .......... KIỂM
THỬ
THEO TIẾN TRÌNH THỜI GIAN, CODE CỦA APP BẮT ĐẦU NHIỀU DẦN ĐẾN MỨC HOÀN THIỆN
------------------------------------------------------>
DEV LÀM HÀNG NGÀY
HÀM 1 HÀM+cLASS+UI+DB+API CHỨC NĂNG 1
CLASS 1 1 CHỨC NĂNG ĐÃ HÌNH THÀNH CHỨC NĂNG 2
CHỨC NĂNG 3
HÀM 2 HÀM+CLASS+UI+DB+API HOMEPAGE
CLASS 2 1 CHỨC NĂNG KHÁC ĐÃ HÌNH THÀNH CAROUSEL
SEARCH/FILTER
HÀM 3 HÀM+CLASS+UI+DB+API VIEW DETAILS
CLASS 3 CHỨC NĂNG LOGIN, CRUD ITEMS LOGIN/REGISTER
CART
HÀM/CLASS DC GỌI LÀ QC NHẢY VÀO TEST CHỨC NĂNG PAYMENT
UNIT OF CODE - ĐƠN VỊ CODE (UI ĐỂ TƯƠNG TÁC RỒI) CRUD../
CODE ĐẾN ĐÂU, TEST ĐẾN ĐẤY CHỨC NĂNG: GOM CÁC THÀNH PHẦN
APP/SYSTEM ĐÃ XH
> MỨC TA CODE HÀM/CLASS CODE, DB, UI, DB, API
VÀ PHẢI KIỂM THỬ THÌ GỌI CHỨC NĂNG: GOM, TÍCH HỢP NHIỀU MÓN
LÀ ***UNIT TESTING LEVEL***** LẠI THÀNH 1 MÓN: LOGIN, CRUD
CODE VỪA CÓ HÀM/CLASS HOY
ĐÃ TEST RỒI KIỂM THỬ KHI CÓ CHỨC NĂNG GỌI LÀ QC NHẢY VÀO,
TEST APP HOY
KIỂM THỬ TÍCH HỢP - INTEGRATION TESTING LEVEL -
CHUẨN BỊ TEST CASE
(BỘ DATA ĐẦU VÀO
CHO APP + EXPECTED VALUE VÀ CÁC STEP ĐỂ RUN APP)
- TIẾN HÀNH CHẠY
APP TÌM BUG VỚI TESTCASE ĐỂ TÌM BUG ĐC GỌI LÀ TEST RUN
> RUN = MANUAL
> RUN = TOOL
AUTOMATION
việc kiểm thử gọi
là
SYSTEM
TESTING LEVEL
-----------------------------------------------------------------------------------
----->-
UNIT TESTING LEVEL
INTEGRATION TESTING LEVEL
SYSTEM TESTING LEVEL
ĐƯA CHO USER SỬ DỤNG, DÙNG THỬ
ĐƯA LÊN TRÊN MẠNG ĐỂ DOWLOAD QUA STORE, WEBSITE
ĐƯA LÊN SERVER WWW
CÀI VÀO MÁY NHÂN VIÊN CÔNG TY KHÁCH HÀNG
THIÊN HẠ DÙNG THỬ, NHÂN VIÊN DÙNG THỬ
CHO FEEDBACK, VÀ REPORT BUG
UAT LEVEL
USER ACCEPTANCE TESTING LEVEL
===================================================================================
=
1. UNIT TESTING LEVEL
- DEV PHẢI CÓ TRÁCH NGHIỆM ĐẢM BẢO TỪNG HÀM, TỪNG CLASS MÌNH VIẾT RA PHẢI CHẠY NGON
TỨC LÀ PHẢI XỬ LÍ INFO THẬT NGON
- LÀM SAO ĐẢM BẢO CODE MÌNH NGON, CÓ 3 CÁCH KIỂM THỬ
---------------------------------------
[NGOẠI TRUYỆN - VÀI LỆNH LINUX CƠ BẢN]
LINUX PHÂN BIỆT HOA THƯỜNG, LỆNH LUÔN CHỮ THƯỜNG
- pwd -> in ra You are here, cho mình biết mình đang đứng ở thư mục hiện thành nào
Print Working Directory
- ls, ls -a, ls -la -> in ra tring thư mục đang đứng có những gì ~~~dir trong
windows
- vim -> gọi Notepad dòng lệnh, soạn thảo văn bản
> nhấn phím Insert để vào chế độ soạn thảo
> nhấn Esc để vào chế độ gõ lệnh
> nhấn :q để thoát Vim
> nhấn :q! để thoát mà ko save
> nhấn :qw để write/save
> nhấn :qw <tên tập tin> để tạo mới tập tin và save content
- cat <ten tap tin muon xem content>
- clear
- mkdir -> tao moi folder
---------------------------------------
3. ĐỒNG BỘ CODE LÊN GITHUB, LÊN SERVER, LÊN REMOTE - FIRST TIME
3.1 NHÓM LỆNH CHỈ GÕ 1 LẦN CHO 1 MÁY
CHỈ GÕ LẠI NẾU: CÀI LẠI WIN, MƯỢN MÁY BẠN XÀI GIT, HOẶC MÌNH ĐỔI
USERNAME/PASS CỦA GIT CỦA MÌNH
> NHÓM LỆNH KHAI BÁO THÔNG SỐ USERNAME, PASSWORD CỦA GITHUB
git config --global user.name <tên-github-của-bạn>
git config --global user.email <email-github-của-bạn>
3.2 NHÓM LỆNH CHỈ GÕ 1 LẦN ỨNG VỚI 1 PROJECT - SANG PROJECT MỚI GÕ LẠI - CX CHỈ 1
LẦN
> CHUẨN BỊ PROJECT Ở LOCAL, TẠO MỚI PROJECT = TOOL NETBEANS, INTELLIJ, VSC
> CHUẨN BỊ SẴN 1 FILE .GITIGNORE GỌI LÀ BLACKLIST CHỨA NHỮNG THẰNG KO DC LÊN
SERVER, VÍ DỤ THƯ MỤC TARGET, DIST, BUILD, .IDEA...
ĐỂ LÀM NHANH FILE NÀY, LÊN MẠNG DÙNG TOOL SAU ĐỂ GENERATE CHO TIỆN
GITIGNORE.IO
CHUYỂN VÀO THƯ MỤC PROJECT ĐỂ CHUẨN BỊ ĐỒNG BỘ CODE LÊN SERVER
KIỂM TRA COI CÓ ĐÚNG CÓ .GITIGNORE CHƯA
BẰNG LÊNH ls | ls -a | ls -la | dir | dir -a
> gõ lệnh - DÙNG DUY NHẤT 1 LẦN CHO 1 PROJECT MỚI TẠO
CỨ MỖI KHI TẠO MỚI 1 PROJECT THÌ PHẢI GÕ LỆNH NÀY, CHỈ 1 LẦN
git init
câu lệnh này tự sinh ra 1 thư mục ẩn trong project mình, gọi là .git\
dùng để tracking history thay đổi code | cấm tuyệt đối thay đổi bên trong thư mục
này
> TẠO MỚI 1 KHO CODE Ở REMOTE SERVER TÊN TRÙNG 100% CẢ HOA THƯỜNG VỚI TÊN
PROJECT Ở LOCAL
> Gõ lệnh git add . //khi ta upload code, upload tap tin chứa trong tên có
dấu chấm đầu tên - ví dụ .gitignore
git add * //khi ta upload codo ko chứa dấu chấm ở đầu tên
// scan qua các tập tin đã bị thay đổi so với lần đồng bộ trước
> khai báo kho ở xa để chuẩn bị đưa code lên vì ở xa có nhiều kho, đưa lên kho nào.
KHO Ở XA GỌI TẮT LÀ ORIGIN
git remote add origin https://github.com/phongkhongxai/math-ulti-mvn.git
git pust -u origin main
3.2 NHÓM LỆNH HUYỀN THOẠI DÙNG TỚI LUI, LIÊN TỤC BẤT KÌ KHI NÀO CẦN ĐỒNG BỘ CODE
UPDATE MỌI THỨ LÊN SERVER
git add *
git commit -m "sua gi"
git push
3 lenh xai hang ngay!!!!
==========================================================
TỔNG KẾT ĐỂ BỔ SUNG THÊM VÀO CV - MỤC TECHNICAL SKILSS
Unit Test, Junit, Regression Testing, DDT, TDD, Continuos Integration, Maven
* Unit Test:: dev phải test code của mình. Đảm bảo các hàm/method chạy đúng như
thiết kế, như tính toán
để test code của mình, thì có thể dùng cách
* JUnit
* TDD: Test Driven Development:
* DDT: Data Driven Testing: kĩ thuật viết code kiểm thử, kĩ thuật viết test script
mà tách riêng bộ data kiểm thử ra 1