Mục tiêu của đề tài - Nghiên cứu kiểm thử thủ công trên ứng dụng theo dõi sức khỏe vHealth - Mục tiêu của nghiên cứu thủ công trên ứng dụng Mobile vHealth là để trải nghiệm trên một
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA THỐNG KÊ – TIN HỌC
BÁO CÁO THỰC TẬP NGHỀ NGHIỆP
NGÀNH HỆ THỐNG THÔNG TIN QUẢN LÝ
CHUYÊN NGÀNH QUẢN TRỊ HỆ THỐNG THÔNG TIN
NGHIÊN CỨU KIỂM THỬ THỦ CÔNG TRÊN ỨNG DỤNG
THEO DÕI SỨC KHỎE vHEALTH
Đơn vị thực tập : Công ty TMA Solutions Bình Định
Giảng viên hướng dẫn : TS.Hoàng Thị Thanh Hà
Trang 2LỜI CẢM ƠN
Lời cảm ơn đầu tiên em xin gửi đến ban lãnh đạo cùng các phòng ban, các cô chú, anh chị trong Công Ty TMA Solutions Bình Định – đơn vị đã tiếp nhận và nhiệt tình tạo mọi điều kiện thuận lợi cho em tiếp cận thực tế sản xuất và nắm bắt quy trình công nghệ
Em cũng xin gửi đến quý thầy, cô giáo trong khoa Tin Học – Thống Kê trường Đại Học Kinh Tế – Đại học Đà Nẵng lời cảm ơn chân thành vì đã tận tâm giảng dạy và truyền đạt những kiến thức, kinh nghiệm quý báu cho em Đặc biệt, em xin cán ơn cô Hoàng Thị Thanh Hà , người đã tận tình hướng dẫn em hoàn thành bài báo cáo này
Cuối cùng em xin cảm ơn chị Nguyễn Thị Bích Quy – là Mentor hướng dẫn em trực tiếp tại công ty TMA Solutions Bình Định đã giúp đỡ, cung cấp những tài liệu cho em trong quá trình thực tập để hoàn thành được kỳ thực tập tốt hơn
Vì thời gian và kiến thức còn hạn hẹp nên bài báo cáo không thể tránh khỏi những thiếu sót, rất mong sự góp ý của Công Ty, quý thầy cô và các bạn, để em rút kinh nghiệm
và hoàn thành tốt hơn Em xin chân thành cảm ơn!
Trang 3LỜI CAM ĐOAN
Em xin cam đoan đề tài “ Nghiên cứu kiểm thử thủ công trên ứng dụng Mobile vHealth ”
là kết quả nghiên cứu độc lập dưới sự hướng dẫn của T.S Hoàng Thị Thanh Hà và mentor Nguyễn Thị Bích Quy không có sự sao chép từ bất kỳ nguồn nào khác Ngoài ra,trong bài báo cáo có sử dụng một số nguồn tài liệu tham khảo đã được trích dẫn nguồn và chú thích
rõ ràng Em xin hoàn toàn chịu trách nhiệm trước bộ môn, khoa và nhà trường về sự cam đoan này
Trang 4
MỤC LỤC
LỜI CẢM ƠN iii
LỜI CAM ĐOAN iv
MỤC LỤC v
DANH MỤC HÌNH ẢNH viii
DANH MỤC BẢNG BIỂU ix
DANH MỤC CÁC TỪ VIẾT TẮT x
LỜI MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN CÔNG TY TMA VÀ VỊ TRÍ NGÀNH TESTER 2
1.1 Giới thiệu tổng quát về doanh nghiệp thực tập 2
1.1.1 Quá trình hình thành và phát triển của công ty 2
1.1.2 Dịch vụ 2
1.1.3 Tầm nhìn sứ mệnh 4
1.1.4 Lĩnh vực hoạt động 4
1.1.5 Các giải pháp 4
1.2 Tổng quan về vị trí việc làm Tester 6
1.2.1 Mô tả về vị trí Tester 6
1.2.2 Các kĩ năng cần có của một Tester 6
1.2.3 Cơ hội nghề nghiệp 7
1.3 Kết chương 1 7
1.3.1 Đạt được 7
1.3.2 Hạn chế 8
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 9
2.1 Tổng quan về kiểm thử phần mềm 9
2.1.1 Giới thiệu về kiểm thử phần mềm 9
Trang 52.1.2 Mục tiêu của kiểm thử 9
2.1.3 Phân biệt Verification & Validation 9
2.1.4 Phân biệt QA & QC 10
2.2 Các loại kiểm thử phần mềm 10
2.2.1 Manual và Automation 10
2.3 Các phương pháp kiểm thử phần mềm 11
2.3.1 Static Testing và Dynamic Testing 11
2.3.2 White Box Testing và Black Box Testing 12
2.4 Cấp độ của kiểm thử 13
2.4.1 Unit Testing 13
2.4.2 Integration Testing 13
2.4.3 System Testing 13
2.4.4 Acceptance Testing 13
2.5 Kỹ thuật thiết kế Test case và vòng đời bug 14
2.5.1 Tìm hiểu Test case 14
2.5.2 Tìm hiểu về Jira 14
2.5.3 Giải thích vòng đời bug trên Jira 16
2.5.4 Báo cáo bug trên Jira 16
2.5.5 Các loại kiểm thử ứng dụng Mobile 18
2.6 Kết chương 2 18
2.6.1 Đạt được 18
2.6.2 Hạn chế 18
CHƯƠNG 3 TRIỂN KHAI DỰ ÁN 20
3.1 Giới thiệu ứng dụng theo dõi sức khỏe vHealth 20
3.2 Triển khai ứng dụng vHealth 21
Trang 63.2.1 Chức năng của ứng dụng vHealth 21
3.2.2 Đặc tả tính năng của ứng dụng vHealth 21
3.2.3 Thiết kế Test case của từng chức năng 32
3.3 Báo cáo bugs 39
3.4 Kết quả Testing 39
3.5 Kết chương 3 39
3.5.1 Đạt được 39
3.5.2 Hạn chế 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41
TÀI LIỆU THAM KHẢO 42
CHECK LIST CỦA BÁO CÁO 43
PHỤ LỤC 44
Trang 7DANH MỤC HÌNH ẢNH
Hình 1 1: Logo TMA Bình Định 2
Hình 2 1: Các cấp độ của kiểm thử 13
Hình 2 2: Giao diện quản lý dự án bằng Jira 15
Hình 2 3: Vòng đời của bugs trên Jira 16
Hình 3 1: Giao diện ứng dụng theo dõi sức khỏe vHealth 21
Hình 3 2: Giao diện màn hình đăng nhập 22
Hình 3 3: Luồng đăng nhập tài khoản 23
Hình 3 4: Giao diện màn hình đăng ký 24
Hình 3 5: Luồng đăng ký tài khoản 25
Hình 3 6: Giao diện quét dữ liệu từ hình ảnh OCR 26
Hình 3 7: Luồng quét dữ liệu từ hình ảnh OCR 27
Hình 3 8: Giao diện nhật ký triệu chứng 28
Hình 3 9: Luồng theo dõi nhật ký triệu chứng 29
Hình 3 10: Giao diện cập nhật thông tin cá nhân 30
Hình 3 11: Luồng cập nhật thông tin cá nhân 31
Hình 3 12: Màn hình quản lý gói cước vHealth 31
Hình 3 13: Luồng nâng cấp gói cước 32
Hình 3 14: Test case đăng nhập tài khoản 33
Hình 3 15: Test case đăng ký tài khoản 34
Hình 3 16: Test case quét dữ liệu từ hình ảnh OCR 35
Hình 3 17: Test case nhật ký triệu chứng 36
Hình 3 18: Test case cập nhật thông tin cá nhân 37
Hình 3 19: Test case nâng cấp gói cước vHealth 38
Hình 3 20: Báo cáo bugs 39
Trang 8DANH MỤC BẢNG BIỂU
Bảng 2 1: Phân biệt Verification và Validation 10
Bảng 2 2: Phân biệt Manual testing và Automation testing 11
Bảng 2 3: Phân biệt Static testing và Dynamic testing 12
Bảng 2 4: Phân biệt White box testing và Black box testing 12
Bảng 2 5: Các loại kiểm thử ứng dụng di động 18
Bảng 3 1: Các chức năng của ứng dụng vHealth để testing 21
Bảng 3 2: Thông tin chung của chức năng đăng nhập tài khoản 23
Bảng 3 3: Mô tả luồng chính của chức năng đăng nhập tài khoản 23
Bảng 3 4: Thông tin chung của chức năng đăng ký tài khoản 24
Bảng 3 5: Mô tả luồng chính của chức năng đăng ký tài khoản 25
Bảng 3 6: Thông tin chung của chức năng quét dữ liệu từ hình ảnh OCR 26
Bảng 3 7: Mô tả luồng chính của chức năng quét dữ liệu từ hình ảnh OCR 27
Bảng 3 8: Thông tin chung của chức năng nhật ký triệu chứng 28
Bảng 3 9: Mô tả luồng chính của chức năng nhật ký triệu chứng 29
Bảng 3 10: Thông tin chung của chức năng cập nhật thông tin cá nhân 30
Bảng 3 11: Mô tả luồng chính của chức năng cập nhật thông tin cá nhân 31
Bảng 3 12: Thông tin chung của chức năng nâng cấp gói cước 32
Bảng 3 13: Mô tả luồng chính của chức năng nâng cấp gói cước 32
Bảng 3 14: Kết quả Testing 39
Trang 10LỜI MỞ ĐẦU
1 Mục tiêu của đề tài
- Nghiên cứu kiểm thử thủ công trên ứng dụng theo dõi sức khỏe vHealth
- Mục tiêu của nghiên cứu thủ công trên ứng dụng Mobile vHealth là để trải nghiệm trên một ứng dụng bản QA vHealh, để dùng thử và tìm ra các chức năng còn hạn chế đồng thời tìm lỗi phát sinh của ứng dụng Từ đó update các bản build liên tục để đảm bảo chất lượng cho bản chính của khách hàng luôn là bản tốt nhất
2 Đối tượng và phạm vi nghiên cứu
- Đối tượng và phạm vi nghiên cứu sẽ tập trung vào kiểm thử thủ công tất cả các chức năng của ứng dụng vHealth đồng thời đề tài sẽ tập trung vào trải nghiệm của người dùng là chính
3 Kết cấu của đề tài
- Đề tài được tổ chức gồm phần mở đầu, 3 chương nội dung và phần kết luận
- Mở đầu
- Chương 1: Tổng quan về công ty TMA và lý thuyết về ngành Tester
- Chương 2: Cơ sở lý thuyết
- Chương 3: Triển khai dự án
- Kết luận và hướng phát triển
Trang 11CHƯƠNG 1 TỔNG QUAN CÔNG TY TMA VÀ VỊ TRÍ NGÀNH TESTER 1.1 Giới thiệu tổng quát về doanh nghiệp thực tập
1.1.1 Quá trình hình thành và phát triển của công ty
Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với
4000 kỹ sư và khách hàng là những tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia TMA hiện có 7 chi nhánh tại Việt Nam (6 tại Tp.HCM và 1 ở Tp Quy Nhơn) cùng 6 chi nhánh ở nước ngoài (Mỹ, Úc, Canada, Đức, Nhật, Singapore)
Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 4 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 400 kỹ sư, trong đó có nhiều kỹ sư đang làm việc tại TP.HCM đã trở về làm việc tại quê hương
Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng
Hình 1 1: Logo TMA Bình Định
1.1.2 Dịch vụ
Với kinh nghiệm phong phú, TMA mang đến cho khách hàng các giải pháp toàn diện trong nhiều lĩnh vực với việc đồng hành cùng khách hàng từ giai đoạn tư vấn, ý tưởng, phân tích yêu cầu, tới các giai đoạn thiết kế, kiểm thử cho đến khi hoàn thiện sản phẩm và vận hành hệ thống 24/24
- Project Planning
Trang 12Lập kế hoạch dự án theo các mục tiêu và chiến lược của khách hàng với các giai đoạn triển khai theo thứ tự ưu tiên
Lập chương trình chuyển đổi số, chuyển qua mô hình online, chuyển qua cloud…
Đánh giá tính khả thi của ý tưởng
Phát triển sản phẩm mẫu trong thời gian ngắn nhất
- Software Development
Phát triển phần mềm với các công nghệ khác nhau
Nâng cấp phần mềm sẵn có
- UX/UI Design
Thiết kế giao diện Web, smartphone,máy tính bảng
Cải tiến giao diện để tăng tính tương tác và trải nghiệm người dùng
- Software Testing
Đánh giá chất lượng phần mềm với nhiều tiêu chí khác nhau
Kiểm thử tự động
- Porting & Migration
Chuyển đổi hệ thống cũ sang các công nghệ mới để tăng hiệu suất
Chuyển đổi dữ liệu
- IT Managed Services
Tư vấn, thiết kế hệ thống mạng, máy tính, đường truyền, bảo mật
Trang 13Quản trị về máy chủ và điện toán đám mây, hỗ trợ và bảo trì các ứng dụng
Giải pháp điều hành và giám sát hệ thống mạng (NOC - Network Operation Center) Giám sát hệ thống 24/24
Sửa chữa và khắc phục sự cố
- Security Services
Kiểm tra, đánh giá và cải tiến hệ thống an toàn thông tin
Xây dựng hệ thống giám sát an ninh mạng (SOC - Security Operation Center) Nâng cấp và chuẩn hóa hệ thống an toàn thông tin
1.1.3 Tầm nhìn sứ mệnh
Là trung tâm phần mềm đầu tiên tại Thung lũng Sáng tạo Quy Nhơn, Công viên Sáng tạo TMA mang sứ mệnh trở thành trung tâm phát triển phần mềm và công nghệ cao hàng đầu tại miền Trung, góp phần quan trọng đưa Thung lũng sáng tạo Quy Nhơn trở thành một điểm đến của công nghệ 4.0 tại Việt Nam Công viên Sáng tạo TMA bao gồm Trung tâm Phát triển Phần Mềm, Xưởng Phần mềm, Trung tâm R&D, Trung tâm Khoa học Dữ liệu, Học viện Công Nghệ…
1.1.4 Lĩnh vực hoạt động
Trí tuệ nhân tạo/máy học
Phân tích ngôn ngữ tự nhiên (NLP)
Dữ liệu lớn / phân tích dữ liệu
Iot và thiết bị thông minh
1.1.5 Các giải pháp
- Go innovative
Ứng dụng các công nghệ và phương pháp mới để tạo ra các sản phẩm và giải pháp sáng tạo - đột phá có tính cạnh tranh cao, hoặc tạo ra các giải pháp mới cho bài toán cũ
- Go digital
Tư vấn và triển khai giải pháp chuyển đổi số phù hợp với nhu cầu từng doanh nghiệp
và tổ chức Chia ra nhiều giai đoạn để tối ưu vốn đầu tư và mang lại hiệu quả thiết thực
Trang 14cho doanh nghiệp sau mỗi giai đoạn Áp dụng các giải pháp sẵn có của TMA để giảm thời gian và chi phí chuyển đổi số
- Go online
Giúp các doanh nghiệp chuyển đổi mô hình kinh doanh qua online:
Phát triển ứng dụng web, mobile để giao dịch và tương tác với khách hàng
Thiết kế hệ thống hỗ trợ (back-office)
- Go mobile
Phát triển các ứng dụng di động và máy tính bảng để tương tác với khách hàng – đối tác hoặc tăng hiệu quả hoạt động của nhân viên
- Go cloud
Thiết kế và triển khai các giải pháp điện toán đám mây
Phân tích hệ thống để xác định các ứng dụng và dữ liệu nên chuyển lên cloud Chọn lựa cloud phù hợp cho từng doanh nghiệp
Chuyển đổi dữ liệu và ứng dụng lên cloud
- Go automation
Ứng dụng các công nghệ trí tuệ nhân tạo, phân tích ngôn ngữ tự nhiên, nhận dạng ảnh, video để tạo ra các giải pháp tự động hóa quy trình hoạt động trong doanh nghiệp nhằm tăng năng suất, tăng sự chính xác và tiết kiệm chi phí nhân công
- Go integrated
Giải pháp tích hợp các ứng dụng riêng lẻ vào chung một hệ thống, thiết kế dữ liệu thống nhất, báo cáo và phân tích chung giữa các phòng ban, các chi nhánh và công ty thành viên
- Go smart
Chuyển đổi các thiết bị thành smart device
Điều khiển từ xa
Phân tích dữ liệu và tự động xử lý
Trang 15Phát triển phần mềm cho smart camera, robot, drone…áp dụng 5g và các công nghệ nhận dạng hình ảnh và video
- Go interactive
Ứng dụng các phương pháp mới nhất để tạo ra các thiết kế giao diện web, mobile,
pc trực quan và có tính tương tác cao
Công việc của nhân viên Tester:
- Xem xét yêu cầu phần mềm và chuẩn bị các kịch bản thử nghiệm
- Thực hiện các bài kiểm tra về khả năng sử dụng phần mềm
- Phân tích kết quả kiểm tra về tác động cơ sở dữ liệu hoặc lỗi và khả năng sử dụng
- Chuẩn bị báo cáo về tất cả các khía cạnh liên quan đến thử nghiệm phần mềm và gửi cho nhóm thiết kế
- Tương tác với khách hàng để hiểu các yêu cầu sản phẩm
- Tham gia đánh giá phần mềm và cung cấp đầu vào theo yêu cầu, thiết kế sản phẩm
và phát hiện các vấn đề tiềm ẩn
1.2.2 Các kĩ năng cần có của một Tester
Kỹ năng công nghệ là yêu cầu cơ bản đối với Tester Cũng giống như những chuyên ngành khác trong lĩnh vực công nghệ thông tin, Tester cũng đòi hỏi bạn sở hữu kỹ năng công nghệ ở mức cơ bản Một vài kiến thức bạn có thể trau dồi nếu muốn trở thành một
Trang 16Tester như: kiến thức cơ bản về Database/SQL, kiến thức cơ bản về lệnh Linux, làm việc với các công cụ Test Management, làm việc với các công cụ Defect Tracking, làm việc với các công cụ Automation
Phân tích: Đây là một kỹ năng mềm quan trọng đối với bất kỳ tester nào Khi kiểm thử phần mềm, tester phải phân tích tình huống đã cho để đưa ra giải pháp thích hợp Với
kỹ năng phân tích tốt, tester có thể chia phần mềm phức tạp thành các đơn vị nhỏ hơn và phân tích từng yếu tố riêng lẻ
Giao tiếp: Kỹ năng giao tiếp hỗ trợ tester rất nhiều trong quá trình thực hiện kiểm thử Tester sẽ cần phải biết cách làm việc với nhóm dự án như báo cáo các bài test đã chạy
Tổ chức và quản lý thời gian: Có thể quản lý công việc là rất cần thiết với các tester Tester cần có những kỹ năng mềm này để nâng cao năng suất và hiệu quả làm việc
Sáng tạo: Kiểm thử phần mềm là một quá trình đòi hỏi sự sáng tạo không ngừng nghỉ của tester Tester giỏi phải biết đặt câu hỏi về sự phát triển của ứng dụng và phân tích các khía cạnh của nó Khả năng sáng tạo giúp tester đưa ra các bài test hay và các giải pháp khả thi nhất
1.2.3 Cơ hội nghề nghiệp
Nghề Tester có nhu cầu tuyển dụng cao, cơ hội ổn định sự nghiệp lâu dài Đặc biệt
cơ hội tăng tiến với những người có nhiều năm kinh nghiệm là càng kỳ cao Nghề không
hề nhàm chán mới công nghệ luôn đổi mới Mỗi ngày các Tester sẽ phải làm việc với những phần mềm khác nhau, mang đến nhiều sự thú vị Nhu cầu tuyển dụng Tester trong những năm gần đây liên tục tăng Nếu các bạn có khả năng Anh thì cơ hội để có những việc làm hấp dẫn càng lớn Không chỉ được làm việc tại các doanh nghiệp công nghệ, bạn còn có cơ hội được làm tại các công ty nước ngoài
Lương của một Tester mới chỉ khoảng 5 – 6 triệu đồng/tháng Nhưng nếu đã có kinh nghiệm thì thu nhập có thể rơi vào khoảng 12 – 15 triệu đồng/tháng Đặc biệt, khi có cơ hội làm việc tại doanh nghiệp nước ngoài thì mức lương còn có thể lên 15 – 20 triệu đồng/tháng
1.3 Kết chương 1
1.3.1 Đạt được
Trang 17- Biết thêm về công ty TMA, một nơi training rất tốt và nhiều cơ hội nơi đây
- Biết được thêm về ngành Tester và cơ hội về ngành Tester hiện nay
1.3.2 Hạn chế
- Tương lai sẽ làm thêm nhiều vị trí tại TMA để có thêm kinh nghiệm cho mình
Trang 18CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về kiểm thử phần mềm
2.1.1 Giới thiệu về kiểm thử phần mềm
Kiểm thử phần mềm là một phương pháp để kiểm tra xem sản phẩm phần mềm thực
tế có phù hợp với yêu cầu mong đợi hay không và để đảm bảo rằng sản phẩm phần mềm không có lỗi Nó liên quan đến việc thực thi các thành phần phần mềm/hệ thống bằng cách
sử dụng các công cụ thủ công hoặc tự động để đánh giá một hoặc nhiều thuộc tính quan tâm Mục đích của kiểm thử phần mềm là xác định các lỗi, lỗ hổng hoặc các yêu cầu còn thiếu so với yêu cầu thực tế
2.1.2 Mục tiêu của kiểm thử
- Xác định phần mềm phù hợp với yêu cầu đặc tả
- Xác định phần mềm phù hợp với nhu cầu người dùng
- Đủ tự tin để cung cấp một sản phẩm chất lượng
- Phát hiện các lỗi trong quá trình phát triển phần mềm
2.1.3 Phân biệt Verification & Validation
Verification (Xác minh) Validation (Xác thực)
- Quy trình xác minh bao gồm kiểm
tra tài liệu, thiết kế, mã và chương
trình
- Xác minh không liên quan đến việc
thực thi mã
- Xác minh sử dụng các phương pháp
như đánh giá, hướng dẫn, kiểm tra
- Xác minh kiểm tra xem phần mềm
có xác nhận thông số kỹ thuật hay
không
- Quá trình xác minh tìm thấy các lỗi
sớm trong chu kỳ phát triển
- Quy trình Xác thực bao gồm kiểm tra và xác nhận sản phẩm thực tế
- Xác thực liên quan đến việc thực thi
mã
- Xác thực sử dụng các phương pháp như kiểm tra hộp đen, kiểm tra hộp trắng và kiểm tra phi chức năng
- Xác thực kiểm tra xem phần mềm có đáp ứng các yêu cầu và mong đợi hay không
Trang 19- Quy trình Xác minh nhắm đến kiến
trúc, thiết kế, cơ sở dữ liệu phần
mềm
- Quá trình xác thực tìm thấy các lỗi
mà quá trình xác minh không thể phát hiện được
- Quy trình Xác thực nhắm đến sản phẩm phần mềm thực tế
Bảng 2 1: Phân biệt Verification và Validation
2.1.4 Phân biệt QA & QC
QA phụ trách về mặt hệ thống chung, có nhĩa là đưa ra các quy trình và giám sát các quy trình cho đội ngũ phát triển sản phẩm
QC sẽ tiến hành kiểm thử sản phẩm ở giai đoạn này, sử dụng công cụ gì, tiêu chuẩn nào để sản phẩm đạt yêu cầu
QC sẽ thực thi các bước theo quy trình mà QA đề ra, QA giám sát, theo dõi và kiểm tra sự tuân thủ của QC, và có thể tiến hành chỉnh sửa cho phù hợp với tiến độ, ngân sách
và trạng thái của dự án
QC báo cáo kết quả kiểm thử cho QC Lead hoặc QC Manager nhằm tổng hợp kết quả kiểm thử, trạng thái các lỗi nhằm giúp cho quá trình trao đổi, hỗ trợ fix lỗi với đội ngũ phát triển sản phẩm
QA báo cáo kết quả thực thi quy trình phát triển sản phẩm trực tiếp cho Project Manager nhằm giúp Project Manager cân đối và điều phối dự án theo kịp tiến độ và nguồn lực
2.2 Các loại kiểm thử phần mềm
2.2.1 Manual và Automation
Manual testing Automation testing
- Manual testing vì là kiểm thử hoàn toàn
do hành động của con người nên dễ bị
gặp lỗi do con người gây ra Vì thế mà
độ tin cậy và độ chính xác kiểm thử thấp
- Automation testing chạy với sự trợ giúp của các công cụ, tập lệnh và phần mềm nên có độ tin cậy cao hơn
Trang 20Manual testing Automation testing
- Chi phí phụ thuộc vào nguồn nhân lực
được sử dụng để kiểm thử
- Chi phí phụ thuộc vào các công cụ kiểm tra được triển khai để thực hiện kiểm thử
- Thời gian cần thiết để kiểm thử thủ công
nhiều hơn so với nguồn nhân lực cần để
thực hiện nó
- Thời gian cần thiết để kiểm thử tự động ít hơn các công cụ phần mềm cần để thực hiện các kiểm thử
- Manual testing phù hợp khi các test case
được chạy một hoặc hai lần Do đó
không có sự lặp lại thường xuyên các test
case
- Automation testing phù hợp khi các test case cần phải chạy liên tục trong một thời gian dài
- Manual testing giúp tìm ra sự thân thiện
của ứng dụng đối với người dùng Vì con
người phải quan sát để tìm ra những
điểm bất ổn của ứng dụng Do đó
Manual testing giúp cải thiện trải nghiệm
của người dùng
- Automation testing không đảm bảo
sự thân thiện của ứng dụng đối với người dùng Vì không có sự quan sát của con người, không có đảm bảo về trải nghiệm khách hàng Bảng 2 2: Phân biệt Manual testing và Automation testing
2.3 Các phương pháp kiểm thử phần mềm
2.3.1 Static Testing và Dynamic Testing
Static Testing Dynamic Testing
- Static testing chính là kiểm thử hộp trắng
(white box testing ) được thực hiện ở giai
đoạn đầu của chu kỳ phát triển Việc này
hiệu quả hơn so với dung dynamic
testing
- Dynamic testing được thực hiện ở giai đoạn sau của vòng đời phát triển
- Trong thời gian ngắn hơn, thì Statis
testing có nhiều phạm vi xác nhận hơn so
với Dynamic testing
- Dynamic testing có phạm vi xác nhận ít hơn vì nó chỉ bao gồm các khu vực giới hạn của code
- Nó được thực hiện trước khi triển khai
Trang 21Static Testing Dynamic Testing
- Loại thử nghiệm này được thực hiện mà
không thực hiện code
- Loại thực hiện này được thực hiện với việc thực thi code
- Static testing đưa ra đánh giá của code
cũng như tài liệu
- Dynamic testing cho biết giới hạn của hệ thống phần mềm
- Trong kỹ thuật Static testing một danh
sách nội dung kiểm tra được chuẩn bị
cho quá trình kiểm tra
- Trong kỹ thuật Dynamic testing, các trường hợp thử nghiệm được thực thi
- Các phương pháp Static testing bao gồm
Walkthroughs, code review
- Dynamic testing bao gồm việc kiểm tra chức năng và phi chức năng
Bảng 2 3: Phân biệt Static testing và Dynamic testing
2.3.2 White Box Testing và Black Box Testing
Black box test White box test
- Kiểm tra hộp đen là phương pháp thử
nghiệm phần mềm được sử dụng để kiểm
tra các phần mềm mà không quan tâm
đến cấu trúc bên trong của chương trình
- Kiểm tra hộp trắng là phương pháp kiểm thử phần mềm, sử dụng để kiểm tra phần mềm mà yêu cầu phải biết cấu trúc bên trong của chương trình
- Thử nghiệm được thực hiện bên ngoài,
không liên quan đến nhà phát triển phần
mềm
- Thông thường, các thử nghiệm được thực hiện bởi nhà phát triển phần mềm
- Thử nghiệm áp dụng ở cấp độ cao như:
kiểm tra hệ thống (System test), kiểm tra
chấp nhận (Acceptance test)
- Thử nghiệm được áp dụng ở mức
độ thấp hơn như thử nghiệm đơn vị (Unit Test), thử nghiệm hội nhập (Integration test)
- Không yêu cầu hiểu biết về Lập trình - Yêu cầu hiểu biết nhất định về lập
trình
- Không yêu cầu hiểu về cấu trúc bên
trong chức năng, và không cẩn hiểu làm
thế nào để có được chức năng đó
- Yêu cầu hiểu cấu trúc bên trong chức năng được thực hiện như nào
- Kiểm tra hộp đen được bắt đầu dựa trên
tài liệu yêu cầu kỹ thuật
- Kiểm tra hộp trắng được bắt đầu dựa trên các tài liệu thiết kế chi tiết Bảng 2 4: Phân biệt White box testing và Black box testing
Trang 222.4 Cấp độ của kiểm thử
2.4.4 Acceptance Testing
Trang 23Đây được cho là loại thử nghiệm quan trọng nhất, vì nó được thực hiện bởi Nhóm Đảm bảo chất lượng (Quality Assurance Team), người sẽ đánh giá xem ứng dụng có đáp ứng các thông số kỹ thuật dự định hay không và đáp ứng yêu cầu của khách hàng
2.5 Kỹ thuật thiết kế Test case và vòng đời bug
2.5.1 Tìm hiểu Test case
a) Tese case là gì?
Test case là một tập hợp các hành động được thực hiện để xác minh một tính năng hoặc chức năng cụ thể của ứng dụng phần mềm của bạn Một Test Case chứa các bước kiểm tra, dữ liệu kiểm tra, tiền điều kiện, hậu điều kiện được phát triển cho kịch bản kiểm tra cụ thể để xác minh bất kỳ yêu cầu nào Trường hợp kiểm thử bao gồm các biến hoặc điều kiện cụ thể, sử dụng mà kỹ sư kiểm thử có thể so sánh kết quả thực tế và dự kiến để xác định xem sản phẩm phần mềm có hoạt động theo yêu cầu của khách hàng hay không
b) Cấu trúc của Test case
- Test Case ID: Giá trị cần để xác định số lượng trường hợp cần để kiểm thử
- Chức năng (Function): Dựa theo chức năng của hệ thống có thể chia nhở các
functions ra để tạo TCs rõ ràng hơn Ví dụ: Check form đăng nhập gmail được coi
là 2 function lớn
- Test Data: Những dữ liệu cần chuẩn bị để test
- Test Steps: Mô tả các bước thực hiện test
- Expected results: Kết quả mong đợi từ các bước thực hiện trên
- A result: Thông thường sẽ là pass, fail, và pending Đây là kết quả thực tế khi thực
hiện test theo test case trên môi trường của hệ thống
- Comments: Cột này dùng để note lại screen shot, thông tin liên quan khi thực hiện
test case
2.5.2 Tìm hiểu về Jira
a) Jira là gì?
Jira là một ứng dụng phần mềm được sử dụng để theo dõi và quản lý lỗi hay các vấn
đề phát sinh trong mỗi dự án của tổ chức Đây là phần mềm được phát triển bởi công ty
Trang 24phần mềm Atlassian của Australia Jira hoạt động dựa vào trọng tâm là kết quả công việc Người dùng có thể sử dụng dễ dàng phần mềm này cũng như linh hoạt trong công việc
Hình 2 2: Giao diện quản lý dự án bằng Jira
b) Những tính năng cơ bản của Jira
Khi sử dụng Jira, người dùng có thể dễ dàng:
- Quản lý và theo dõi tiến độ của dự án
- Quản lý các tasks, bugs, sự cải tiến, những tính năng mới hoặc bất kỳ vấn đề xảy ra
- Tạo ra và lưu trữ lại những bộ lọc có cấu hình cao xuyên suốt mọi vấn đề trong hệ thống Ngoài ra nó còn giúp chia sẻ bộ lọc với người sử dụng khác hoặc đăng ký và nhận kết quả qua hệ thống thư điện tử định kỳ
- Xây dựng quy trình làm việc tương thích với từng yêu cầu của dự án
- Bảng dashboard cung cấp cho người sử dụng một không gian riêng để xem mọi thông tin liên quan đến cá nhân
- Cung cấp nhiều loại báo cáo thống kê với những biểu đồ khác nhau phù hợp với những loại hình dự án khác nhau và đối tượng người sử dụng.Dễ dàng tích hợp với các hệ thống ứng dụng khác (như Email, Excel, RSS,…)
- Có thể chạy trên hầu hết các nền tảng, hệ điều hành và cơ sở dữ liệu
c) Các thành phần cơ bản của Jira
Trang 25- Roles: Xác lập các vai trò của dự án Đây là mục sẽ xác nhận ai là người tham gia
vào dự án, những người được thêm vào role thì mới có thể tạo Resource Allocation
và project team sau này Một role có thể gồm nhiều người
- Issue: là các tasks, các bugs, các features hay bất kỳ các type khác trong project
work
- Project: Đây là chức năng dùng để phân quyền approve worklog cho các thành viên
của dự án Những người thuộc team lead của group nào thì sẽ được approve worklog cho thành viên của group đó Project management sẽ được quyền approve cho toàn
bộ thành viên dự án
- Component: là sản phẩm của dự án Người dùng sẽ nhập tất cả sản phẩm của dự
án lấy từ file kế hoạch doanh số vào đây Nếu dự án làm theo mô hình Scrum thì sẽ
là Product của Sprint tương ứng
- Workflow: Là một quản trị JIRA, người dùng có thể cấu hình lên quy trình làm
việc, điều kiện, xác nhận, và chức năng Đây là trang sẽ cung cấp một cái nhìn tổng quan và các bước cơ bản cho từng thành phần công việc của bạn
- Priority: Là mức độ ưu tiên của một lỗi Có 4 mức, người dùng chọn dữ liệu phù
hợp theo datalist
- Status: Đại diện cho các vị trí vấn đề trong workflow
2.5.3 Giải thích vòng đời bug trên Jira
Hình 2 3: Vòng đời của bugs trên Jira
2.5.4 Báo cáo bug trên Jira
Đánh giá issue có phải regression issue không hay new issue:
Trang 26- Nếu là regression, thêm text trong phần Description "Regression issue: Yes"
(TC-ID passed in build n-1)”
Workaround (nếu có): Cung cấp những flow để end user có thể để by pass qua
issue, cho thấy issue có nghiêm trọng hay ko
Customer impact (bắt buộc điền):
- Nếu không có impact thì N/A
- Risk cho bussiness thì phải nêu rõ
Reproducible: tần suất reproduce của bug (đánh giá độ khó của bug) Làm cơ sở
đánh giá issue đưa vào plan solve trong sprint