chọn đề tài “Ứng dụng hệ thống quản lý bug trong quy trình kiểm thử phần mềm tại công ty cổ phần truyền thông và dịch vụ NoDo” làm đề tài nghiên cứu.... 1.2 Mục tiêu nghiên cứuVới đề tài
Trang 1MỤC LỤC
PHẦN I: MỞ ĐẦU 1
1.1 Lý do lựa chọn đề tài 1
1.2 Mục tiêu nghiên cứu 1
1.3 Đối tượng và phạm vi nghiên cứu đề tài 2
1.3.1 Đối tượng nghiên cứu 2
1.3.2 Phạm vi nghiên cứu 2
1.4 Phương pháp nghiên cứu 2
1.4.1 Phương pháp thu thập dữ liệu 2
1.4.2 Phương pháp xử lý số liệu 3
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HỆ THỐNG QUẢN LÝ BUG TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM 4
1.1 Những khái niệm cơ bản 4
1.1.1 Khái niệm chung 4
1.1.2 Khái niệm liên quan trực tiếp tới vấn đề nghiên cứu 4
1.2 Cơ sở lý luận liên quan đến hệ thống quản lý bug trong quy trình kiểm thử 5
1.2.1 Kiểm thử phần mềm 6
1.2.1.1 Tổng quan 6
1.2.1.2 Mục đích của kiểm thử phần mềm 6
1.2.1.3 Các giai đoạn kiểm thử phần mềm 7
1.2.1.4 Kiểm thử trong các giai đoạn phát triển phần mềm 7
a, Kiểm thử trong giai đoạn đặc tả yêu cầu 8
b, Kiểm thử trong giai đoạn thiết kế 9
c, Kiểm thử trong giai đoạn lập trình 9
1.2.1.5 Người kiểm thử 9
1.2.1.6 Luồng thông tin kiểm thử 11
1.2.1.7 Các phương pháp kiểm thử 11
1.2.1.8 Các mức kiểm thử 12
1.2.2 Ứng dụng phần mềm 15
1.2.2.1 Tổng quan 15
Trang 21.2.2.3 Quy trình ứng dụng phần mềm 15
1.3 Tổng quan tình hình nghiên cứu 17
1.3.1 Tình hình nghiên cứu trong nước 17
1.3.2 Tình hình nghiên cứu trên thế giới 18
CHƯƠNG 2: PHÂN TÍCH, ĐÁNH GIÁ THỰC TRẠNG QUẢN LÝ BUG TRONG QUY TRÌNH KIỂM THỬ TẠI CÔNG TY CỔ PHẦN TRUYỀN THÔNG VÀ DỊCH VỤ NO DO 18
2.1 Tổng quan về công ty 19
2.1.1 Giới thiệu chung về doanh nghiệp 19
2.1.2 Quá trình hình thành và phát triển 19
2.1.3 Cơ cấu tổ chức và cơ cấu nhân lực 20
2.1.3.1 Cơ cấu tổ chức 20
2.1.3.2 Chức năng nhiệm vụ của các bộ phận 21
2.1.4 Lĩnh vực hoạt động 21
2.1.5 Kết quả hoạt động kinh doanh 23
2.2 Thực trạng vấn đề quản lý bug trong quy trình kiểm thử tại công ty 23
2.2.1 Các khâu trong quy trình kiểm thử 23
2.2.2 Các yếu tố liên quan trong quá trình kiểm thử 25
2.2.3 Kết quả phân tích vấn đề nghiên cứu 25
2.2.4 Kết luận và phát hiện qua nghiên cứu 28
CHƯƠNG 3: ỨNG DỤNG HỆ THỐNG QUẢN LÝ BUG TRONG QUY TRÌNH KIỂM THỬ TẠI CÔNG TY CỔ PHẦN TRUYỀN THÔNG VÀ DỊCH VỤ NODO 29 3.1 Tìm hiểu về ứng dụng hỗ trợ quy trình kiểm thử 30
3.2 Đề xuất ứng dụng hỗ trợ quy trình kiểm thử tại công ty Cổ phần truyền thông và dịch vụ NoDo 34
3.2.1 Giới thiệu về Redmine 34
3.2.1.1 Tổng quan về redmine 34
3.2.1.2 Một số tính năng cơ bản của redmine 34
3.2.2 Cài đặt 34
3.2.3 Triển khai dự án trên hệ thống redmine 39
3.2.3.1 Thông tin hệ thống 39
Trang 33.2.3.2 Quản lý thông tin tài khoản 39
3.2.3.3 Hướng dẫn theo dõi các công việc cá nhân 41
3.2.3.4 Các thao tác với Project 44
3.2.4 Đánh giá hệ thống 54
KẾT LUẬN 56
DANH MỤC TÀI LIỆU THAM KHẢO 56 PHỤ LỤC 57
Trang 4DANH MỤC BẢNG BIỂU
Bảng 1: Kết quả hoạt động kinh doanh 23
Bảng 2: Danh sách cán bộ nhân viên điền phiếu điều tra và trả lời phỏng vấn 26
Bảng 3: Các trường trong màn hình đăng ký tài khoản 40
Bảng 4: Thao tác với issues 46
Bảng 5: Thông tin trong issue 48
Bảng 6: Thao tác cập nhật issue 49
Bảng 7: Thông tin tổng quan trong Settings 53
Bảng 8: Danh sách module trong Settings 54
Trang 5DANH MỤC HÌNH ẢNH
Hình II 1: Mô hình vòng đời tổng quát phát triển một hệ thống phần mềm 6
Hình II 2: Người lập trình 10
Hình II 3: Người kiểm thử 10
Hình II 4: Kiến thức cần có của người kiểm thử 10
Hình II 5: Mô hình luồng thông tin kiểm thử 11
Hình II 6: Kiểm thử hộp đen 11
Hình II 7: Kiểm thử hộp trắng 12
Hình II 8: Mức độ kiểm thử cơ bản 13
Hình II 9: Quy trình ứng dụng phần mềm 15
Hình II 10: Bộ máy tổ chức Công ty cổ phần truyền thông và dịch vụ NoDo 20
Hình II 11: Đánh giá mức độ chậm deadline trong dự án 26
Hình II 12: Nguyên nhân chậm deadline 27
Hình II 13 : Hình thức trao đổi thông tin giữa các bộ phận 28
Hình III 1: Ứng dụng Mantis 30
Hình III 2: Ứng dụng Bugnet 31
Hình III 3: Ứng dụng Genie 32
Hình III 4: Ứng dụng Jira 32
Hình III 5: Ứng dụng Redmine 33
Hình III 6: Cài đặt RailsInstaller 35
Hình III 7: Đường dẫn khi cài RailsInstaller 35
Hình III 8: Cài đặt ImageMagick 36
Hình III 9: Cài đặt ImageMagick 36
Hình III 10: Kiểm tra cài đặt thành công 37
Hình III 11: Kiểm tra cài đặt 37
Hình III 12: Kiểm tra cài đặt 39
Hình III 13: Màn hình đăng nhập của redmine 39
Hình III 14: Đăng ký tài khoản 40
Hình III 15: Màn hình quản lý tài khoản 40
Hình III 16: Khôi phục mật khẩu 41
Hình III 17: Màn hình theo dõi các công việc cá nhân 41
Trang 6Hình III 18: Tùy biến trang 42
Hình III 19: Thêm block 42
Hình III 20: Trang thông tin dự án 43
Hình III 21: Tổng quan về dự án 43
Hình III 22: Tổng quát thời gian làm việc 43
Hình III 23: Tổng quát các activity mới 44
Hình III 24: Thao tác với dự án 44
Hình III 25: Xem hoạt động của dự án 45
Hình III 26: Danh sách các vấn đề (issues) 45
Hình III 27:Thao tác tạo vấn đề 46
Hình III 28: Giao diện xem chi tiết Issue 48
Hình III 29: Biểu đồ gantt chart 50
Hình III 30:Màn hình chọn các loại issue hiển thị trong khung bên phải 50
Hình III 31: Kéo thả các issue để cập nhật trạng thái 50
Hình III 32: Version planning 51
Hình III 33:Calender 51
Hình III 34:Thông báo các tin tức mới 51
Hình III 35: Danh sách tài liệu 52
Hình III 36: Thêm mới tài liệu 52
Hình III 37: Danh sách các trang wiki 53
Trang 7DANH MỤC TỪ VIẾT TẮT
Danh mục từ viết tắt tiếng Việt
CNTT Công nghệ thông tin
Trang 8LỜI MỞ ĐẦU
Trong suốt 4 năm theo học tại trường Đại học Thương Mại tôi đã được làmquen với những kiến thức về chuyên ngành Hệ Thống Thông Tin Kinh Tế Nhậnthấy rằng hệ thống thông tin hiện tại là nền tảng cho sự hoạt động, vận hành củamọi doanh nghiệp Doanh nghiệp nào muốn hoạt động vững chắc, ổn định và đạtnăng suất, hiệu quả cao thì doanh nghiệp ấy phải có một hệ thống thông tin tốt, hiệuquả và phù hợp với cả môi trường bên trong và bên ngoài doanh nghiệp Hiện tại,các doanh nghiệp Việt Nam đã và đang áp dụng những hệ thống thông tin vào trongcác hoạt động sản xuất kinh doanh của mình, hướng tới việc đơn giản hóa các thủtục, công việc có thể hệ thống hóa từ đó nâng cao hiệu quả trong các hoạt động sảnxuất kinh doanh, giảm thiểu tối đa các chi phí Vẫn còn nhiều vấn đề trong việc ápdụng, triển khai và vận hành hệ thống thông tin vào các hoạt động sản xuất kinhdoanh của các doanh nghiệp Việt Nam, vậy nên chúng ta cần phải nỗ lực hơn nữatrong công tác đào tạo nguồn lực để có thể áp dụng thành công các hệ thống thôngtin, phục vụ cho các hoạt động của doanh nghiệp nói riêng và toàn bộ nền kinh tếViệt Nam nói chung
Trường Đại học Thương Mại là một trong những cái nôi đầu tiên ươm mầmcho nguồn nhân lực hệ thống thông tin kinh tế ấy của nước nhà Với hệ thống đàotạo bài bản, quy mô, khoa học và hệ thống đã đào tạo nên những cử nhân có tầm và
có vực phục vụ cho việc phân tích, thiết kế và triển khai hệ thống thông tin vàodoanh nghiệp
Kết thúc 4 năm đại học, tôi có cơ hội được làm khóa luận, được tổng hợpnhững kiến thức trong suốt thời gian theo học chuyên ngành Hệ Thống Thông TinKinh Tế và có điều kiện so sánh, đối chiếu với thực tế thông qua đợt thực tập do nhàtrường tổ chức
Để hoàn thành được khóa luận này, tôi xin gửi lời cảm ơn chân thành và sâusắc tới các thầy cô trong trường Đại học Thương Mại đã tận tình giúp đỡ, bồi dưỡngnhững kiến thức cho tôi trong suốt 4 năm theo học tại nhà trường
Đồng cảm ơn Công ty Cổ phần truyền thông và dịch vụ NoDo đã tạo điều kiện
cho tôi có cơ hội, điều kiện thực tập và công tác tại công ty Cảm ơn sự giúp đỡchân thành và nhiệt tình của các anh, các chị là nhân viên trong công ty đã giúp tôi
Trang 9tìm hiểu thực tế về hoạt động của công ty và tình hình ứng dụng hệ thống thông tinvào những hoạt động đó.
Đặc biệt, tôi xin chân thành cảm sự giúp đỡ tâm huyết, trách nhiệm và tận tìnhtới giảng viên – Thạc sỹ Hàn Minh Phương, người đã trực tiếp giúp đỡ tôi trongsuốt quá trình hoàn thiện bài khóa luận này
Mặc dù đã rất cố gắng và nỗ lực song với thời gian nghiên cứu hạn hẹp, trình
độ và khả năng của bản thân còn hạn chế, do đó khóa luận sẽ không tránh khỏi
những thiếu sót Kính mong các thầy, cô giáo trong khoa HTTT KINH TẾ &
TMĐT, các anh/chị nhân viên trong Công ty Cổ phần truyền thông và dịch vụ
NoDo chỉ bảo để bài khóa luận có giá trị hơn về mặt lý luận và mang tính thực tiễn
cao
Tôi xin chân thành cảm ơn!
Hà Nội, năm 2017 Sinh viên thực hiện Phùng Thị Huyền
Trang 10cả nhu cầu của các bên hữu quan (khách hàng, nhà cung cấp, nhà đầu tư…) củadoanh nghiệp.
Các hoạt động đầu tư CNTT trong doanh nghiệp nhằm phục vụ cho các mục
tiêu của doanh nghiệp như hỗ trợ các hoạt động tác nghiệp, hỗ trợ cho việc ra các quyết định quản lý, hỗ trợ việc xây dựng các chiến lược nhằm đạt lợi thế cạnh tranh,…Có nhiều mô hình đầu tư CNTT trong doanh nghiệp, mỗi mô hình có cách
tiếp cận khác nhau nhưng đều có chung mục đích là giúp doanh nghiệp xác địnhđược lộ trình đầu tư và mối quan hệ giữa các thành phần trong bức tranh tổng thể vềứng dụng CNTT trong doanh nghiệp Mỗi doanh nghiệp cần phải chọn cho mình
mô hình đầu tư CNTT cho phù hợp để phát huy hiệu quả các khoản đầu tư, phục vụcho mục tiêu kinh doanh
Kiểm thử phần mềm là bộ phận sống còn của quy trình phát triển phần mềm,
sự hỗ trợ quan trọng để đảm bảo chất lượng của phần mềm Kiểm thử phần mềm làmột lĩnh vực rất quan trọng trong hoạt động sản xuất cũng như gia công phần mềm
Trong thời gian thực tập ở công ty Cổ phần truyền thông và dịch vụ NoDo -
công ty về lĩnh vực CNTT, em đã tìm hiểu và nhận thấy rằng quy trình quản lý lỗi
để hỗ trợ quá trình thực hiện dự án vẫn còn thủ công Điều này gây tốn thời gian và khó khăn cho nhân viên thực hiện dự án cũng như tiến độ dự án Chính vì vậy, công
ty cần một hệ thống quản lý các lỗi trong quá trình thực hiện dự án Đó là lý do em
Trang 11chọn đề tài “Ứng dụng hệ thống quản lý bug trong quy trình kiểm thử phần mềm tại công ty cổ phần truyền thông và dịch vụ NoDo” làm đề tài nghiên cứu.
Trang 121.2 Mục tiêu nghiên cứu
Với đề tài “Ứng dụng hệ thống quản lý bug trong quy trình kiểm thử phần mềm tại công ty cổ phần và truyền thông dịch vụ NoDo” thì bài khóa luận sẽ giải
quyết các vấn đề sau:
- Tìm hiểu thực trạng, quy trình kiểm thử phần mềm tại công ty.
- Tìm hiểu về ứng dụng hỗ trợ quy trình kiểm thử và đề xuất ứng dụng hỗ trợ
tại công ty
- Đánh giá hiệu quả hệ thống quản lý bug cho công ty.
1.3 Đối tượng và phạm vi nghiên cứu đề tài
1.3.1 Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là phần mềm hỗ trợ quản lý bug trong quy
trình kiểm thử phần mềm của công ty Cổ phần truyền thông và dịch vụ NoDo.
1.3.2 Phạm vi nghiên cứu
- Về không gian: Công ty cổ phần truyền thông và dịch vụ NoDo.
- Thời gian: Năm 2017
1.4 Phương pháp nghiên cứu
Để có thể đảm bảo được tính đúng đắn của thông tin cũng như tính khoa học
trong nghiên cứu bài khóa luận này đã sử dụng chủ hai phương pháp: Phương pháp thu thập dữ liệu và Phương pháp xử lý số liệu
1.4.1 Phương pháp thu thập dữ liệu
Mục tiêu của phương pháp này đó là có được các thông tin liên quan đến mụctiêu đã đề ra với độ tin cậy và chính xác cao Đề tài chủ yếu áp dụng các phươngpháp: phỏng vấn, phiếu điều tra và quan sát trực tiếp
Thu thập dữ liệu sơ cấp
- Để phục vụ cho quá trình khảo sát thực trạng quản lý nhân sự tại Công ty cổ
phần truyền thông và dịch vụ NoDo, đề tài có sử dụng phương pháp điều tra trắcnghiệm hiện trường thông qua phiếu điều tra và bảng câu hỏi nhằm thu thập cácthông tin dữ liệu từ nhiều đối tượng nhân viên thuộc các phòng ban khác nhau trongcông ty như: Bộ phận lập trình, Bộ phận kiểm thử, Bộ phận kế toán, Bộ phận thịtrường, Bộ phận phát hành game, Bộ phận phân tích thiết kế, Bộ phận tư vấn vàchăm sóc khách hàng, Bộ phận marketing Các phiếu điều tra được gửi cho các cán
Trang 13bộ, nhân viên trong công ty Sau đó, các phiếu điều tra sẽ được tổng hợp lại, xử lý
và đưa vào CSDL của phần mềm Excel xử lý và phân tích
- Phương pháp quan sát giúp các phân tích viên thu thập được những thông tin
không có trong tài liệu và không thu thập được qua quá trình phỏng vấn, có đượcmột bức tranh khái quát về tổ chức và cách quản lý các hoạt động của tổ chức
- Phỏng vấn những người có ảnh hưởng đến quy trình kiểm thử là các trưởng
phòng, các nhân viên và Ban giám đốc để thu được những thông tin xác thực nhất
về vấn đề đang nghiên cứu
Thu thập dữ liệu thứ cấp
- Các báo cáo kết quả hoạt động kinh doanh của công ty trong vòng 3 năm từ
2014- 1017 được thu thập từ Bộ phận kế toán của công ty
- Thu thập tài liệu liên quan đến cơ sở lý luận, các lý thuyết về phần mềm, hệ
thống thông tin và về quy trình kiểm thử ,… từ các công trình nghiên cứu, sách, báo, internet
Sau khi thu thập đầu đủ các thông tin cần thiết sẽ tiến hành phân loại sơ bộ cáctài liệu đó Nếu cần thêm tài liệu liên quan thì bổ sung và nếu đủ rồi thì tiến hành xử
lý dữ liệu
1.4.2 Phương pháp xử lý số liệu
- Sử dụng phương pháp phân tích, tổng hợp, so sánh, đánh giá dữ liệu thu thập
được các số liệu (sơ cấp, thứ cấp) để có thể rút ra một số đánh giá về thực trạngquản lý bug của công ty
- Sử dụng phương pháp toán thống kê (sử dụng excel) để xử lý các tài liệu, số
liệu thu thập được từ phiếu điều tra để đánh giá được thực trạng quản lý bug tạicông ty
1.5 Kết cấu khóa luận
Ngoài các mục lời cảm ơn, mục lục, danh mục bảng biểu, hình vẽ, tài liệutham khảo và phụ lục, nội dung khóa luận gồm:
Trang 14Phần II: Nội dung
- Chương 1: Cơ sở lý luận về hệ thống quản lý bug trong quy trình kiểm thử.
- Chương 2: Phân tích, đánh giá thực trạng quản lý bug trong quy trình kiểm
thử tại công ty cổ phần truyền thông và dịch vụ NoDo
- Chương 3: Ứng dụng hệ thống quản lý bug trong quy trình kiểm thử tại công
ty cổ phần truyền thông và dịch vụ NoDo
Phần III: Kết luận
PHẦN II: NỘI DUNG
CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ HỆ THỐNG QUẢN LÝ BUG
TRONG QUY TRÌNH KIỂM THỬ PHẦN MỀM1.1 Những khái niệm cơ bản
1.1.1 Khái niệm chung
Thông tin (Information) là các tin tức mà con người trao đổi với nhau, hay nói
rộng hơn thông tin bao gồm những tri thức về các đối tượng (Nguồn: Bài giảng Tổ chức HTTT thị trường và thương mại vĩ mô, Trường Đại học Thương Mại).
Hệ thống [1] (System) là tập hợp nhiều phần tử có các mối quan hệ ràng buộc
lẫn nhau và cùng hoạt động hướng tới mục đích chung
Hệ thống thông tin (Information System) là một tập hợp và kết hợp của các
phần cứng, phần mềm và các hệ mạng truyền thông được xây dựng và sử dụng đểthu thập, tạo, tái tạo, phân phối và chia sẻ các dữ liệu, thông tin và tri thức nhằm
phục vụ các mục tiêu của tổ chức (Nguồn: Bài giảng Tổ chức HTTT thị trường và thương mại, Bộ môn CNTT, Trường ĐH Thương Mại)
Trang 15Hệ thống thông tin quản lý (MIS – Managament Information System) là một
hệ thống tích hợp “Người – Máy” tạo ra và lưu trữ các thông tin giúp con người
trong sản xuất, quản lý cũng như ra quyết định (Nguồn: Bài giảng HTTT kinh tế và quản lý, Bộ môn CNTT, Trường ĐH Thương Mại)
Phần mềm máy tính hay còn được gọi tắt là phần mềm (software) là một tập
hợp các câu lệnh hoặc chỉ thị được viết bằng 1 hoặc nhiều ngôn ngữ lập trình theomột trật tự xác định nhằm tạo ra một nhiệm vụ hay chức năng năng hoặc một vấn đề
cụ thể nào đó
1.1.2 Khái niệm liên quan trực tiếp tới vấn đề nghiên cứu
Kiểm thử phần mềm (Software Testing) là một hoạt động kiểm tra được thực
hiện để cung cấp cho các bên liên quan thông tin về chất lượng sản phẩm hoặc dịch
vụ đang được kiểm tra Kiểm thử phần mềm cũng có thể cung cấp một cái nhìnkhách quan, độc lập về phần mềm để cho phép các doanh nghiệp đánh giá và nắmđược rủi ro khi triển khai phần mềm Các kỹ thuật kiểm tra bao gồm quá trình thựchiện chương trình hoặc ứng dụng với mục đích tìm lỗi phần mềm và để xác minhrằng sản phẩm phần mềm phù hợp sử dùng
Bug là một khiếm khuyết trong một thành phần hoặc hệ thống mà nó có thể
làm cho thành phần hoặc hệ thống này không thực hiện đúng chức năng, yêu cầucủa nó Có thể là lỗi giao diện, lỗi chức năng, lỗi nghiệp vụ
Testcase: Được dịch ra tiếng việt là ca kiểm thử Là một dạng thức mô tả dữ
liệu đầu vào, một số hành động (hành vi) hoặc sự kiện và một kết quả mong đợi đểxác định chức năng của một ứng dụng phần mềm hoạt động đúng hay không
Quy trình kiểm thử phần mềm là một dãy các hành động, con người và hệ
thống liên quan để làm ra một sản phẩm, dịch vụ theo các lặp đi lặp lại Quy trìnhkiểm thử là một giai đoạn trong chu trình phát triển phần mềm Giai đoạn này đượcthực hiện theo một trình tự nhất định nhằm đảm bảo phần mềm đi đúng hướng theo
Trang 16Đặc tả yêu cầu phần mềm: Phần mềm được viết để thực hiện các nhu cầu
của khách hàng Các nhu cầu của khách hàng được thu thập, phân tích đánh giá và
là cơ sở để quyết định chính xác các đặc trưng cần thiết mà sản phẩm phần mềmcần phải có Dựa trên yêu cầu của khách hàng và các yêu cầu bắt buộc khác, đặc tảđược xây dựng để miêu tả chính xác các yêu cầu mà sản phẩm phần mềm cần phảiđáp ứng Tài liệu đặc tả là cơ sở để đội ngũ phát triển phần mềm xây dựng sản phẩmphần mềm
Chất lượng và độ tin cậy của phần mềm: Theo từ điển, chất lượng của một
sản phẩm được thể hiện bằng các đặc trưng phù hợp với đặc tả của nó Theo cáchhiểu này, chất lượng của một sản phẩm phần mềm là sự đáp ứng các yêu cầu vềchức năng, sự hoàn thiện và việc tuân thủ nghiêm ngặt trong đặc tả, cùng các đặctrưng mong chờ từ mọi sản phẩm phần mềm chuyên nghiệp Chất lượng phần mềmđặc trưng cho “độ tốt” của phần mềm và gồm các yếu tố về chất lượng như: tínhđúng đắn (hành vi đúng như đặc tả), tính hiệu quả (tiết kiệm thời gian và tiền bạc),
độ tin cậy, dễ học,dễ sử dụng…Như vậy, độ tin cậy chỉ là yếu tố để đánh giá chấtlượng của một sản phẩm phần mềm Độ tin cậy của phần mềm là xác suất để phầnmềm chạy không có thất bại trong một khoảng thời gian nhất định Nó được xem làmột yếu tố quan trọng của chất lượng phần mềm
Trang 171.2 Cơ sở lý luận liên quan đến hệ thống quản lý bug trong quy trình kiểm thử
1.2.1 Kiểm thử phần mềm
1.2.1.1 Tổng quan
Kiểm thử phần mềm là một phần của tiến trình phát triển phần mềm Nó làtiến trình đánh giá một hệ thống hoặc một thành phần của hệ thống bằng tay hoặc tựđộng, nhằm xác định lại sự thỏa mãn các yêu cầu của phần mềm
Hình II 1: Mô hình vòng đời tổng quát phát triển một hệ thống phần mềm
Mô tả vòng đời tổng quát phát triển một hệ thống phần mềm:
- Khi có yêu cầu của khách hàng (yêu cầu của bài toán) rõ ràng thì nhân viên
tiến hành phân tích, đặc tả yêu cầu rồi gửi cho bộ phận thiết kế
- Sau khi nhận được tài liệu đặc tả, bộ phận thiết kế tiến hành thiết kế giao
diện, thiết kế dữ liệu cho hệ thống và bàn giao cho bộ phận lập trình
- Bộ phận lập trình tiến hành lập trình sau khi nhận được giao diện và dữ liệu.
- Phần mềm được hoàn thành thì bộ phận kiểm thử tiến hành kiểm thử phần
mềm và trao đổi với bộ phận lập trình
- Cuối cùng, khi việc kiểm thử được hoàn tất thì tiến hành cài đặt, vận hành và
bảo trì
1.2.1.2 Mục đích của kiểm thử phần mềm
Trang 18“Phát triển hệ thống phần mềm gồm rất nhiều hoạt động sản xuất và nguy cơ
lỗi là rất lớn Lỗi có thể xảy ra ngay lúc khởi đầu tiến trình, hay trong các giai đoạn thiết kế hoặc phát triển sau này…”
Kiểm thử phần mềm nhằm đảm bảo chất lượng phần mềm
Theo Glen Myers [4]:
Kiểm thử là tiến trình thực thi để tìm ra lỗi
- Một trường hợp kiểm thử là trường hợp có xác suất cao để tìm ra lỗi chưa
biểu hiện
- Kiểm thử thành công khi phát hiện ra lỗi.
Những mục đích trên đi ngược lại với quan điểm thông thường “kiểm thửthành công là kiểm thử không tìm ra lỗi nào” Nếu kiểm thử không phát hiện ra lỗithì ta sẽ nghĩ rằng cấu hình kiểm thử này chưa đúng và lỗi vẫn còn tiềm ẩn trongphần mềm Nếu lỗi này được phát hiển bởi người dùng thì chi phí cho việc bảo trì,xác địn lỗi có thể gấp rất nhiều lần chi phí tìm lỗi trong quá trình phát triển Vậykiểm thử thành công là kiểm thử tìm ra lỗi
Chúng ta cần nhớ rằng “Kiểm thử không thể chứng được việc không có khiếm khuyết, nó chỉ có thể chứng minh rằng khiếm khuyến phần mềm hiện hữu.”
1.2.1.3 Các giai đoạn kiểm thử phần mềm
Trong quá trình kiểm thử gồm 4 giai đoạn:
- Phác họa môi trường của phần mềm: Tìm xem có khoảng bao nhiêutrường hợp cần kiểm thử, là những trường hợp nào
- Tìm kịch bản kiểm thử: Mỗi kịch bản sẽ có thời gian và chi phí cần thiết.Chỉ chọn một số kịch bản tiêu biểu để dùng cho kế hoạch kiểm thử
- Thực thi và đánh giá kịch bản kiểm thử:
Trang 19Thực thi kịch bản kiểm thử: Để kết luận kết quả kiểm thử là đúng hay sai,người kiểm thử chuyển nó thành hình thức có thể thực thi được bằng cách thực hiệnlại các thao tác của người dùng dựa trên kịch bản kiểm thử đó
Đánh giá kịch bản kiểm thử: Đánh giá phải dựa trên kết quả thực thi củaphần mềm, kết quả thực thi kịch bản kiểm thử, kết quả mong muốn theo bản đặc tảyêu cầu Bản đặc tả phải được đảm bảo đúng Người kiểm thử sẽ so sánh kết quảthực thi và kết quả mong muốn có gì sai khác không
- Đo lường sự tiến bộ của phần mềm sau khi đã kiểm thử: Đáng giá tiếntrình kiểm thử dựa trên độ đo về kết quả kiểm thử
1.2.1.4 Kiểm thử trong các giai đoạn phát triển phần mềm
3 Lên kế hoạch kiểm thử
4 Trình bày kiểm thử: Thủ tục kiểm thử, kịch bản kiểm thử, những trườnghợp kiểm thử, những tập lệnh kiểm thử để sử dụng trong quá trình kiểm thử
5 Tiến hành kiểm thử: Những nhà kiểm thử tiến hành thực thi các trườnghợp kiểm thử theo bản kế hoạch đã lập ra và thông báo tất cả lỗi tìm được cho nhàphát triển
6 Thông báo kết quả kiểm thử: Khi quá trình kiểm thử thành công, ngườikiểm thử thông báo kiểm thử
Không phải tất cả các lỗi và khuyết điểm đều phải được sửa chữa bởi nhómphát triển phần mềm Một số khuyết điểm có thể do cấu hình kiểm thử chưa phùhợp với môi trường phần mềm Một số lỗi khác có thể đợi để sửa ở phiên bản mớicủa phần mềm hoặc những thiếu sót có thể được người dùng chấp nhận Nhóm phát
Trang 20triển có thể bỏ qua những lỗi mà họ cho rằng nó ảnh hưởng không đáng kể đếnchương trình.
a, Kiểm thử trong giai đoạn đặc tả yêu cầu
Kiểm thử yêu cầu hệ thống
Mục đích của kiểm thử yêu cầu hệ thống là:
- Đảm bảo cấu hình phần cứng, hệ điều hành phù hợp với phần mềm cần kiểm
thử
- Chắc chắn rằng mọi chức năng hệ thống phần mềm đều thực thi tốt.
- Đảm bảo các cấu hình trong hệ thống phần mềm đều được nhận ra.
- Kiểm chứng sự chính xác của cấu trúc hệ thống phần mềm.
- Đảm bảo rằng số lượng các yêu cầu và số lượng thuộc tính của yêu cầu theo
đúng lý thuyết
- Đảm bảo rằng những yêu cầu có thể thực hiện được.
Kiểm thử yêu cầu phần mềm
Kiểm thử yêu cầu phần mềm là kiểm tra chi tiết các yêu cầu tương ứng vớinhững chức năng của phần mềm Mục đích:
- Xác nhận đã hoàn thành.
- Đảm bảo rằng bản đặc tả yêu cầu đáng tin cậy, có thể duy trì được, khả thi và
chính xác
- Đảm bảo khả năng làm đúng các yêu cầu ở mức cao nhất.
- Xác nhận rằng các yêu cầu đã đủ cho việc thiết kế phần mềm.
- Xác nhận những yêu cầu là thích hợp và có thể kiểm tra được.
b, Kiểm thử trong giai đoạn thiết kế.
Kiểm thử thiết kế kiến trúc
Mục đích của việc kiểm tra thiết kế kiến trúc là:
Trang 21- Đảm bảo việc thiết kế phù hợp với bản đặc tả yêu cầu.
- Đảm bảo tất cả giao diện được thiết kế một cách đúng đắn.
- Xem lại danh sách các mô- đun và chức năng tổng quát của mỗi modul.
- Phát hiện các thiết kế không đúng theo yêu cầu, sau đó sửa chữa lại theo yêu
cầu
- Xác định các thành phần có thể dùng lại được.
- Đảm bảo rằng thiết kế bám sát bản đặc tả.
- Xác nhận tính hợp lệ của các giao diện nhập, xuất.
Kiểm tra thiết kế chi tiết
Mục đích của việc kiểm tra thiết kế chi tiết:
- Đảm bảo rằng thiết kế phù hợp với bản đặc tả yêu cầu.
- Xác nhận tính hợp lệ của tất cả các thuật toán logic, cấu trúc dữ liệu và các
câu lệnh được sử dụng trong phạm vi mỗi mô-đun
- Quyết định việc thiết kế chi tiết đối với mỗi mô- đun được chấp nhận hay cần
thiết kế lại?
- Đảm bảo tất cả thiết kế đều tuân theo quy định và các chuẩn đã đề ra.
c, Kiểm thử trong giai đoạn lập trình
Mục đích của kiểm thử trong giai đoạn lập trình:
- Đảm bảo rằng mã nguồn phù hợp với bản đặc tả yêu cầu đã được phê duyệt.
- Xác nhận mức chính xác và tính hoàn tấp của việc lặp.
- Xác nhận rằng tất cả các chi tiết thiết kế đã được lập trình.
- Đảm bảo rằng việc lập trình theo sát bản đặc tả yêu cầu.
- Đảm bảo tất cả những gì được lập trình đều được mô tả theo bản thiết kế chi tiết.
1.2.1.5 Người kiểm thử
Để chuẩn bị kế hoạch và thực hiện kiểm thử, người kiểm thử phải tìm hiểu vềphần mềm, nghĩ ra những nghiệp vụ, dữ liệu đầu vào và cách phối hợp chúng Điều
Trang 22Người kiểm thử không chỉ cần có kỹ năng phát triển phần mềm tốt mà cònphải rất am hiểu về các ngôn ngữ thông dụng, nguyên lý đồ thị và các thuật toán.Ngoài ra, họ phải có khả năng nhạy bén trong việc phát hiện những lối phức tạp.Nói chung, người lập trình cần có kiến thức chuyên sâu, còn người kiểm thử phải cókiến thức rộng.
Hình II 2: Người lập trình
Hình II 3: Người kiểm thử
Trang 23Hình II 4: Kiến thức cần có của người kiểm thử.
1.2.1.6 Luồng thông tin kiểm thử
Hình II 5: Mô hình luồng thông tin kiểm thử
Đầu vào được cung cấp cho tiến trình kiểm thử:
- Cấu hình phần mềm gồm: Bản đặc tả yêu cầu phần mềm, bản đặc tả thiết kế
và mã nguồn chương trình
- Cấu hình kiểm thử gồm: Kế hoạch và thủ tục kiểm thử, công cụ kiểm thử,
trường hợp kiểm thử và kết quả dự kiến
Tất cả kết quả kiểm thử được đánh giá bằng cách so sánh với kết quả dự kiến,nếu có sai khác thì đó có thể là lỗi
Trang 24Các kết quả kiểm thử sẽ xác định chất lượng và độ tin cậy của phần mềm.
1.2.1.7 Các phương pháp kiểm thử
Kiểm thử hộp đen (Black –box Testing)
- Trong kiểm thử hộp đen ta sẽ không để ý đến bên trong của hệ thống, mà chỉ
quan tâm đến dữ liệu và thông tin đầu ra
Hình II 6: Kiểm thử hộp đen
- Kiểm thử hộp đen là còn được gọi là kiểm thử chức năng hay kiểm thử bên
ngoài Kiểm thử hộp đen coi phần mềm như là một "hộp đen", kiểm thử chức năng
mà không cần bất kỳ kiến thức về cấu trúc và hành vi bên trong phần mềm Tiếnhành kiểm thử hộp đen, người kỹ sư phần mềm sẽ tìm ra những điều kiện cần thiếtđối với dữ liệu đầu vào, đây chính là điều kiện để một chương trình chạy đúng
Kiểm thử hộp trắng (White-box Testing)
- Kiểm thử hộp trắng là phương pháp kiểm thử dựa vào các hàm, các thủ tục
trong mã nguồn
Trang 25Hình II 7: Kiểm thử hộp trắng
- Kiểm thử hộp trắng sử dụng các chiến lược cụ thể và sử dụng mã nguồn của
chương trình/ đơn vị phần mềm cần kiểm thử nhằm kiểm tra xem chương trình/đơn
vị phần mềm có thực hiện đúng so với thiết kế và đặc tả hay không Kiểm thử hộptrắng cho phép phát hiện các lỗi tiềm ẩn bên trong chương trình/ đơn vị phần mềm.Các lỗi này thường khó được phát hiện bởi kiểm thử hộp đen
Kiểm thử hộp xám (Gray-box Testing)
- Kiểm thử hộp xám đòi hỏi phải có sự truy cập tới cấu trúc dữ liệu và giải
thuật bên trong cho những mục đích thiết kế các ca kiểm thử, nhưng là kiểm thử ởmúc người sử dụng hay là hộp đen Việc thao tác với dữ liệu đầu vào và định dạng
dữ liệu đầu ra là không rõ ràng giông như một chiếc “hộp xám”
1.2.1.8 Các mức kiểm thử
Kiểm thử phần mềm không hoạt động một cách gò bó mà được thực hiện một cách linh hoạt Điều đó phụ thuộc vào phần mềm phát triển theo mô hình nào và giai đoạn phát triển trong dự án phần mềm
Hình II 8: Mức độ kiểm thử cơ bản
Kiểm thử đơn vị ( Unit test)
Trang 26- Kiểm thử đơn vị là việc kiểm thử các đơn vị chương trình một cách độc lập.
Đơn vị chương trình được định nghĩa phụ thuộc vào ngữ cảnh công việc Một đơn
vị chương trình là một đoạn mã nguồn như hàm hoặc phương thức của một lớp.Đơn vị chương trình cần được kiểm thử riêng biệt để phát hiện lỗi và khắc phụcchúng trước khi được tích hợp với các đơn vị khác
- Đặc điểm của unit test: Dễ tổ chức, kiểm tra, ghi nhận và phân tích kết quả.
Nếu phát hiện lỗi thì dễ dàng phát hiện nguyên nhân và dễ sửa chữa
Kiểm thử tích hợp (Integraytion test)
- Kiểm thử tích hợp là mức kế tiếp của kiểm thử đơn vị Sau khi các đơn vị
chương trình cấu thành hệ thống đã được kiểm thử, chúng cần kết nối với nhau đểtạo thành hệ thống đầy đủ và có thể làm việc Kiểm thử tích hợp nhằm đảm bảo hệthống làm việc ổn định trong môi trường thí nghiệm để săn sàng cho việc đưa vàomôi trường thực sự
- Kiểm thử tích hợp có 2 mục tiêu chính:
Phát hiện lỗi giao tiếp xảy ra giữa các đơn vị
Tích hợp các đơn vị Unit đơn lẻ thành các hệ thống nhỏ (subsystem) và cuốicùng là hệ thống hoàn chỉnh (system)
- Có 4 loại quan trọng nhất cần kiểm tra trong Integraytion test:
Kiểm tra cấu trúc (Structure Test): Nhằm đảm bảo thành phần cấu trúc bêntrong của một chương trình chạy đúng
Kiểm tra chức năng (Funtional Test): Kiểm tra chức năng của chương trìnhtheo yêu cầu kỹ thuật
Kiểm tra hiệu năng (Performance Test): Kiểm tra vận hành của hệ thống
Kiểm tra khả năng chịu tải (Stress Test): Kiểm tra các giới hạn của hệ thống
Kiểm thử hệ thống (System Test)
- System test là kiểm tra toàn bộ hệ thống sau khi tích hợp có thỏa mãn yêu
cầu đặt ra hay không System test bắt đầu khi tất cả các bộ phận của phần mềm đãđược tích hợp thành công Mục đích của kiểm thử hệ thống là đảm bảo rằng việc càiđặt tuân thủ đầy đủ các yêu cầu của người dùng
- System test gồm nhiều loại kiểm tra khác nhau, phổ biến nhất bao gồm:
Kiểm tra chức năng (Funtional Test): bảo đảm các hành vi của hệ thống thỏamãn đúng yêu cầu thiết kế
Trang 27Kiểm tra khả năng vận hành (Performance Test): bảo đảm tối ưu việc phân
bố tài nguyên hệ thống nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp ứng yêucầu truy vấn…
Kiểm tra khả năng chịu tải (Stress Test hay Load Test): bảo đảm hệ thốngvận hành đúng dưới áp lực cao
Kiểm tra cấu hình (Configuration Test)
Kiểm tra khả năng bảo mật (Security Test): bảo đảm tính toàn vẹn, bảo mậtcủa dữ liệu trong hệ thống
Kiểm tra khả năng phụ hồi (Recovery Test): đảm bảo hệ thống có khả năngkhôi phục trạng thái ổn định trước đó trong tình huống mất tài nguyên hoặc dữ liệu
- Các kiểm tra trên rất quan trọng, bảo đảm hệ thống đủ khả năng làm việc
trong môi trường thực Nhưng không nhất phải thực hiện tất cả các loại kiểm tratrên Tùy yêu cầu và đặc trưng của hệ thống, tùy khả năng và thời gian cho phép của
dự án mà tiến hành loại kiểm tra nào
Kiểm thử chấp nhận (Acceptance Test)
- Acceptance Test thường có ý nghĩa là người dung cuối kiểm thử chương
trình xem sản phẩm phần mềm có đáp ứng đầy đủ những chức năng mà họ cần hoặc
có đúng với quy trình công việc mà họ vẫn làm hay không? Đây là mức quyết địnhxem sản phẩm đã thực sự hoàn thiện để chuyển tới người sử dụng
Kiểm thử hồi quy (Regression Test)
- Kiểm thử hồi quy là kiểm tra lại phần mềm sau khi có một sự thay đổi nào
xảy ra, để đảm bảo phiên bản phần mềm mới thực hiện tốt các chức năng như phiênbản cũ và sự thay đổi không gây ra lỗi trên những chức năng vẫn đã làm việc tốt.Regresstion Test có thể kiểm thử tại mọi mức kiểm thử khác
1.2.2 Ứng dụng phần mềm
1.2.2.1 Tổng quan
Ứng dụng phần mềm là việc thực hiện đưa một hệ thống phần mềm đã có sẵn vào một quy trình hoạt động của doanh nghiệp, nhằm khai thác tối đa chức năng củaphần mềm hệ thống và mang lại hiệu quả cho doanh nghiệp
Trang 28Việc ứng dụng thành công một phần mềm phụ thuộc vào khá nhiều yếu tố, như xác định và đặt bài toán rõ ràng, lựa chọn được phần mềm đúng yêu cầu, việc đào tạo hướng dẫn sử dụng cẩn thận và bài bản…
- Lập đội quản lý dự án: Tùy theo quy mô của từng doanh nghiệp cần phải
cắt cử một người/nhóm phụ trách việc mua và triển khai phần mềm Nhóm dự ángồm có các cán bộ nghiệp vụ và các cán bộ tin học Nhóm này có trách nhiệm đặt ramục tiêu của dự án rõ ràng và cụ thể, lên kế hoạch và điều hành việc triển khai dựán
- Xác định, đặt bài toán: Trước khi lựa chọn các đối tác phải xác định thật rõ
bài toán Không nên chỉ nêu ra những yêu cầu chung chung mà phải chỉ rõ ra nhữngyêu cầu cụ thể, xác định các bài toán ưu tiên Để tiết kiệm thời gian làm việc với cácđối tác, phải thu thập trước các thông tin liên quan đến quy trình nghiệp vụ, các mẫu
Trang 29báo cáo, các thông tin đầu vào, các bước xử lý số liệu, các mối liên hệ, trao đổi sốliệu giữa các phòng ban, trình độ nghiệp vụ và trình độ tin học của người sử dụng,
hạ tầng cơ sở phần cứng, mô tả hệ thống phần mềm hiện tại Ngoài ra, khôngnhững chỉ ra các bài toán hiện tại mà còn phải đặt ra các yêu cầu trong tương lai
- Tìm kiếm và lựa chọn đối tác: Sự thành công của dự án phụ thuộc rất
nhiều vào đối tác Không nên quá chú trọng vào vấn đề giá rẻ hay là sự quen biết,
mà phải lựa chọn được đối tác tốt Về sản phẩm phải dựa vào yêu cầu đặt ra xemsản phẩm có đáp ứng được không Xem xét sản phẩm về các khía cạnh: đáp ứngnghiệp vụ, dễ sử dụng, khả năng mở rộng Trong trường hợp cần thiết có thể mờicác đối tác khảo sát chi tiết bài toán để nắm rõ hơn các yêu cầu Lưu ý là trongtrường hợp sản phẩm không đáp ứng được tất cả các yêu cầu đặt ra thì có thể xemxét mức độ thỏa mãn theo mức độ ưu tiên của các bài toán Về kinh nghiệm của cácđối tác nên xem xét các vấn đề: số lượng khách hàng đã sử dụng sản phẩm, cáckhách hàng trong lĩnh vực sản xuất kinh doanh tương tự Có thể gọi điện hoặc đếnthăm một số khách hàng để hỏi về sản phẩm, dịch vụ Về tính chuyên nghiệp củađối tác có thể xem xét các vấn đề: tài liệu giới thiệu sản phẩm, tài liệu đào tạo, nhânviên trình bày; trụ sở
- Khảo sát và phân tích chi tiết bài toán: Đối với các bài toán lớn, các yêu
cầu phức tạp thì cần phải có những khảo sát và phân tích chi tiết bài toán từ phía đốitác Qua bước khảo sát và phân tích này sẽ xác định xem chương trình đáp ứngđược các yêu cầu nào, cần phải sửa đổi hoặc làm thêm những phần nào Trong một
số trường hợp nên có những thay đổi nhất định trong quy trình, đặc biệt là đối vớicác trường hợp ít xảy ra; một số công đoạn có thể xử lý, tính toán bên ngoài trênExcel Lưu ý là không nên quá cứng nhắc trong việc bắt buộc chương trình phảitheo đúng quy trình nghiệp vụ hiện có hoặc phải sửa đổi chương trình để giống nhưchương trình đang sử dụng trong các thao tác, các tiện ích Khi phải sửa đổi quánhiều để đáp ứng các tất cả các trường hợp, các yêu cầu thì thông thường chươngtrình hay mắc lỗi và rất khó nâng cấp và phát triển sau này Đây là điều đặc biệt nênlưu ý
- Đào tạo: Việc đào tạo phải được chú trọng và cân đào tạo một cách bài bản
để có thể khai thác tối đa chức năng của phần mềm hệ thống
Trang 30- Thiết lập ban đầu cho hệ thống: Dựa vào yêu cầu, dựa vào hiểu biết về sản
phẩm phải cân nhắc thật kỹ các thiết lập ban đầu cho hệ thống Đây là một việc cực
kỳ quan trọng, ảnh hưởng rất nhiều đến việc sử dụng sau này Các thiết lập ban đầunày bao gồm xây dựng các hệ thống các danh mục, khai báo các tham số, quy định
về quy trình cập nhật và xử lý chứng từ, số liệu Lưu ý là có thể phải có nhữngthay đổi nhất định, ví dụ như việc thiết lập hệ thống tài khoản, tiểu khoản, cách tổchức để quản lý các vụ việc, công trình, sản phẩm…
- Nâng cấp, phát triển mở rộng: Theo sự phát triển và thay đổi của doanh
nghiệp sẽ có những sửa đổi và phát triển sản phẩm đang sử dụng Cần phải cân nhắcviệc sửa đổi và phát triển mở rộng sản phẩm hiện đang sử dụng hay là nâng cấp lênsản phẩm mới (kèm theo các sửa đổi và phát triển mở rộng theo yêu cầu đặc thù)
1.3 Tổng quan tình hình nghiên cứu
1.3.1 Tình hình nghiên cứu trong nước
Trên thực tế, đã có rất nhiều các tài liệu, công trình nghiên cứu, sinh viên lựa chọn các mảng đề tài liên quan đến HTTT hỗ trợ quy trình kiểm thử để nghiên cứu,làm đề tài khóa luận cũng như các ứng dụng đã triển khai vào thực tế Sau đây là một số đề tài mà tôi đã có cơ hội tham khảo:
- Đề tài thứ nhất là luận văn thạc sĩ “Xây dựng công cụ hỗ trợ sinh ca kiểm thử
cặp” của Nguyễn Thị Tự - Khoa công nghệ thông tin- Trường Đại học Quốc Gia
Hà Nội Đề tài đi sâu vào xây dựng công cụ hỗ trợ sinh ca kiểm thử cặp, nhưng khi được sử dụng thực tế thì vẫn còn một số hạn chế nhất định như là thời gian xử lý, thiếu nhiều thành phần để có thể đáp ứng được nhu cầu người dùng
- Đề tài thứ hai là luận văn “Tìm hiểu về kiểm thử phần mềm và xây dựng hệ
thống hỗ trợ quản lý tiến trình kiểm thử” của nhóm sinh viên Vũ Ngọc Sen-
Nguyễn Thị Quyên- Khoa công nghệ thông tin- Trường Đại học Khoa hoc Tự nhiên
TP HCM Đề tài hướng đến tìm hiểu quy trình kiểm thử và xây dựng hệ thống hỗ trợ quản lý tiến trình bao gồm quản lý các trường hợp kiểm thử, các bản báo cáo kiểm thử, các lỗi…
- Đề tài cuối cùng là luận văn thạc sĩ “Xây dựng hệ thống hỗ trợ quản lý quy
trình kiểm thử các dự án phần mềm” của Lê Thị Như Thủy- khoa Công nghệ thông
Trang 31tin- Trường Đại học Đà Nẵng Khác với hai đề tài trước, luận văn này được thực hiện với mục đích xây dựng chương trình quản lý quy trình kiểm thử một cách tập trung Chương trình hỗ trợ kiểm soát hệ thống trong quá trình kiểm thử, giám sát các lỗi Phạm vi sử dụng của hệ thống này vẫn còn hạn chế, chưa thể sử dụng với quy mô rộng.
Hiện nay, hầu hết các công ty phần mềm đều sử dụng hệ thống hỗ trợ quytrình kiểm thử Tùy vào cách thức hoạt động của mỗi công ty mà sử dụng hệ thống
hỗ trợ quy trình kiểm thử Chính vì vậy, các đề tài nghiên cứu về vấn đề này rất đadạng
1.3.2 Tình hình nghiên cứu trên thế giới
Hiện nay trên thế giới có rất nhiều công trình nghiên cứu xây dựng các hệ thống hỗ trợ quy trình kiểm thử Có rất nhiều phần mềm mã nguồn mở và đang được các công ty phần mềm tại Việt Nam đưa vào sử dụng Các phần mềm hỗ trợ quy trình kiểm thử bao gồm: hỗ trợ quản lý testcase, quản lý các yêu cầu, kế hoạch test, thực thi test, quản lý các dự án, quản lý các bug… Một số phần mềm hỗ trợ quản lý lỗi như mantis bug tracker, jira, redmine…Ngoài ra còn có phần mềm hỗ trợ như testlink giúp quản lý testcase và thực thi test
Trang 33CHƯƠNG 2: PHÂN TÍCH, ĐÁNH GIÁ THỰC TRẠNG QUẢN LÝ BUG TRONG QUY TRÌNH KIỂM THỬ TẠI CÔNG TY CỔ PHẦN
TRUYỀN THÔNG VÀ DỊCH VỤ NO DO2.1 Tổng quan về công ty
2.1.1 Giới thiệu chung về doanh nghiệp
- Tên công ty: Công ty cổ phần truyền thông và dịch vụ NoDo.
- Địa chỉ: Số nhà 12 ngách 24/99, đường Kim Đồng, phường Thịnh Liệt, quận
Hoàng Mai, Hà Nội
- Văn phòng đại diện: Phòng 1501, VNTower, 19 Nguyễn Trãi, Thanh Xuân, Hà
- Loại hình doanh nghiệp: Công ty cổ phần truyền thông và dịch vụ NoDo là một
công ty phần mềm cung cấp các giải pháp, thiết bị và triển khai dự án cho doanhnghiệp.Được thành lập bởi 5 chuyên gia hàng đầu trong lĩnh vực công nghệ thông tin.NoDo đã có 6 năm kinh nghiệm hoạt động chuyên sâu trong lĩnh vực công nghệ thôngtin
2.1.2 Quá trình hình thành và phát triển
Năm 2010 công ty được thành lập với tên là Công ty cổ phần và truyền thông Sắc Việt Khi đó công ty hoạt động trong mảng game là chủ yếu Sau đó, vào năm
2013 công ty đổi tên thành Công ty cổ phần truyền thông và dịch vụ NoDo NoDo
xác định luôn trung thành với giá trị cốt lỗi của mình “Nghiên cứu và phát triểncông nghệ” NoDo mang hoài bão và sứ mệnh giúp khách hàng tiết kiệm nguồn lực
Trang 34thành lập đến nay, công ty giữ vững niềm tin đó và ngày càng đi lên phát triển.
Trang 35Năm 2013, NoDo bắt đầu với 20 nhân viên và chủ yếu làm về mảng game.Cho đến nay số lượng nhân viên đã tăng lên gấp đôi Các lĩnh vực được mở rộng,không chỉ game mà NoDo còn tham gia nhiều các dự án cho doanh nghiệp, thiết kếweb, cung cấp các giải pháp, dịch vụ cho doanh nghiệp…
2.1.3 Cơ cấu tổ chức và cơ cấu nhân lực
2.1.3.1 Cơ cấu tổ chức
- Số lượng nhân sự: 45 người
- Kỹ sư lập trình: 18 người
- Kinh doanh: 2 người
- Quảng cáo & Marketing: 5 người
- SEO : 6 người
- Kiểm thử: 4 người
- Tài chính & nhân sự: 3 người
- Chứng chỉ công nghệ quốc tế: 4 người
- Công ty cổ phần truyền thông và dịch vụ NoDo là một công ty hoạt động
trong lĩnh vực công nghệ thông tin Vậy nên, nguồn nhân lực của công ty chủ yếu làđội ngũ chuyên môn cao trong lĩnh vực công nghệ thông tin Các nhân viên chủ yếu
từ các trường đại học Bách Khoa Hà Nội, trường Aptech…
- Nhân viên kỹ thuật trong công ty sẽ phụ trách về an toàn, bảo mật thông tin
- Trình độ ngoại ngữ: 100% nhân viên đạt TOEC > 600
- 100% nhân viên đều biết sử dụng máy tính
Sơ đồ tổ chức của công ty
Trang 36Hình II 10: Bộ máy tổ chức Công ty cổ phần truyền thông và dịch vụ NoDo 2.1.3.2 Chức năng nhiệm vụ của các bộ phận
- Bộ phận kế toán: cung cấp thông tin tài chính, hợp đồng các dự án , chi trả
lương nhân viên, các giấy tờ pháp lý…
- Bộ phận marketing: Tìm kiếm khách hàng tiềm năng.
- Bộ phận lập trình: Thực hiện lập trình các dự án theo yêu cầu.
- Bộ phận kiểm thử: Kết hợp với bộ phận lập trình kiểm thử phần mềm dự án
nhằm đạt hiệu quả tối ưu
- Bộ phận thị trường: Thu thập thông tin thị trường công nghệ để xác định thị
trường mục tiêu, tìm hiểu thông tin liên quan đến dự án nhằm hỗ trợ các bộ phậnkhác, tìm hiểu các công nghệ mới hiệu quả nhằm rút ngắn thời gian làm dự án
- Bộ phận phân tích thiết kế: Phân tích thiết kế yêu cầu của khách hàng gửi
cho bộ phận lập trình
- Bộ phận phát hành game.
- Bộ phận tư vấn và chăm sóc khách hàng: Thực hiện tư vấn các giải pháp
cho khách hàng khi có sự cố trong phần mềm, bảo trì phần mềm
2.1.4 Lĩnh vực hoạt động
Cung cấp các giải pháp
- Giải pháp viễn thông: Nodo đã xây dựng và triển khai thành công các giải
pháp viễn thông như: Customer Care - Hệ thống Cổng chăm sóc khách
Trang 37hàng, Charging Proxy(Payment) - Hệ thống Cổng thanh toán cước GTGT, Postpaid - Hệ thống tính cước và quản lý khách hàng (trả trước - trả sau), Vas Provisioning - Cổng quản lý gói và đăng ký dịch vụ GTGT, Interconnect - Hệ thống kiểm soát chống thất thoát cước cho hệ thống viễn thông, Giải pháp sổ liên lạc điện tử giúp giao tiếp dễ dàng, thuận tiện.
Tiết kiệm thời gian và chi phí
- Tài chính ngân hàng: Nodo cũng hợp tác chiến lược với các hãng công
nghệ lớn trên thế giới để triển khai giải pháp toàn diện như:
Core Banking: Oracle với hệ thống phầm mềm lõi Oracle Flexcube CoreBanking (FCC) và Temenos từ Thụy Sĩ với hệ thống phầm mềm lõi T24
Credit core: Hệ thống chấm điểm tín dụng
Giải pháp ngân hàng điện tử: Nodo sẽ giúp khách hàng cá nhân/doanh nghiệp
có tài khoản mở tại Ngân hàng giao dịch qua kênh Internet Banking hoặc ứng dụngMobile Banking, bao gồm nhưng không giới hạn các chức năng như: Vấn tin tàikhoản, Vấn tin lịch sử giao dịch, Chuyển khoản, Thanh toán hóa đơn, Trả nợ vay,Gửi tiết kiệm trực tuyến và Nhận tiền kiều hối…
- Giải pháp quản trị doanh nghiệp (ERP): Nodo cung cấp Giải pháp Phần mềm Quản lý toàn diện & Hoạch định Nguồn lực Doanh nghiệp hợp nhất, được
phát triển dựa trên nền tảng Odoo (tên cũ là OpenERP), triển khai với các côngnghệ điện toán đám mây, nhằm cung cấp cho Doanh nghiệp và các Tổ chức sảnxuất, kinh doanh một giải pháp phần mềm quản lý toàn diện với các tính năng mạnh
mẽ, hoàn chỉnh, linh hoạt, an toàn, ổn định và bảo mật
- Thương mại điện tử: Nodo cung cấp đầy đủ các giải pháp nền tảngnhư:Doanh nghiệp với Doanh nghiệp (B2B), Doanh nghiệp với Khách hàng (B2C),Doanh nghiệp với Nhân viên (B2E), Doanh nghiệp với Chính phủ (B2G), Chínhphủ với Doanh nghiệp (G2B), Chính phủ với Chính phủ (G2G), Chính phủ vớiCông dân (G2C), Khách hàng với Khách hàng (C2C), Khách hàng với Doanhnghiệp (C2B), Sàn thương mại điện tử (B2B2C)
- Thanh toán trực tuyến: Giải pháp Payment Gateway từ Nodo là hệ thống
phần mềm tập trung, trao đổi và xử lý các giao dịch thanh toán giữa người tiêu dùng
Trang 38hoá, dịch vụ trên Internet Nghiệp vụ chính của cổng thanh toán trực tuyến màNoDo mang đến: Giao dịch thanh toán trên ATM, Giao dịch thanh toán điện tử tạiquầy giao dịch Ngân hàng, nghiệp vụ xử lý bảng tin và nghiệp vụ báo cáo
Cung cấp các dịch vụ
- Thiết kế website:
Website giới thiệu và quảng bá doanh nghiệp
Website giới thiệu và trưng bày sản phẩm, dịch vụ
Website bán hàng trực tuyến, thương mại điện tử
- NoDo ERP online: Cung cấp đến 40 phân hệ hỗ trợ doanh nghiệp như: kế
toán Quản lý kho, bán hàng…
- Dịch vụ khác: Cung cấp dịch vụ tên miền,dịch vụ hosting,VPS, mail server.
- Gia công phần mềm: Công ty nhận các dự án phần mềm theo yêu cầu khách
hàng
- Phát hành web game online
2.1.5 Kết quả hoạt động kinh doanh
Đơn vị tính: VNĐ
Trang 393 Chi phí thuế thu nhập
doanh nghiệp
132.058.327 154.027.870 187.059.013
Bảng 1: Kết quả hoạt động kinh doanh
(Nguồn: Báo cáo thường niên của công ty Công ty cổ phần truyền thông và
dịch vụ NoDo năm 2015)
Có thể thấy, lợi nhuận năm 2014 đạt 116,64 % so với năm 2013, tăng 16,64
% Lợi nhuận năm 2015 đạt 121,45 % so với năm 2014, tăng 21,45 % và đạt141,65% tăng 41,65 % so với năm 2013
2.2 Thực trạng vấn đề quản lý bug trong quy trình kiểm thử tại công ty
2.2.1 Các khâu trong quy trình kiểm thử
Phân tích yêu cầu, thiết kế
Khi công ty nhận dự án mới từ khách hàng, phía khách hàng sẽ gửi một số tàiliệu yêu cầu của dự án Đội kiểm thử tiến hành xác định rõ yêu cầu của khách hàngthông qua tài liệu đặc tả và khảo sát trực tiếp khách hàng Việc khảo sát khách hàng
có thể xuyên suốt dự án, bởi có những dự án mà khách hàng cũng không nắm đượchết chức năng hệ thống cần có mà chỉ nắm được yêu cầu một cách tổng thể; chỉ khiđược xây dựng lên thì khách hàng mới có những yêu cầu cụ thể hơn Chính vì vậy,việc phân tích yêu cầu và thiết kế sẽ chỉ đáp ứng sơ bộ so với hệ thống hoàn thiệncuối cùng
Trang 40Lập kế hoạch kiểm thử
Khi đã nắm được nghiệp vụ, bộ phận kiểm thử sẽ lập kế hoạch kiểm thử.Việc lập kế hoạch nhằm xác định rõ các chức năng cần kiểm thử, dữ liệu kiểm thử,người thực hiện kiểm thử… để đảm bảo chất lượng kiểm thử Việc lập kế hoạchkiểm thử ở công ty do trưởng bộ phận kiểm thử thực hiện Trưởng bộ phận sẽ nắm
rõ được tình hình dự án và tiến độ dự án thông qua bản kế hoạch
Trình bày kiểm thử
Khi đã hoàn thiện bản kế hoạch kiểm thử thì nhân viên kiểm thử sẽ thực hiệntheo bản kế hoạch Nhân viên sẽ trình bày chi tiết các testcase theo như bản kếhoạch phân công và đề ra Các case kiểm thử phải đảm bảo đủ và bao quát được hếttất cả các trường hợp kiểm thử cần phải có Trong trường hợp trình bày testcase bịthiếu, dẫn đến hệ thống vẫn còn sai sót thì nhân viên sẽ chịu trách nhiệm cho phầnđược giao
Thực thi kiểm thử
Kiểm thử trong giai đoạn đặc tả yêu cầu: Trong giai đoạn này, nhân viên
kiểm thử sẽ tiến hành kiểm tra về cấu hình, phần cứng, hệ điều hành có phù hợp vớiphần mềm cần kiểm thử và kiểm tra các thuộc tính có đầy đủ so với bản đặc tảkhông; kiểm tra xem bản yêu cầu có thể thực hiện được không? Sau khi kiểm traxong, nhân viên sẽ báo cáo kết quả với trưởng bộ phận Sau khi xác minh vấn đề,trưởng bộ phận sẽ tiến hành gặp và trao đổi với phía khách hàng để có những điềuchỉnh sao cho phù hợp
Kiểm thử trong giai đoạn thiết kế: Sau khi bản đặc tả đã chuẩn, bộ phận
thiết kế tiến hành thiết kế Phần thiết kế nào được hoàn thành sẽ gửi cho bộ phậnkiểm thử Nhân viên kiểm thử tiến hành kiểm tra thiết kế có đúng với bản đặc tả yêu