1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

81 101 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 1,34 MB

Nội dung

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 1

LỜ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 2

MỤ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 3

2.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 4

DANH 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 5

TỪ VIẾT TẮT NGHĨA TIẾNG VIỆT

IEEE Institute of Electrical and

Trang 6

PHẦ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 7

mở 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 9

2.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 12

4.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 13

CHƯƠ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 14

việ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 18

1.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 21

sẽ đượ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 24

Bả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 25

Ngườ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 26

có 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 27

Abu 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 28

nghiê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 29

tranh 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 30

2.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 31

2.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 32

Bả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 33

Bảng 2.2 Thống kê kết quả kinh doanh công ty giai đoạn 2015-2017

Trang 34

Cô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 35

Kế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 37

Thự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 38

Việ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 40

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

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

Ngày đăng: 20/04/2020, 15:04

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w