LỜI CẢM ƠNSau một thời gian nghiên cứu và hoàn thiện khóa luận tốt nghiệp với đề tài “Nghiên cứu một số kỹ thuật kiểm thử phần mềm áp dụng kiểm thử cho website http://hoctestertop.com/ c
Trang 1LỜI CẢM ƠN
Sau một thời gian nghiên cứu và hoàn thiện khóa luận tốt nghiệp với đề tài
“Nghiên cứu một số kỹ thuật kiểm thử phần mềm áp dụng kiểm thử cho website http://hoctestertop.com/ của Công ty TNHH Giải pháp phần mềm Gia Linh” ngoài
sự cố gắng của bản thân, em còn nhận được rất nhiều sự giúp đỡ tận tâm từ phía nhàtrường, thầy cô, cùng ban lãnh đạo và các nhân viên trong Công ty TNHH Giải phápphần mềm Gia Linh
Lời đầu tiên, em xin gửi lời cảm ơn đến các thầy cô giáo trường Đại học ThươngMại nói chung và các thầy cô giáo trong khoa Hệ thống thông tin kinh tế nói riêng đãtạo điều kiện cho em được học tập, nghiên cứu Em cũng xin gửi lời cảm ơn chân
thành đến giáo viên hướng dẫn Th.S Nguyễn Quang Trung đã trực tiếp hướng dẫn
nhiệt tình, chỉ bảo cho em trong suốt thời gian thực hiện đề tài khóa luận tốt nghiệp để
em có thể hoàn thành một cách tốt nhất
Em xin gửi lòng biết ơn sâu sắc tới ban lãnh đạo Công ty TNHH Giải pháp phầnmềm Gia Linh cùng toàn thể các anh chị trong công ty đã tạo điều kiện cho em đượctìm hiểu, nghiên cứu về thực trạng công ty trong suốt quá trình thực tập
Mặc dù đã cố gắng hoàn thành bài khóa luận với tất cả sự nỗ lực của bản thân,nhưng sự hạn chế về kiến thức và thời gian nên khóa luận không tránh khỏi nhữngthiếu sót Em kính mong quý thầy cô chỉ bảo và giúp đỡ để bài khóa luận được hoànthiện hơn
Cuối cùng, em xin gửi tới quý thầy cô lời chúc sức khỏe, chúc thầy cô luôn luônmạnh khỏe, vui vẻ để tiếp tục cống hiến và giúp đỡ các thế hệ sinh viên tiếp theo
Em xin chân thành cảm ơn!
Hà Nội, ngày 24 tháng 04 năm 2018
Sinh viên thực hiện
Nguyễn Thị Thư
Trang 2MỤC LỤC
LỜI CẢM ƠN i
DANH MỤC BẢNG iv
DANH MỤC BIỂU ĐỒ iv
DANH MỤC HÌNH iv
DANH MỤC TỪ VIẾT TẮT v
PHẦN MỞ ĐẦU 1
1 Tầm quan trọng, ý nghĩa của vấn đề nghiên cứu 1
2 Mục tiêu và nhiệm vụ nghiên cứu 2
3 Đối tượng và phạm vi nghiên cứu 3
CHƯƠNG 1 CƠ SỞ LÝ LUẬN CỦA VẤN ĐỀ NGHIÊN CỨU 6
1.1 Những khái niệm cơ bản 6
1.1.1 Phần mềm 6
1.1.2 Vòng đời phần mềm 6
1.1.3 Kiểm thử phần mềm 6
1.1.4 Một số khái niệm liên quan 7
1.2 Một số lý thuyết về vấn đề nghiên cứu 7
1.2.1 Mục tiêu của kiểm thử phần mềm 7
1.2.2 Nguyên tắc cơ bản của Kiểm thử phần mềm 8
1.2.3 Quy trình kiểm thử phần mềm 9
1.2.4 Các kỹ thuật Kiểm thử phần mềm 10
1.2.5 Các giai đoạn Kiểm thử phần mềm 11
1.3 Tình hình nghiên cứu 15
1.3.1 Tình hình nghiên cứu trong nước 15
1.3.2 Tình hình nghiên cứu thế giới 16
CHƯƠNG 2 TÌNH HÌNH THỰC TIỄN HOẠT ĐỘNG KIỂM THỬ PHẦN MỀM TẠI CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM GIA LINH 18
2.1 Tổng quan về Công ty TNHH Giải pháp phần mềm Gia Linh 18
2.1.1 Thông tin cơ bản 18
2.1.2 Lịch sử hình thành và phát triển 18
2.1.3 Lĩnh vực kinh doanh 19
Trang 32.1.4 Cơ cấu tổ chức 19
2.1.5 Hạ tầng cơ sở vật chất, trang thiết bị tại công ty 20
2.1.6 Tình hình hoạt động kinh doanh của doanh nghiệp từ năm 2015-2017 21
2.2 Phân tính thực trạng hoạt động Kiểm thử phần mềm tại công ty 22
2.3 Đánh giá tình hình hoạt động Kiểm thử phần mềm tại công ty 25
2.3.1 Ưu điểm: 25
2.3.2 Nhược điểm: 25
CHƯƠNG 3 ĐỊNH HƯỚNG PHÁT TRIỂN VÀ ỨNG DỤNG MỘT SỐ KỸ THUẬT KIỂM THỬ PHẦN MỀM CHO WEBSITE http://hoctestertop.com/ CỦA CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM GIA LINH 28
3.1 Định hướng phát triển 28
3.1.1 Định hướng chung 28
3.1.2 Định hướng của công ty 29
3.2 Ứng dụng một số kỹ thuật kiểm phần mềm cho website http://hoctestertop.com/ của công ty TNHH Giải pháp phần mềm Gia Linh 29
3.2.1 Giới thiệu về website 29
3.2.3 Thực hiện viết testcase các trường hợp kiểm thử website 36
3.2.4 Đánh giá tính ứng dụng và hiệu quả của việc vận dụng các phương pháp và kỹ thuật kiểm thử từ thực tế 45
3.2.5 Đề xuất hướng phát triển 45
3.3 Một số kiến nghị và đề xuất vận dụng, triển khai ứng dụng các kỹ thuật kiểm thử phần mềm tại công ty 46
KẾT LUẬN 47 TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 4DANH MỤC BẢNG
Bảng 1.1 Kiểm thử giao diện
Bảng 1.2 Kiểm thử luồng nghiệp vụ
Bảng 1.3 Kiểm thử hồi qui
Bảng 2.1 Thống kê sơ bộ về trang thiết bị
Bảng 2.2 Thống kê kết quả kinh doanh công ty giai đoạn 2015-2017
( Đơn vị: VNĐ)Bảng 3.1 Đặc tả yêu cầu chức năng Đăng ký
Bảng 3.2 Đặc tả yêu cầu chức năng Tìm kiếm
Bảng 3.3 Tab Thông tin sản phẩm
Bảng 3.4 Tab Nội dung chi tiết
DANH MỤC BIỂU ĐỒ
Biểu đồ 2.1 Thống kê số lỗi phần mềm
Biểu đồ 2.2 Số lượng nhân viên phòng kỹ thuật
Biểu đồ 2.3 Nguyên nhân làm chậm tiến độ dự án
Biểu đồ 2.4 Nhu cầu xây dựng hệ thống kỹ thuật kiểm thử
DANH MỤC HÌNH
Hình 1.1 Qui trình kiểm thử phần mềm
Hình 1.2 Các giai đoạn kiểm thử phần mềm
Hình 2.1 Sơ đồ cơ cấu bộ máy tổ chức Công ty TNHH Giải pháp phần mềm
Gia LinhHình 3.1 Giao diện Front end của website http://hoctestertop.com/
Hình 3.2 Giao diện Back end của website http://hoctestertop.com/
Hình 3.3 Màn hình chức năng Đăng ký
Hình 3.4 Màn hình chức năng Tìm kiếm
Hình 3.5 Màn hình chức năng Mua sắm
Hình 3.6 Màn hình chức năng button Đặt mua
Hình 3.7 Màn hình chức năng button Tên sản phẩm
Hình 3.8 Màn hình chức năng button Mua ngay
Hình 3.9 Màn hình Tab Thông tin sản phẩm
Hình 3.10 Màn hình Tab Nội dung chi tiết
DANH MỤC TỪ VIẾT TẮT
Trang 5TỪ VIẾT TẮT NGHĨA TIẾNG VIỆT
IEEE Institute of Electrical and
Trang 6PHẦN MỞ ĐẦU
1 Tầm quan trọng, ý nghĩa của vấn đề nghiên cứu
Những năm gần đây, sự phát triển vượt bậc của khoa học kỹ thuật nói chung vàngành công nghệ thông tin nói riêng đã và đang tạo ra những bước phát triển tích cực,mạnh mẽ trên nhiều phương diện Cùng với đó là sự gia tăng nhanh chóng cả về quy
mô lẫn chất lượng của các doanh nghiệp hoạt động trong lĩnh vực liên quan đến phầnmềm, như: lập trình, thiết kế website, triển khai ứng dụng phần mềm tại doanhnghiệp, Thực tế hiện nay cho thấy sự tấn công ồ ạt và đầu tư mạnh mẽ của các công
ty nước ngoài vào thị trường Việt Nam về lĩnh vực này là rất lớn, chứng tỏ tiềm năng
và triển vọng phát triển lâu dài…
Vấn đề đặt ra bên cạnh việc sản xuất những phần mềm đáp ứng kịp thời nhu cầucủa khách hàng và đi trước trong việc thiết kế ra những sản phẩm mới có tính ứngdụng cao là việc đảm bảo về chất lượng: không có lỗi phát sinh trong quá trình sửdụng, thân thiện với người dùng, có hướng dẫn cụ thể, cung cấp đầy đủ các tính năngcần thiết phù hợp với từng loại doanh nghiệp, từng yêu cầu của khách hàng Bên cạnh
đó là việc tiếp nhận những bổ sung, góp ý và đề xuất được những tính năng mới, hỗtrợ cho các hoạt động thực tiễn của doanh nghiệp Chắc chắn không có sự đảm bảorằng lập trình viên luôn cho ra những sản phẩm không còn lỗi và kiểm thử chính làcông việc đảm bảo phần mềm hoạt động không còn sai sót, ngăn chặn các lỗi tiềm tàng
có thể phát sinh, hỗ trợ tối đa nhất cho quá trình hoàn thiện một sản phẩm trước khiđến tay khách hàng Kiểm thử viên đóng vai trò như người dùng thực thụ sẽ cung cấpnhững cái nhìn khách quan nhất về tính ứng dụng và tương thích của phần mềm đó.Trong những năm trở lại đây, kiểm thử phần mềm thực sự đã trở thành một trongnhững ngành nghề triển vọng, tiềm năng và quan trọng không thể thiếu - đặc biệt đốivới các công ty hoạt động trong lĩnh vực sản xuất phần mềm
Trong thời gian hơn một tháng thực tập và có những trải nghiệm thực tế trên vaitrò kiểm thử viên tại Công ty TNHH Giải pháp phần mềm Gia Linh, bản thân em đãđược học hỏi và nhận thức được tầm quan trọng thực sự của công việc kiểm thử phầnmềm Công ty được thành lập từ năm 2011 với ngành nghề chính là lập trình máy vitính, xây dựng các sản phẩm phần mềm và cung cấp các giải pháp công nghệ thông tincho các doanh nghiệp trong và ngoài nước Hiện tại thì doanh nghiệp còn phát triển và
Trang 7mở rộng dịch vụ thương mại điện tử - sản phẩm chính là các website phục vụ chonhiều đối tượng khách hàng Công tác kiểm thử đóng vai trò đặc biệt quan trọng tronghoạt động của công ty Mặc dù đã thành lập được hơn 6 năm, tuy nhiên số lượng nhânviên mới dừng lại ở con số 45 và chưa thực sự được nhiều người biết đến Trước đâylập trình viên trực tiếp tạo ra các sản phẩm, đồng thời cũng đóng vai trò người dùng sửdụng chính sản phầm do mình tạo ra Chính vì vậy mà kết quả mang tính chủ quan,không phát hiện được nhiều lỗi, sản phẩm tạo ra theo đúng yêu cầu nhưng tính ứngdụng thực tế trên vai trò khách hàng sử dụng trực tiếp lại không cao, không đề xuấtđược những tính năng mới, quá trình sửa lỗi thường kéo dài do thời gian chờ phản hồi
từ phía khách hàng lâu
Hơn một năm trở lại đây, do sự mở rộng về quy mô cũng như lĩnh vực sản xuất,
để đảm bảo đáp ứng đủ và đúng tiến độ, công ty đã đẩy mạnh công tác tuyển số lượnglớn thực tập sinh Kiểm thử phần mềm, nhằm đào tạo cũng như khai thác các tiềm năngkiểm thử tương lai có thể gắn bó lâu dài cùng công ty - bằng chứng là vào cuối năm
2017, công ty đã tuyển số lượng lớn sinh viên thực tập về lĩnh vực này Tuy nhiên để
có thể rút ngắn thời gian đào tạo mà hiệu quả mang lại là cao nhất, thiết nghĩ việc đàotạo cần có sự đầu tư và bài bản Bên cạnh kinh nghiệm thực tế của những người lâunăm chỉ dạy, việc xây dựng một hệ thống các kỹ thuật kiểm thử và áp dụng trực tiếpvào kiểm thử chính sản phẩm do công ty tạo ra là một cách rút gọn thời gian đào tạonhưng hiệu quả mang lại là cao nhất Kiểm thử thủ công là tiền đề quan trọng, hỗ trợcho việc nghiên cứu và ứng dụng các công cụ, kỹ thuật kiểm thử tự động sau này tạicông ty Mặc dù đã có rất nhiều bài nghiên cứu và tài liệu về vấn đề này, tuy nhiên để
có thể hệ thống và áp dụng thực tế tại công ty thì chưa có
Nhận thức được tầm quan trọng của vấn đề này, em xin đề xuất đề tài: “Nghiên cứu một số kỹ thuật Kiểm thử phần mềm áp dụng kiểm thử cho website
http://hoctestertop.com/ của Công ty TNHH Giải pháp phần mềm Gia Linh”.
2 Mục tiêu và nhiệm vụ nghiên cứu
2.1 Mục tiêu
Nội dung của bài khóa luận tập trung vào việc nghiên cứu các kỹ thuật kiểm thửphần mềm hiện nay Và dựa trên những kiến thức về kỹ thuật kiểm thử, vận dụng đểkiểm thử chính sản phẩm phần mềm là một website bán hàng do công ty thiết kế
Trang 92.2 Nhiệm vụ
Bài nghiên cứu phải làm rõ được các vấn đề sau:
- Tổng kết được những lý thuyết và các khái niệm liên quan đến phần mềm vàkiểm thử phần mềm
- Tổng kết được những kỹ thuật kiểm thử phần mềm, đánh giá được ưu-nhượcđiểm của từng kỹ thuật
- Đánh giá được thực trạng vấn đề kiểm thử phần mềm tại công ty
- Xây dựng testcase để kiểm thử sản phẩm phần mềm của công ty Từ đó đánhgiá được ưu-nhược điểm và tính hiệu quả khi áp dụng của các phương pháp
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng
- Các vấn đề liên quan đến Kiểm thử phần mềm
- Các Kỹ thuật kiểm thử phần mềm hiện nay
3.2 Phạm vi
- Về không gian: Nghiên cứu các vấn đề về Kiểm thử phần mềm và áp dụng
vào kiểm thử website tại công ty TNHH Giải pháp phần mềm Gia Linh
- Về thời gian: Đề tài sử dụng các số liệu về tình hình hoạt động kinh doanh
của công ty giai đoạn 2015-2017; Các số liệu liên quan khác(cơ sở hạ tầng CNTT, cơcấu nguồn nhân sự) tính đến cuối năm 2017
Giới hạn đề tài nghiên cứu: Vận dụng kỹ thuật kiểm hộp đen để thực hiện viết testcase cho sản phẩm phần mềm của công ty, đó là website http://hoctestertop.com/ -
GREEN CONSTRUCTION - Website chuyên cung cấp các dịch vụ và nội thất vănphòng
4 Phương pháp nghiên cứu
4.1 Phương pháp thu thập dữ liệu
Dữ liệu thứ cấp:
Trang 10- Bên trong doanh nghiệp: Đây là nguồn thông tin hữu ích và có tính tin cậy,
chính xác cao, gồm:
+ Báo cáo kết quả kinh doanh công ty giai đoạn 2015-2017
+ Kết cấu nhân sự tại công ty
+ Thống kê sơ bộ trang thiết bị, hạ tầng CNTT
- Bên ngoài doanh nghiệp: Đây là nguồn thông tin đa dạng và dễ tìm:
+ Một số tài liệu nghiên cứu về vấn đề liên quan những năm trước
+ Các thông tin thu thập được qua mạng internet,
Dữ liệu sơ cấp: Nguồn dữ liệu thu được bằng nhiều nguồn khác nhau:
- Phỏng vấn trực tiếp:
+ Đối tượng phỏng vấn: nhân viên công ty
+ Mục đích: Nhằm tìm kiếm thông tin sơ cấp chính xác và cụ thể nhất Phươngpháp này giúp tìm hiểu sâu và khai thác được tối đa những thông tin liên quan đến hoạtđộng thực tế tại công ty
+ Nội dung phỏng vấn: Tập trung hỏi về các vấn đề như:
Về các phần mềm mà công ty sử dụng trong quá trình lập trình và kiểm thử
Chuyên môn: Số lỗi mà lập trình viên gặp phải trong quá trình tạo ra sảnphẩm, phân loại lỗi,
Nhận xét về tình hình ứng dụng và thực tế sử dụng các trang thiết bị đã đápứng yêu cầu công việc và thực tế mong muốn chưa
Mỗi lần đầu tư nâng cấp trang thiết bị cũng như các phần mềm hỗ trơ côngviệc có dễ dàng sử dụng và được hỗ trợ không,…
- Quan sát thực tế: Phương pháp này cung cấp cái nhìn tổng quát về vấn đề
cần nghiên cứu một cách thực tế nhất: Quan sát cơ sở hạ tầng trang thiết bị, môitrường- văn hóa làm việc, thái độ làm việc của nhân viên,…
Trang 11- Phát phiếu điều tra: Sử dụng phiếu điều tra được thiết kế sẵn, có hệ thống
các câu hỏi gồm cả trắc nghiệm và câu hỏi mở
+ Đối tượng điều tra: Nhân viên công ty
+ Mục đích: Hệ thống hóa các câu hỏi phục vụ đề tài nghiên cứu, thuận tiện hơntrong quá trình lưu trữ và tổng hợp
+ Nội dung: Điều tra cụ thể về:
Số lượng trang thiết bị: máy tính bàn, máy laptop, máy chiếu, máy in,
Tên của các hệ điều hành, phần mềm đang được sử dụng tại công ty
Các vấn đề về CSDL, ATBM tại doanh nghiệp
Kết cấu nguồn nhân lực: số lượng mỗi phòng ban, trình độ,…
Lỗi, phân loại lỗi mà các lập trình viên gặp phải trong quá trình lập trình
Trang 124.2 Phương pháp xử lý dữ liệu
Khóa luận được thực hiện trên cơ sở vận dụng tổng hợp các phương pháp như :
phân tích, so sánh, thống kê, tổng hợp, kết hợp với một số phần mềm chuyên dụng hỗtrợ cho việc thống kê, xử lý số liệu
- Sử dụng phần mềm chuyên dụng Excel: Để tổng hợp dữ liệu đã được thu thập
bằng các phương pháp trên, sử dụng Excel để vẽ các biểu đồ phân tích có liên quandựa trên bảng số liệu được thống kê trước đó Cụ thể là thống kê về số lượng lỗi, biểu
đồ phân loại lỗi, biểu đồ đánh giá nhu cầu áp dụng kỹ thuật trong kiểm thử phần mềm
- Phương pháp So sánh - Đối chiếu: Bằng cách ghi chép lại thông tin từ điều
tra qua phiếu, qua quan sát thực tế và phỏng vấn trực tiếp để phục vụ cho việc tổnghợp, phân tích về sau, đồng thời đưa ra những đánh giá ban đầu về vấn đề điều tra tạicông ty
- Phương pháp Phân tích - Tổng hợp: Trên cơ sở các số liệu và thông tin thu
thập được, tiến hành tổng hợp và phân loại lại dựa trên những tiêu chí nhất định, từ đólàm cơ sở cho việc nhận định, phân tích và đánh giá
Kết cấu khóa luận:
Gồm 3 phần chính:
Chương 1: Cơ sở lý luận của vấn đề nghiên cứu
Chương 2: Tình hình thực tiễn hoạt động kiểm thử phần mềm tại công ty TNHHGiải pháp phần mềm Gia Linh
Chương 3 Định hướng phát triển và ứng dụng một số kỹ thuật kiểm thử phầnmềm cho website http://hoctestertop.com/ của công ty TNHH Giải pháp phần mềmGia Linh
Trang 13CHƯƠNG 1 CƠ SỞ LÝ LUẬN CỦA VẤN ĐỀ NGHIÊN CỨU
1.1 Những khái niệm cơ bản
1.1.1 Phần mềm
Định nghĩa theo chuẩn IEEE: Phần mềm là tập hợp các câu lệnh được viết
bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định nhằm tự động thựchiện một số chức năng nào đó giúp ích cho nghiệp vụ của các doanh nghiệp, công ty.Phần mềm gồm 3 thành phần:
Chương trình máy tính(mã nguồn, mã máy): Thành phần này giúp cho máy
tính thực thi các ứng dụng được yêu cầu
Cấu trúc dữ liệu: Dữ liệu bao gồm các biến, mã nguồn, danh sách tên thích
ứng phần mềm với yêu cầu xác định của khách hàng để vận hành phần mềm Cấu trúc
dữ liệu gồm cấu trúc làm việc(bộ nhớ trong), cấu trúc lưu trữ(bộ nhớ ngoài)
Các tài liệu liên quan: Tài liệu hướng dẫn sử dụng(dành cho người dùng), tài
liệu phát triển(dành cho người phát triển hệ thống), tài liệu tham khảo kỹ thuật(dànhcho người bảo trì)
1.1.2 Vòng đời phần mềm
- Là khoảng thời gian được tính từ khi phần mềm được đề xuất cho đến khi bỏ
đi, cụ thể là từ khi đặt hàng, phát triển, sử dụng cho đến khi bị loại bỏ
- Được phân chia thành các pha chính như: xác định yêu cầu, triển khai, kiểmthử, bảo trì(vận hành) Phạm vi, thứ tự các pha khác nhau tùy theo từng mô hình, dự án
cụ thể
1.1.3 Kiểm thử phần mềm
Định nghĩa của Myer(1979): "Kiểm thử là quá trình thực thi một chương trình
với mục đích tìm ra lỗi" Theo như định nghĩa này, quá trình kiểm thử bao gồm tất cảcác hoạt động từ kiểm tra mã nguồn được thực hiện bởi trưởng nhóm phát triển, đến
Trang 14việc chạy thử chương trình được tiến hành bởi các đồng nghiệp khác Tất cả các hoạtđộng trên đều được coi là các hoạt động kiểm thử.
Định nghĩa theo chuẩn IEEE(1990):
Định nghĩa 1: Kiểm thử phần mềm là quá trình vận hành một hệ thống hoặc một
thành phần của hệ thống với các điều kiện xác định, nhận xét và ghi lại các kết quả, tạo
ra đánh giá về những khía cạnh của hệ thống hay thành phần hệ thống
Định nghĩa 2: Kiểm thử phần mềm là quá trình phân tích các yếu tố phần mềm
để phát hiện những khác biệt giữa chương trình với các điều kiện yêu cầu và đánh giácác đặc điểm của các yếu tố phần mềm Theo như định nghĩa 2, việc chạy chươngtrình như một phần của tiến trình kiểm thử phần mềm là không cần thiết
1.1.4 Một số khái niệm liên quan
Định nghĩa theo Daniel Galin: Đảm bảo chất lượng phần mềm (Software
Quality Assure) là một tập hợp các hành động cần thiết được lên kế hoạch một cách hệthống để cung cấp đầy đủ niềm tin rằng quá trình phát triển phần mềm phù hợp đểthành lập các yêu cầu chức năng kỹ thuật cũng như các yêu cầu quản lý theo lịch trình
và hoạt động trong giới hạn ngân sách
1.2 Một số lý thuyết về vấn đề nghiên cứu
1.2.1 Mục tiêu của kiểm thử phần mềm
- Trực tiếp:
Phát hiện và xác định càng nhiều lỗi càng tốt ở các phần mềm được kiểm thử
Trang 15 Tiến hành sửa lỗi ở các phần mềm được kiểm thử và kiểm thử lại cho đến khiđạt một mức độ chất lượng phần mềm chấp nhận được.
Thực thi những trường hợp kiểm thử một cách hiệu quả trong một giới hạnngân sách và lịch trình cho phép
Tìm các bug phát sinh do lập trình viên tạo ra khi code
Đạt được sự tự tin và cung cấp thông tin về mức độ chất lượng
Ngăn chặn và phát hiện các lỗi tiềm tàng có thể phát sinh
Đảm bảo kết quả cuối cùng đáp ứng các yêu cầu kinh doanh và người sửdụng
Trang 16 Để đạt được sự tín nhiệm của khách hàng bằng cách cung cấp cho họ một sảnphẩm chất lượng.
- Gián tiếp: Để biên dịch một tài liệu về các lỗi phần mềm thường gặp nhằm
mục đích ngăn ngừa và sửa chữa lỗi
1.2.2 Nguyên tắc cơ bản của Kiểm thử phần mềm
Có 7 nguyên tắc cơ bản cần chú ý khi kiểm thử phần mềm, đó là:
- Kiểm thử để chứng minh sự có mặt của lỗi và không chứng minh điều ngược lại: Kiểm thử có thể cho thấy sự có mặt của lỗi nhưng không thể chứng minh điều
ngược lại là chương trình không có lỗi Việc kiểm thử giảm nguy cơ không tìm thấylỗi trong
phần mềm nhưng ngay cả khi không tìm thấy lỗi thì cũng không thể chứng
minh được sản phẩm phần mềm được phát triển hoàn toàn chính xác
- Không thể kiểm thử vét cạn: Việc kiểm thử không thể thực hiện được cho tất
cả mọi trường hợp kiểm thử Do vậy thay vì kiểm thử mọi khía cạnh, ta phải tập
trung vào kiểm thử nhữ ng yếu tố quan trọng và nhiều rủi do
- Kiểm thử sớm: Các hoạt động kiểm thử nên bắt đầu càng sớm càng tốt trong
vòng đời phát triển phần mềm, và nên tập trung và những mục tiêu kiểm thử nhất định.
- Phân cụm lỗi: Một số lượng nhỏ các mô-đun phần mềm có thể chứa hầu hết
các lỗi được phát hiện ra trong suốt quá trình kiểm thử hoặc tập trung hầu hết các lỗi
vận hành
- Kiểm thử ngược: Nếu một phương pháp kiểm thử được lặp đi lặp lại nhiều
lần, các trường hợp kiểm thử giống nhau sẽ không phát hiện được triệt để lỗi mới Để
khắc phục điều này ta có thể sử dụng nguyên tắc "kiểm thử ngược", các trường hợpkiểm thử cần phải được xem xét và duyệt lại một cách đều đặn, và việc kiểm thử mớicần phải được viết lại để thực thi nhữ ng phần khác của phần mềm hay hệ thống để tìm
ra nhữ ng lỗi tiềm ẩn
- Kiểm thử phụ thuộc vào ngữ cảnh: Việc kiểm thử được thực hiện trong
những hoàn cảnh khác nhau thì khác nhau.
Trang 17- Sai lầm về việc không có lỗi: Tìm kiếm và sửa lỗi không thể giúp được gì
nếu hệ thống không dùng được hoặc không đáp ứng yêu cầu và sự mong đợi của kháchhàng
Trang 181.2.3 Quy trình kiểm thử phần mềm
Tùy vào từng tổ chức, hệ thống, ngữ cảnh, mức độ rủi do của phần mềm mà quitrình kiểm thử phần mềm có thể gồm nhiều bước khác nhau Nhưng nhìn chung mọiqui trình kiểm thử đều có những bước cơ bản như qui trình dưới đây:
Hình 1.1: Qui trình kiểm thử phần mềm
Cụ thể ở mỗi giai đoạn:
- Lập kế hoạch kiểm thử : Nhiệm vụ quan trọng trong phần lập kế hoạch kiểm
thử là xác định được các yếu tố sau:
Các giai đoạn kiểm thử áp dụng cho dự án
Mốc bàn giao các tài liệu kiểm thử
- Chuẩn bị kiểm thử : Nhiệm vụ chiến lược của giai đoạn này là:
Tìm hiểu nghiệp vụ của hệ thống phải kiểm thử
Xây dựng kịch bản kiểm thử, phát triển các thủ tục và các kịch bản kiểm thử
tự động (trong trường hợp kiểm thử tự động)
Chuẩn bị dữ liệu kiểm thử
Xem xét phê duyệt các tài liệu kiểm thử
- Thực thi kiểm thử :
Thực hiện kiểm thử dựa trên các kịch bản kiểm thử,test script, thủ tục, dữliệu có sẵn từ bước chuẩn bị kiểm thử
Tham gia quá trình quản lý lỗi: báo lỗi, sửa lỗi
- Báo cáo và phân tích dữ liệu kiểm thử :
Báo cáo kiểm thử
Trang 19 Phân tích nguyên nhân và đề xuất các hành động khắc phục
- Mục đích của chiến lược này là tìm kiếm các trường hợp mà chương trìnhkhông thực hiện theo các đặc tả của nó
- Ưu, nhược điểm:
Ưu điểm: Kiểm thử hộp đen có ưu điểm là có thể đánh giá phần mềm một
cách khách quan, người kiểm thử có thể không hiểu biết về mã lệnh và có thể tìm racác lỗi mà nhân viên phát triển không tìm ra
Nhược điểm: Kiểm thử hộp đen lại có nhược điểm là thăm dò mù, do nhân
viên kiểm thử không biết các chương trình thực sự được xây dựng như thế nào, dẫnđến trường hợp nếu kiểm thử hộp đen phải viết rất nhiều trường hợp kiểm thử trongkhi chỉ cần viết một ca kiểm thử duy nhất để có thể kiểm tra được
- Kiểm thử hộp đen gồm 3 kỹ thuật cơ bản: Phân tích giá trị biên, Phân vùngtương đương, Bảng quyết dịnh Ngoài ra còn có kỹ thuật đoán lỗi, phân tích các giá trịhợp lệ/không hợp lệ,
1.2.4.2 Kiểm thử hộp trắng
Kỹ thuật kiểm thử hộp trắng hay còn gọi là “kiểm thử cấu trúc” : là kỹ thuật kiểmthử cho phép khảo sát kiến trúc bên trong của chương trình Kiểm thử hộp trắng làchiến lược được thực hiện trên ba trong sáu loại kiểm thử cơ bản trong các giai đoạnkiểm thử phần mềm là: kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hồi quy
- Mục tiêu của kiểm thử hộp trắng là kiểm thử bao phủ nhiều nhất các câu lệnh,điểm quyết định và các rẽ nhánh trong mã nguồn nếu có thể
- Ưu, nhược điểm:
Trang 20 Ưu điểm: là một phương pháp kiểm tra được chỉnh xác cấu trúc lệnh bên
trong chương trình
Nhược điểm: Đòi hỏi kiểm thử viên phải có hiểu biết sâu rộng về lập trình và
các ngôn ngữ lập trình Một sự thay đổi nhỏ bên trong có thể tác động lớn đến toàn bộchương trình
1.2.4.3 Kiểm thử hộp xám
Kiểm thử hộp xám là kỹ thuật kiểm thử có sự kết hợp giữa kiểm thử hộp đen vàkiểm thử hộp trắng Trong đó ta cũng quan tâm đến dữ liệu đầu vào và đầu ra giốngnhư trong kiểm thử hộp đen, song lại đòi hỏi có sự truy cập đến cấu trúc dữ liệu và giảithuật để thiết kế các trường hợp kiểm thử
Thông thường các kiểm thử viên sẽ thực hiện kiểm thử hộp đen, các phươngpháp kiểm thử còn lại cần có sự hiểu biết và phối hợp chặt chẽ với đội ngũ lập trìnhviên mới có thể thực hiện được
1.2.5 Các giai đoạn Kiểm thử phần mềm
Kiểm thử phần mềm gồm 4 giai đoạn chính Trình tự thực hiện các giai đoạnđược mô tả như sơ đồ dưới:
Hình 1.2: Các giai đoạn kiểm thử phần mềm
1.2.5.1 Kiểm thử đơn vị
- Đơn vị: Là thành phần nhỏ nhất của phần mềm có thể kiểm thử được Ví dụ:
Các hàm, lớp, thủ tục, phương thức Đơn vị thường có kích thước nhỏ, chức năng hoạtđộng đơn giản, không gây nhiều khó khăn trong việc kiểm thử, ghi nhận và phân tíchkết quả do đó nếu phát hiện lỗi việc tìm kiếm nguyên nhân và sửa lỗi cũng đơn giản vàtốn ít chi phí hơn Nguyên lý đúc kết từ thực tiễn là thời gian dành cho kiểm thử đơn vị
Trang 21sẽ được đền bù bằng việc tiết kiệm được khá nhiều thời gian và chi phí cho việc kiểmthử và sửa lỗi ở các mức độ kiểm thử sau đó.
- Mục đích: Đảm bảo thông tin được xử lý đúng và có đầu ra chính xác trong
mối tương quan giữa dữ liệu nhập và chức năng của đơn vị
- Người thực hiện: Do việc kiểm thử đơn vị đòi hỏi phải kiểm tra từng nhánh
lệnh, nên đòi hỏi người kiểm thử có kiến thức về lập trình cũng như về thiết kếcủa hệ thống nên người thực hiện thường là lập trình viên
1.2.5.2 Kiểm thử tích hợp
- Kiểm thử tích hợp: là kiểm thử sự kết hợp và giao tiếp giữa các đơn vị của
một chương trình và kiểm thử như một chương trình đã hoàn thành
- Mục đích:
Phát hiện lỗi giao tiếp xảy ra giữa các đơn vị cũng như lỗi của bản thân từngđơn vị (nếu có)
Tích hợp các đơn vị đơn lẻ thành các hệ thống nhỏ (subsystem) và cuối cùng
là tích hợp các hệ thống nhỏ thành một hệ thống hoàn chỉnh (system) để chuẩn bị chokiểm thử hệ thống
- Người thực hiện: Thường là lập trình viên.
- Lưu ý khi thực hiện kiểm thử tích hợp:
Kiểm thử tích hợp chỉ nên thực hiện trên từng đơn vị đã được kiểm tra cẩnthận trước đó bằng kiểm thử đơn vị, và tất cả các lỗi mức đơn vị đã được sửa chữa
Nên tích hợp dần từng đơn vị: Một đơn vị nên được tích hợp vào một nhómcác đơn vị khác đã được tích hợp và hoàn thành kiểm thử tích hợp trước đó vì khi đóchỉ cần kiếm tra giao tiếp giữa đơn vị mới được thêm vào với nhóm các đơn vị đãđược tích hợp trước đó
1.2.5.3 Kiểm thử hệ thống
Kiểm thử hệ thống bắt đầu khi tất cả các đơn vị của hệ thống được tích hợp thànhcông Kiểm thử hệ thống gồm nhiều loại khác nhau, trong số đó các kiểm thử quantrọng nhất là:
Kiểm thử chức năng
Trang 22 Kiểm thử hiệu năng
- Mục đích: kiểm tra xem hệ thống được làm ra có thỏa mãn yêu cầu hay
không về nhiều khía cạnh: hoạt động, độ tin cậy, hiệu năng của hệ thống
- Người thực hiện: Nhân viên kiểm thử
- Lưu ý: Việc lập kế hoạch cho kiểm thử hệ thống nên bắt đầu từ giai đoạn bắt
đầu dự án
Trang 23 Kiểm thử chức năng: Kiểm tra về Giao diện và Luồng nghiệp vụ
- Giao diện: Kiểm thử giao diện là việc kiểm tra các tương tác của người dùng
với phần mềm Mục tiêu của kiểm thử giao diện là để đảm bảo rằng giao diện ngườidùng cung cấp cho người sử dụng cách truy cập và sử dụng các chức năng của hệthống một cách thích hợp Ngoài ra, kiểm thử giao diện còn để đảm bảo rằng các đốitượng trên giao diện giống như thiết kế, phù hợp với tổ chức hoặc chuyên ngành
Bảng 1.1: Kiểm thử giao diện
- Luồng nghiệp vụ:
Mục đích của kiểm thử luồng nghiệp vụ là kiểm tra các yêu cầu chức năng vànghiệp vụ của hệ thống bao gồm các hoạt động để kiểm tra tính đúng đắn của dữ liệu,qui trình, báo cáo và việc thực hiện đúng những qui tắc nghiệp vụ, dựa trên nguyên tắckiểm thử hộp đen
Trang 24Bảng 1.2: Kiểm thử luồng nghiệp vụ
Kiểm thử hiệu năng:
Mục đích của kiểm thử hiệu năng là kiểm tra các yêu cầu về hiệu năng có đạtđược hay không
1.2.2.5 Kiểm thử chấp nhận
- Mục đích: Kiểm thử chấp nhận còn gọi là kiểm thử nghiệm thu nhằm mục
đích chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách hàng và khách hàng đãchấp nhận sản phẩm
- Người thực hiện: Kiểm thử viên và Khách hàng.
- Có 2 phương pháp kiểm thử chấp nhận: Kiểm thử alpha và kiểm thử beta.
Trang 25Người dùng kiểm thử dưới sự hỗ trợ của nhân viên kiểm thử, nhân viên kiểm thử sẽghi nhận các lỗi hoặc phản hồi của khách hàng và báo lại với đơn vị phát triển phầnmềm để lên kế hoạch sửa chữa
Kiểm thử Beta: Phần mềm sẽ được gửi tới cho người dùng để kiểm thử trong
môi trường thực tế, tại địa điểm của khách hàng Lỗi hoặc phản hồi cũng sẽ gửi lại chođơn vị phát triển phần mềm để lên kế hoạch sửa chữa
1.2.2.6 Kiểm thử hồi quy
Kiểm thử hồi qui là một hoạt động cần thiết để chỉ ra rằng việc thay đổi mãnguồn hoặc các thay đổi trong quá trình lập trình viên chỉnh sửa lỗi không gây ranhững ảnh hưởng bất lợi đến hệ thống nói chung
Bảng 1.3: Kiểm thử hồi qui
1.3 Tình hình nghiên cứu
1.3.1 Tình hình nghiên cứu trong nước
Những năm gần đây, ngành Kiểm thử phần mềm thực sự phát triển và trở thànhmột trong những ngành nghề quan trọng, tiềm năng Nhận thức rõ được vấn đề trên, đã
Trang 26có một số bài viết, công trình nghiên cứu về lĩnh vực này Sau đây là một số bài viếtliên quan:
Luận văn tốt nghiệp “Tìm hiểu các kỹ thuật Kiểm thử phần mềm”, Lê Văn
Duy-Vũ Trọng Quý(2011), K52 CNPM, Trường Đại học Bách Khoa Hà Nội Luậnvăn đã cung cấp một cách tổng quan kiến thức về hệ thống các kỹ thuật kiểm thử phầnmềm Tuy nhiên vì đề tài không liên hệ thực tiễn, áp dụng trong dự án hay bài toán cụthể, vì vậy sẽ rất khó để người đọc hình dung được mức độ ứng dụng của các kỹ thuậttrong thực tế
“Nghiên cứu kỹ thuật phân tích khả năng kiểm thử phần mềm và mở rộng tính năng của công cụ SATAN, thử nghiệm ứng dụng trong môi trường Scicos và Simulink”, Tiến sĩ Nguyễn Thanh Bình(2011), Đại học Đà Nẵng Đề tài cung cấp
những kiến thức tổng quan về các kỹ thuật phân tích khả năng kiểm thử, nhấn mạnhđến việc mở rộng và phát triển các tính năng của công cụ SATAN để ứng dụng vàoviệc kiểm thử trên môi trường Scicos và Simulink Tuy nhiên, bài nghiên cứu ở tầm vĩ
mô, với những người mới tìm hiểu và làm quen với kiểm thử, đây chưa thực sự là mộttài liệu chưa phù hợp phù hợp vì tính ứng dụng thực tế không cao
Phạm Quang Hiển, Trần Tường Thụy(2013), Kiểm thử phần mềm(Testing), NXB
Thông Tin và Truyền Thông, STK Cuốn sách gồm 24 chương giới thiệu những kiếnthức cơ bản về Kiểm thử phần mềm, tầm quan trong trong giáo dục và giảng dạy
“Khảo sát các phương pháp thiết kế testcase trong Kiểm thử hộp đen”, Trịnh Thị
Vân Anh (2016), Đại học sư phạm kỹ thuật Hưng Yên Bài nghiên cứu cụ thể, rõ ràng
về phương pháp kiểm thử hộp đen nhưng mới dừng lại ở mức khảo sát sơ bộ, thiên về
lý thyết, do vây vận dụng thực tế và tính ứng dụng còn chưa cao
1.3.2 Tình hình nghiên cứu thế giới
Boris Beizer(2003), Software Testing Techniques Cuốn sách của tác giả người
Bỉ được xuất bản năm 2003 là cuốn sách nghiên cứu về các kỹ thuật Kiểm thử phầnmềm, đặc biệt nêu rõ vai trò quan trọng của việc kiểm thử Mỗi chương của cuốn sách
là sự vận dụng các kỹ thuật trong từng giai đoạn kiểm thử: Kiểm thử đơn vị, Kiểm thửtích hợp, Kiểm thử hồi quy, kèm theo các ví dụ minh họa cụ thể Cuốn sách là lựachọn tin cậy cho những ai muốn tìm hiểu về nghề Kiểm thử mà không yêu cầu nhiều
Trang 27Abu Sayed Mahfuz(2016), Software Quality Assurance: Integrating Testing, Security, and Audit Cuốn sách tập trung vào việc nêu rõ tầm quan trọng của chất
lượng phần mềm và việc đảm bảo một phần mềm hoạt động hiệu quả Cuốn sách đượcchia làm bốn phần: Phần 1 nêu ra khái niệm cơ bản về chất lượng phần mềm, vòng đờiphần mềm,…Phần 2 về các kỹ thuật và phương pháp kiểm thử, việc đề ra kế hoạch vàmục tiêu từng bước thực hiện kiểm thử Phần 3 hệ thống các vấn đề liên quan đến chấtlượng và những khuyết tật mà phần mềm có thể gặp phải Phần cuối cùng là hướngphát hiện và giải quyết, khắc phục các khuyết tật trên Đây thực sự là một trong nhữngcuốn sách hữu ích và đầy đủ nhất về đảm bảo chất lượng phần mềm
Paul Felten(2017), Software Testing Basics: Software Verification Fundamentals for All Dedicated Testers Như trong chính tiêu đề của cuốn sách, đây là cuốn sách
chuyên dụng cho các Tester Cuốn sách cung cấp đầy đủ và hệ thống tất cả những kiếnthức liên quan đến kiểm thử Sau khi đọc cuốn sách này, người kiểm thử sẽ được trang
bị nền tảng kiến thức vững chắc, là tiền đề quan trọng để thực hiện các công việc kiểmthử về sau
Nhìn chung, những công trình nghiên cứu và các sách, tài liệu về Kiểm thử phầnmềm hiện nay rất nhiều, cung cấp đa dạng kiến thức cho mọi đối tượng khác nhau.Việc sử dụng các tài liệu vào mục đích học tập và nghiên cứu trở nên thuận tiện và dễdàng hơn, tuy nhiên để có thể khai thác được hết tiềm năng và giá trị những tài liệumang lại đòi hỏi người dùng phải biết chọn lọc và vận dụng vào trong thực tiễn Quaviệc tìm hiểu và phân tích một số công trình nghiên cứu trước đây về cùng lĩnh vực,nhận thấy các công trình trên còn thiên về lý thuyết, thực sự chưa phù hợp đối vớikiểm thử viên vì tính ứng dụng trong thực tế là không cao Việc cung cấp một nền tảngkiến thức vững chắc là tiền đề và là yếu tố then chốt phục vụ cho quá trình học tập,
Trang 28nghiên cứu Đây cũng là cơ sở cho việc mở rộng và ứng dụng các kỹ thuật, công cụ
kiểm thử mới vào dự án thực tế Khóa luận với đề tài “Nghiên cứu một số kỹ thuật kiểm thử phần mềm áp dụng kiểm thử cho website http://hoctestertop.com/ của Công ty TNHH Giải pháp phần mềm Gia Linh” sẽ làm rõ và cung cấp đầy đủ kiến
thức cơ bản về kiểm thử, tính ứng dụng cao do trực tiếp vận dụng lý thuyết nghiên cứuvào thực tế
CHƯƠNG 2 TÌNH HÌNH THỰC TIỄN HOẠT ĐỘNG KIỂM THỬ PHẦN MỀM TẠI CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM GIA LINH
2.1 Tổng quan về Công ty TNHH Giải pháp phần mềm Gia Linh
2.1.1 Thông tin cơ bản
Tên công ty: Công ty Trách nhiệm hữu hạn Giải pháp phần mềm Gia Linh
Tên giao dịch: GIA LINH SOLUTION
Trang 29tranh của khách hàng, gia tăng giá trị lợi nhuận dựa vào hệ thống phần mềm quản lý vàxây dựng website.
Hiện nay, Gia Linh còn cung cấp dịch vụ thương mại điện tử, các giải pháp côngnghệ truyền thông khác cũng như phần mềm nhằm đáp ứng được các yêu cầu khácnhau của khách hàng Đến với Gia Linh bạn sẽ có được dịch vụ trọn gói từ việc thiết
kế, xây dựng cơ sở hạ tầng thương mại di động, phát triển ứng dụng, đăng ký tên miền,gia công và xây dựng các hệ thống phần mềm, được tư vấn các giải pháp công nghệtiên tiến, đem lại cho nhiều doanh nghiệp các giải pháp hoàn chỉnh tạo cơ hội giớithiệu, quảng bá công ty của mình và tăng khả năng tiếp cận với thị trường mới
Với tầm nhìn “Gia Linh luôn nỗ lực để trở thành công ty công nghệ hàng đầu của người Việt, sánh vai với các tập đoàn kinh tế hùng mạnh trên thế giới” cùng sứ mệnh “Cung cấp sản phẩm dịch vụ CNTT và truyền thông nhằm đáp ứng nhu cầu của khách hàng về hiện đại hóa công tác quản lý điều hành”, Gia Linh đã và đang ngày
càng lớn mạnh, trở thành một trong những đối tác tin cậy và là sự lựa chọn hàng đầucủa các tổ chức, cá nhân
Các sản phẩm và dịch vụ công ty cung cấp tới khách hàng bao gồm:
Thiết kế website thương mại điện tử, các website giới thiệu công ty
Dịch vụ đăng ký tên miền, cho thuê hosting
Cung cấp sản phẩm phần mềm
Giải pháp cổng thông tin điện tử
Giải pháp quản lý, quản trị nguồn nhân lực doanh nghiệp
Tư vấn các giải pháp về CNTT,…
Trang 302.1.4 Cơ cấu tổ chức
Hình 2.1: Sơ đồ cơ cấu bộ máy tổ chức Công ty TNHH Giải pháp phần mềm
Gia Linh
Trang 312.1.5 Hạ tầng cơ sở vật chất, trang thiết bị tại công ty
Công ty có đầy đủ hệ thống trang thiết bị phục vụ cho công việc của mỗi cánhân thuộc các phòng ban khác nhau
- Có 1 máy chủ cài đặt hệ điều hành Windows đặt tại phòng Công nghệ thôngtin, các phòng còn lại số lượng máy tính từ 10-12 máy, gồm cả máy tính để bàn vàmáy tính xách tay Toàn bộ nhân viên đều được trang bị máy tính để dùng Tất cả máyđều được kết nối vào mạng thông qua các cổng mạng đã được lắp đặt sẵn Hệ điềuhành sử dụng cho các máy tính hiện tại là Windows7, Windows8, Windows10
- Ngoài ra công ty còn trang bị máy in, máy chiếu, ĐTDĐ phục vụ cho côngviệc kiểm thử và một số công việc khác một cách nhanh chóng và thuận tiện Thôngtin cụ thể từng loại máy như bảng sau:
(Nguồn: Kết quả xử lý phiếu điều tra bằng Excel)
Trang 32Bảng 2.1: Thống kê sơ bộ về trang thiết bị
Các phần mềm đã và đang sử dụng:
Bộ phần mềm tin học văn phòng Microsoft Office :Microsoft word 2010,
Microsoft Excel 2010,
Phần mềm Teamviewer 12 và 13 là những phiên bản mới nhất để điều khiển
các máy tính trong cùng một phòng ban, giúp phòng kỹ thuật có thể điều hành,giám sát, kiểm tra được hoạt động của các máy tính trong công ty, tránh trường hợpxuất dữ liệu cấm của công ty ra ngoài…
Phần mềm Microsoft Outlook: phần mềm quản lý thông tin cá nhân của
Microsoft, ứng dụng trong công ty như công cụ để liên lạc và thông tin nội bộ Mỗinhân viên đều có một tài khoản Outlook để liên lạc và trao đổi công việc
Phần mềm chuyên ngành: Phần mềm lập trình NetBeans 8.0.2, React Native,
Adobe CS6, Amazon EC2 (web server)
Phần mềm đo lường, quản lý hiệu quả hoạt động KPIBSC: đây là phần mềm do
công ty viết ra hỗ trợ xây dựng sơ đồ chiến lược chuyên nghiệp, giúp tự động hóa việclập kế hoạch chiến lược, được đo lường kết quả hoạt động tức thời của công ty
Sử dụng phần mềm kế toán chuyên biệt – MISA : Đây là phần mềm kế toán phản
ánh hiện trạng và sự biến động về vốn, tài sản của doanh nghiệp dưới dạng tổng quáthay nói cách khác là phản ánh các dòng vật chất và dòng tiền tệ trong mối quan hệgiữa doanh nghiệp với môi trường kinh tế bên ngoài
Phần mềm quản lý nhân sự do công ty xây dựng, chức năng chính: quản lý nhân
sự tiền lương, quản lý tài sản, kho vật tư,…
Phần mềm phòng chống, bảo vệ mạng: sử dụng FireWall, Antivirut (BKAV Pro);
đối với Web sử dụng phần mềm Antivirut(AVG) và sử dụng phần mềm Antivirut(Security Plus for Mdea, Symante) cho Email
2.1.6 Tình hình hoạt động kinh doanh của doanh nghiệp từ năm 2015-2017
5 Lợi nhuận trước thuế 2.116.975.618 2.907.716.214 5.165.977.689
6 Lợi nhuận sau thuế 1.693.580.494 2.326.172.971 4.132.782.151
(Nguồn: Phòng Tài chính-Kế toán)
Trang 33Bảng 2.2 Thống kê kết quả kinh doanh công ty giai đoạn 2015-2017
Trang 34Công ty được thành lập vào năm 2011 Thời gian đầu, do vốn bỏ ra lớn nênlợi nhuận thu lại không mấy khả quan Những năm tiếp theo, nhờ định hướngđúng đắn hướng phát triển, mở rộng lĩnh vực kinh doanh, xây dựng và củng cố vàđược đối tượng khách hàng trung thành, thu hút lượng khách hàng mới và tiềm năng,
… lợi nhuận công ty thu về tăng lên rõ rệt Đặc biệt trong giai đoạn 2016-2017, lợinhuận tăng mạnh Điều đó cho thấy hướng phát triển đúng đắn cũng như chiến lượchoạt động kinh doanh hiệu quả của doanh nghiệp
2.2 Phân tính thực trạng hoạt động Kiểm thử phần mềm tại công ty
Tình hình kiểm thử phần mềm tại Công ty TNHH Giải pháp phần mềm Gia Linh
có thể chia làm 2 giai đoạn cụ thể như sau:
- Trước năm 2016:
Công ty không có đội ngũ nhân viên kiểm thử, lập trình viên là người lập trình racác phần mềm, đồng thời đóng vai trò là người kiểm thử - tự kiểm tra lại sản phẩm củamình trước khi bàn giao cho khách hàng Họ cũng là người trực tiếp hướng dẫn ngườidùng cách thức vận hành, hoạt động của phần mềm; lắng nghe những bổ sung góp ý từphía khách hàng để hoàn thiện phần mềm
Phương pháp kiểm thử áp dụng giai đoạn này là kiểm thử hộp trắng Vì là lậptrình viên thực hiện, do đó mọi sửa đổi và can thiệp đều liên quan đến code, đến cấutrúc bên trong của chương trình, một sự thay đổi nhỏ cũng sẽ làm thay đổi đến nhiềuphần có liên quan Bản thân họ khi tiến hành sửa đổi sẽ không thể bao quát và kiểmsoát hết mọi vấn đề phát sinh Do đó chất lượng phần mềm tạo ra thường không cao,không đáp ứng được mong muốn của khách hàng
(Nguồn: Kết quả xử lý phiếu điều tra bằng Excel)
Biểu đồ 2.1:Thống kê số lỗi phần mềm
Trang 35Kết quả thống kê cho thấy: 65% số lỗi phát hiện thuộc về lỗi giao diện(vỡ layout,hiển thị thứ tự trên smartphone chưa đúng, màu sắc các text và label chưa đúng, chưa
có hiệu ứng hoover ở các button, ) Lỗi này thuộc về trách nhiệm của lậɮ trình; 25%
số lỗi thuộc về chức năng cũng do sai sót của lập trình (nhập quá số kí tự cho phép,nhập số điện thoại không đúng định dạng, mail không đúng định dạng, không thôngbáo lỗi, không nhập vào trường bắt buộc nhưng chưa có thông báo bắt buộc nhập, );10% số lỗi còn lại do khách hàng phản ánh lại vì họ chưa hiểu rõ cách thức hoạt động
và vận hành của phần mềm Lập trình viên là người chịu trách nhiệm trong việc hướngdẫn lại, cung cấp các kiến thức giúp khách hàng hiểu đúng và rõ phần mềm
- Từ năm 2016-nay:
Do sự mở rộng về lĩnh vực cũng như quy mô hoạt động, công ty đã có đội ngũkiểm thử độc lập, chịu trách nhiệm về việc đảm bảo phần mềm hoạt động không cònlỗi, hỗ trợ lập trình viên trong quá trình phát hiện và khắc phục lỗi Qua điều tra, thống
kê được số lượng nhân viên lập trình, kiểm thử, phân tích nghiệp vụ và quản lý dự ántại công ty như sau:
S l ố lượng nhân viên phòng kỹ thuật ượng nhân viên phòng kỹ thuật ng nhân viên phòng kỹ thu t ật
(Nguồn: Kết quả xử lý phiếu điều tra bằng Excel)
Biểu đồ 2.2: Số lượng nhân viên phòng kỹ thuật
Thống kê cho thấy: Lực lượng chính của bộ phận kỹ thuật là các lập trình viên(19người)- họ là người tạo ra các phần mềm trên nền tảng tài liệu có được từ nhân viênphân tích nghiệp vụ đưa lại Số kiểm thử viên là 7 người, bên cạnh nhiệm vụ chính làđảm bảo phần mềm hoạt động không còn sai sót, họ là lực lượng chính chịu tráchnhiệm trong việc xây dựng tài liệu hướng dẫn sử dụng cho khách hàng 25% số đókiêm cả vị trí nhân viên phân tích nghiệp vụ- làm việc trực tiếp với khách hàng, viết tàiliệu phác thảo và tài liệu đặc tả yêu cầu Đây là tài liệu đặc biệt quan trọng, là cơ sở đểlập trình viên tạo ra đúng phần mềm theo yêu cầu khách hàng; kiểm thử viên lấy đây là
cơ sở để xây dựng các testcase tương ứng và tiến hành rà soát lỗi Quản lý mỗi dự án
sẽ thống kê, theo dõi tiến độ thực hiện và hoàn thành công việc ở mỗi bộ phận
Trang 36(Nguồn: Kết quả xử lý phiếu điều tra bằng Excel)
Biểu đồ 2.3: Nguyên nhân làm chậm tiến độ dự án
Vì bộ phận kiểm thử độc lập mới được bổ sung, để đáp ứng kịp thời tiến độ vàđảm bảo chất lượng, hầu hết những người được tuyển dụng là người có kinh nghiệmnhiều năm trong lĩnh vực này Phần lớn các phát hiện về lỗi là dựa trên kinh nghiệm,những đúc kết từ dự án thực tế mà họ tham gia nên chưa có một phương pháp cụ thểnào được áp dụng, do đó vẫn chưa thể rà soát hết các lỗi Thực tế hiện nay cho thấy, từkhi bộ phận kiểm thử được hình thành, việc đảm bảo chất lượng phần mềm được cảithiện rõ rệt, phản hồi từ phía khách hàng cũng mang tính tích cực hơn Tuy nhiên vìcác phương pháp, kỹ thuật áp dụng còn không rõ ràng và bài bản, do đó đây là mộttrong những nguyên nhân làm chậm tiến độ dự án, chiếm 37% Lỗi do lập trình chiếm53% Nguyên nhân chủ yếu là họ có thể cùng một lúc thực hiện nhiều dự án, do vậy đểcùng lúc đảm bảo tiến độ cho các dự án còn khó khăn Bên cạnh đó khi kiểm thử báocáo lỗi, lập trình thường không sửa luôn, đến cuối cùng khi số lượng lỗi quá nhiều, tồnđọng không kịp sửa, làm chậm tiến độ dự án Nguyên nhân khác chiếm 20% có thể dophía khách hàng và công ty trong quá trình phản ánh, bổ sung yêu cầu chưa đầy đủ vàkịp thời
74.10%
25.90%
Nhu cầu xây dựng hệ thống kỹ thuật kiểm thử
Cần thiết Không cần thiết
(Nguồn: Kết quả xử lý phiếu điều tra bằng Excel)
Biểu đồ 2.4: Nhu cầu xây dựng hệ thống kỹ thuật kiểm thử
Trang 37Thực trạng này đặt ra một nhu cầu là xây dựng được một hệ thống các phươngpháp và kỹ thuật kiểm thử chuyên nghiệp áp dụng cho toàn bộ nhân viên bộ phận nàycũng như là nguồn để nhân viên mới có thể học tập và trau đồi nghiệp vụ Hiện tại ởcông ty, đa số hoạt động kiểm thử được thực hiện thủ công, chính vì vậy việc xâydựng hệ thống các kỹ thuật và phương pháp kiểm thử, áp dụng vào kiểm thử chính sảnphẩm của công ty là rất thiết thực Khảo sát trên 5/7 số nhân viên kiểm thử chính thức
và 15/20 thực tập sinh cho thấy nhu cầu này thực sự rất lớn, chiếm trên 70%
2.3 Đánh giá tình hình hoạt động Kiểm thử phần mềm tại công ty
Công ty TNHH Giải pháp phần mềm Gia Linh là công ty chuyên về lĩnh vực lậptrình phần mềm, những năm gần đây, công ty mở rộng hoạt động về thiết kế website.Được thành lập từ năm 2011, công ty đang ngày càng được củng cố và là địa chỉ tincậy của nhiều đối tượng khách hàng Vì đặc thù lĩnh vực hoạt động là về phần mềm,
do đó yếu tố then chốt chính là xây dựng và đảm bảo những phần mềm sản xuất rakhông có sai sót, đáp ứng được nhu cầu và mục đích của khách hàng cũng như ngườidùng trực tiếp
Từ trước năm 2016, lập trình viên là người lập trình ra các sản phần phần mềm,đồng thời cũng đóng vai trò người dùng trực tiếp sử dụng sản phẩm và bàn giao chokhách hàng Việc lập trình viên kiêm nhiệm nhiều vai trò cùng lúc như vậy có những
ưu và nhược điểm nhất định:
Tiếp nhận những góp ý bổ sung trực tiếp từ khách hàng sẽ giúp họ giảm thiểuđược những lỗi tương tự có thể gặp phải với những sản phẩm tương lai
2.3.2 Nhược điểm:
Việc lập trình kiêm nhiệm cùng lúc nhiều vai trò có thể ảnh hưởng không tốt đếnnhiệm vụ trọng tâm là lập trình Áp lực về mặt thời gian và khối lượng công việc làmột trong những nguyên nhân chính làm giảm thiểu chất lượng phần mềm tạo ra
Trang 38Việc sử dụng trực tiếp chính sản phẩm do mình tạo ra nhằm kiểm nghiệm và pháthiện lỗi còn mang tính chủ quan, họ không phải khách hàng nên chưa thể hiểu rõkhách hàng cần gì và người dùng cần gì Sản phẩm tạo ra có thể đúng yêu cầu nhưngtính ứng dụng trong môi trường thực tế lại chưa cao
Trong quá trình rà soát, lỗi có thể được tìm ra nhưng nếu là lỗi nhỏ, ảnh hưởngkhông nhiều đến toàn bộ phần mềm, lập trình viên thường sẽ bỏ qua Đến khi kháchhàng sử dụng và phản ánh lại, điều này sẽ ảnh hưởng đến tiến độ cũng như nhiều hoạtđộng khác có liên quan dù ít hay nhiều,…
Hiện nay, bên cạnh việc lập trình với đội ngũ nhân viên chuyên nghiệp, hoạt
động kiểm thử ngày càng được quan tâm đầu tư Kiểm thử viên đóng vai trò đặc biệtquan trọng trong việc là cầu nối giữa khách hàng và các kỹ sư lập trình, họ là ngườiđảm bảo phần mềm cung cấp cho khách hàng là phần mềm chất lượng, không sai sóttrên cơ sở thực tế trải nghiệm Kiểm thử viên cũng chính là người tham gia vào côngviệc xây dựng tài liệu hướng dẫn người dùng, chính vì vậy họ là bộ phận lắng nghenhững bổ sung, kiến nghị và phản ánh từ phía khách hàng, hỗ trợ lập trình trong côngtác sửa đổi và hoàn thiện phần mềm
Với chiến lược phát triển hiện tại và định hướng lâu dài, việc xây dựng đội ngũkiểm thử chất lượng và vững chắc là một trong những yếu tố then chốt giúp duy trì vàđẩy nhanh tốc độ phát triển của công ty Chuyên môn hóa trong từng hoạt động khôngnhững nâng cao năng suất mà còn giảm thiểu thời gian một cách tối đa và hiệu quảmang lại là cao nhất:
Kiểm thử viên là bộ phận độc lập, chịu trách nhiệm trong việc đảm bảo phầnmềm hoạt động không còn lỗi hay sai sót Việc chuyên môn hóa công việc sẽ giúpgiảm tải áp lực cho lập trình viên, kiểm thử có thời gian xem xét và kiểm tra kĩ từngphần riêng biệt Họ đóng vai trò như người dùng, khác hàng, đưa ra những bổ sung vàgóp ý thực tế từ đó giúp sữa chữa và tạo ra các phần mềm có tính ứng dụng trong thựctiễn Xây dựng hệ thống kỹ thuật kiểm thử bài bản và chặt chẽ là nền tảng cơ sở chomọi hoạt động kiểm thử về sau Từ khi có bộ phận kiểm thử độc lập, chất lượng phầnmềm được cải tiến rõ rệt, phản hồi từ phía khách hàng cũng tích cực hơn Tuy nhiênthực tế tại doanh nghiệp hiện nay cho thấy, các nhân viên kiểm thử không áp dụng mộtphương pháp hay kỹ thuật kiểm thử nào rõ ràng và bài bản, hệ quả dẫn đến đó là việclàm chậm tiến độ hoàn thành dự án do thời gian phát hiện và sửa chữa lỗi lâu Bất cập
Trang 39đang gặp phải hiện nay là khi người mới vào, gồm cả nhân viên thử việc và số lượnglớn thực tập sinh không có bất cứ tài liệu nghiên cứu tổng hợp về lĩnh vực này Do đó
dù được trực tiếp tham gia vào các dự án thực tế nhưng để hiểu rõ về bản chất và quytrình kiểm thử thì thực sự là một vấn đề khó khăn, nguồn nhân lực qua đào tạo chưa đủkhả năng để có thể tự mình đảm nhiệm các dự án kiểm thử Qua tổng hợp và phân tích,nhận thấy việc xây dựng tài liệu hệ thống các phương pháp và kỹ thuật kiểm thử là nhu cầuthực sự cần thiết nếu muốn rút ngắn thời gian đào tạo mà hiệu quả mang lại là cao nhất
Trang 40CHƯƠNG 3 ĐỊNH HƯỚNG PHÁT TRIỂN VÀ ỨNG DỤNG MỘT SỐ KỸ THUẬT KIỂM THỬ PHẦN MỀM CHO WEBSITE http://hoctestertop.com/ CỦA
CÔNG TY TNHH GIẢI PHÁP PHẦN MỀM GIA LINH
3.1 Định hướng phát triển
3.1.1 Định hướng chung
Song song với sự phát triển của khoa học công nghệ, đặc biệt là sự phát triểnvượt bậc của lĩnh vực phần mềm, bên cạnh việc đào tạo và tuyển dụng đội ngũ lậptrình viên chuyên nghiệp, lực lượng kiểm thử cũng được chú trọng và quan tâm đặcbiệt Trên thế giới và nhiều doanh nghiệp tại Việt Nam hiện nay, ứng dụng kiểm thử tựđộng vào quá trình kiểm thử đã và đang được đầu tư đẩy mạnh Không thể phủ nhậnkiểm thử thủ công là tiền đề cho mọi hoạt động kiểm thử khác, tuy nhiên phải nhìnnhận rằng kiểm thử tự động thực sự đem lại nhiều hiệu quả thiết thực
Ứng dụng các công cụ kiểm thử tự động vào kiểm thử nói chung và kiểm thửwebsite nói riêng, lợi ích quan trọng nhất là tiết kiệm thời gian và tính chính xác Một
số công cụ kiểm thử tự động được áp dụng phổ biến hiện nay đó là:
QuickTest Professional: Là phần mềm kiểm soát việc kiểm thử tự động các chức
năng của các sản phẩm phần mềm cần kiểm thử Sản phẩm này bao gồm một tập cácmô-đun có thể tương tác với nhau nhằm quản lý toàn bộ quy trình kiểm thử phần mềm.Quick Test Professional là một công cụ hỗ trợ kiểm thử hàm (kiểm thử chức năng) vàcho phép tiến hành kiểm thử hồi quy một cách tự động
Load Runner: Load Runner giả lập một môi trường ảo gồm nhiều người dùng
thực hiện các giao dịch cùng một lúc nhằm giám sát các thông số xử lý của phần mềmcần kiểm thử Kết quả thống kê sẽ được lưu lại và cho phép kiểm thử viên thực hiệnphân tích nhằm kiểm thử khả năng chịu tải và các yêu cầu phi chức năng khác của sảnphẩm Trong quá trình kiểm thử, Load Runner tự động tạo ra các kịch bản kiểm thử đểlưu lại các thao tác người dùng tương tác lên phần mềm
Apache Jmeter: Được dùng để kiểm thử khả năng chịu tải và kiểm thử hiệu năng
cho các ứng dụng Web và một số ứng dụng khác Công cụ này hỗ trợ kiểm thử hiệunăng của các mã nguồn được viết bằng các ngôn ngữ khác nhau như PHP, Java,ASP.NET, … Apache JMeter mô phỏng khả năng chịu tải của các máy chủ trên máy