You are on page 1of 29

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG


*********

BÁO CÁO
THỰC TẬP CÔNG NGHIỆP
Địa điểm thực tập: Công ty TNHH phần mềm FPT

Sinh viên thực hiện: Phạm Thị Hương Ly


MSSV: 20156011
Lớp: CN-ĐT01-K60
Email: ly.pth156011@sis.hust.edu.vn

Hà Nội, 1/2021
Nhận xét của thầy/cô giáo:

…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
Báo cáo thực tập công nghiệp 20201

MỤC LỤC
MỤC LỤC ........................................................................................................ 1
DANH MỤC HÌNH ẢNH ............................................................................... 2
A. LỜI NÓI ĐẦU ......................................................................................... 3
B. NỘI DUNG .............................................................................................. 4
CHƯƠNG I: GIỚI THIỆU VỀ CÔNG TY TNHH PHẦN MỀM FPT . 4
1.1. Giới thiệu về tổng công ty FPT ................................................... 4
1.1.1. Giới thiệu chung về FPT .......................................................... 4
1.1.2. Công ty thành viên ................................................................... 5
1.1.3. Thành phần ban lãnh đạo ......................................................... 6
1.2. Giới thiệu về công ty TNHH phần mềm FPT (FPT Software) 7
1.2.1. Giới thiệu chung về FPT Software .......................................... 7
1.2.2. Chức năng, nhiệm vụ của công ty FPT Software ..................... 9
1.2.3. Cơ cấu tổ chức của FPT Software (FSoft) ............................. 10
CHƯƠNG 2: NỘI DUNG THỰC TẬP KIỂM THỬ DỰ ÁN ISR (ỨNG
DỤNG QUẢN LÝ TỐN KHO) ................................................................ 11
2.1. Các khái niệm cơ bản về kiểm thử phần mềm ........................... 11
2.1.1. Tổng quan về phần mềm ........................................................ 11
2.1.2. Quy trình phát triển phần mềm .............................................. 12
2.1.3. Kiểm thử phần mềm là gì? ..................................................... 14
2.1.4. Các phương pháp kiểm thử .................................................... 15
2.1.5. Các chiến lược kiểm thử ........................................................ 16
2.1.6. Các cấp độ kiểm thử .............................................................. 17
2.2. Dự án ISR - Ứng dụng quản lý tồn kho ................................... 21
2.2.1. Chức năng .............................................................................. 21
2.2.2. Mục tiêu ................................................................................. 21
2.2.3. Yêu cầu .................................................................................. 21
2.2.4. Thực hiện kiểm thử và đánh giá ............................................ 22
PHẦN 3: NHẬN XÉT, ĐỀ XUẤT ........................................................... 25
C. KẾT LUẬN ............................................................................................ 26
TÀI LIỆU THAM KHẢO ............................................................................ 27
Page | 1
Báo cáo thực tập công nghiệp 20201

DANH MỤC HÌNH ẢNH

Hình 1.1. Mạng lưới hoạt động của FPT .......................................................... 5


Hình 1.2. Sơ đồ công ty thành viên của FPT .................................................... 5
Hình 1.3. FPT Software .................................................................................... 7
Hình 1.4. F-Ville 1- Địa điểm thực tập ............................................................. 8
Hình 1.5. F-Ville 2 ............................................................................................ 9
Hình 2.1. Sơ đồ quan hệ giữa quy trình phát triển phần mềm và kiểm thử
phần mềm ........................................................................................................ 14
Hình 2.2. Các cấp độ kiểm thử........................................................................ 17
Hình 2.3. Màn hình hệ thống .......................................................................... 24

Page | 2
Báo cáo thực tập công nghiệp 20201

A. LỜI NÓI ĐẦU


Đầu tiên em xin gửi lời cảm ơn chân thành đến thầy cô trong viện Điện Tử -
Viễn Thông đã truyền đạt những kiến thức, kinh nghiệm quý báu trong suốt những
năm học qua và tạo điều kiện cho em được thực tập theo nguyện vọng tại đơn vị
GAM.VN.TCA – F-Ville 1 công ty TNHH phần mềm FPT.
Thực tập tốt nghiệp cử nhân là một trong những môn học bắt buộc trong chương
trình đào tạo của viện Điện Tử Viễn Thông trường Đại học Bách Khoa Hà Nội. Học
phần này có mục đích giúp sinh viên được trực tiếp trải nghiệm, học tập, tìm hiểu
môi trường làm việc thực tế trong các công ty, doanh nghiệp. Đồng thời giúp cho
sinh viên định hướng được rõ hơn về nghề nghiệp, công việc sau khi tốt ngiệp.
Thực tập công nghiệp cũng là một cơ hội lớn hơn cho sinh viên khi được các doanh
nghiệp đánh giá kĩ năng, chấp nhận sau khi làm hồ sơ xin việc lúc đã tốt nghiệp.
Được sự đồng ý của viện Điện Tử Viễn Thông và Ban Giám Đốc công ty
TNHH phần mềm FPT, em đã hoàn thành đợt thực tập công nghiệp tại đơn vị
GAM.VN.TCA. Trong thời gian thực tập, phía công ty đã hết sức tạo điều kiện cho
sinh viên trong việc đi lại, phụ cấp, điều kiện làm việc và cơ sở vật chất phục vụ
cho quá trình thực tập. Đây là lần đầu tiên mà em được tìm hiểu về môi trường làm
việc thực tế ở một công ty và trực tiếp tham gia vào các công việc, em đã vô cùng
hào hứng và nỗ lực rèn luyện, tích lũy kinh nghiệm quý báu trong suốt thời gian
thực tập này, tuy nhiên vẫn không thể tránh khổi những khó khăn bỡ ngỡ ban đầu.
Em xin một lần nữa gửi lời cảm ơn chân thành đến các thầy cô viện Điện Tử
Viễn Thông, ban lãnh đạo công ty FPT Software đã đồng ý cho em được thực tập,
cảm ơn các anh/chị trong dự án ISR đã trực tiếp quản lý, trainning cho em, tạo điều
kiện giúp em hoàn thành được kì thực tập cũng như có một trải nghiệm đáng nhớ!

Page | 3
Báo cáo thực tập công nghiệp 20201

B. NỘI DUNG
CHƯƠNG I: GIỚI THIỆU VỀ CÔNG TY TNHH PHẦN MỀM FPT
1.1. Giới thiệu về tổng công ty FPT
1.1.1. Giới thiệu chung về FPT
Là tập đoàn công nghệ hàng đầu Việt Nam ,Ngày 27/10/1990, công ty đổi tên
thành công ty phát triển và đầu tư công nghệ (The Corporation for Financing and
Promoting Technology) với định hướng là một tập đoàn kinh tế tại Việt Nam với
lĩnh vực kinh doanh chính là cung cấp các dịch vụ liên quan đến công nghệ thông
tin. Theo VNReport thì đây là doanh nghiệp tư nhân lớn thứ 3 của Việt Nam trong
năm 2012.
Trong gần 27 năm phát triển, FPT luôn là công ty Công nghệ thông tin và Viễn
thông hàng đầu tại Việt Nam với doanh thu 28.647 tỷ đồng, tương đương 1,36 tỷ
USD (Báo cáo tài chính 2013), tạo ra hơn 17.000 việc làm và giá trị vốn hóa thị
trường (tại 28/2/2014) đạt 17.608 tỷ đồng, nằm trong số các doanh nghiệp tư nhân
lớn nhất tại Việt Nam (theo báo cáo của Vietnam Report 500).
Hiện nay, tại thị trường trong nước, FPT là công ty Công nghệ thông tin – Viễn
thông lớn nhất trong khu vực kinh tế tư nhân Việt Nam, đứng thứ 9 trong danh sách
50 công ty niêm yết tốt nhất tại việt Nam do Forbes đánh giá. Trên trường quốc tế,
FPT đứng thứ 57 trong top 100 nhà cung cấp dịch vụ ủy thác toàn cầu theo thống kê
của International Association of Outsorcing Professionals – IAOP, 2014
Với các lĩnh vực kinh doanh cốt lõi thuộc lĩnh vực Công nghệ thông tin và Viễn
thông, FPT cung cấp dịch vụ tới 62 tỉnh thành tại Việt Nam, không ngừng mở rộng
thị trường toàn cầu. Đến thời điểm hiện tại, FPT đã có mặt tại 19 quốc gia gồm:
Việt Nam, Lào, Thái Lan, Campuchia, Bangladesk, Myanmar, Indonesia,
Philippines, Malaysia, Singapore, Slovakia, Mỹ, Anh, Nhật Bản, Úc, Pháp,
Philippines, Đức, Kuwait.

Page | 4
Báo cáo thực tập công nghiệp 20201

Hình 1.1. Mạng lưới hoạt động của FPT


Trong suốt quá trình hoạt động, FPT luôn nỗ lực với mục tiêu cao nhất là mang
lại sự hài lòng cho khách hàng thông qua những dịch vụ, sản phẩm và giải pháp
công nghệ tối ưu nhất. Đồng thời, FPT không ngừng nghiên cứu và tiên phong trong
các xu hướng công nghệ mới góp phần khẳng định vị thế của Việt Nam trên bản đồ
công nghệ thế giới.
1.1.2. Công ty thành viên

Hình 1.2. Sơ đồ công ty thành viên của FPT

Page | 5
Báo cáo thực tập công nghiệp 20201

Có 7 công ty thành viên:


• Công ty THNN phần mềm FPT (FPT Software)
• Công ty TNHH Hệ thống Thông tin FPT (FPT Information System)
• Công ty Cổ phần Viễn Thông FPT (FPT Telecom)
• Công ty Cổ phần Dịch vụ Trực tuyến FPT (FPT Online)
• Công ty TNHH Giáo dục FPT (FPT Education)
• Công ty Đầu tư FPT (FPT Investment)
• Công ty TNHH FPT Smart Cloud (FPT Smart Cloud)
4 công ty liên kết:

• Công ty Cổ phần Chứng khoán FPT (FPT Securities)


• Công ty cổ phần Quản lý quỹ đầu tư FPT (FPt Capital)
• Công ty cổ phần Synnex FPT ( Synnex FPT)
• Công ty cổ phần Bán lẻ Kỹ thuật số FPT ( FPT Retail)
1.1.3. Thành phần ban lãnh đạo
• Hội đồng quản trị
Ông Trương Gia Bình - Chủ tịch Hội đồng quản trị FPT
Ông Bùi Quang Ngọc - Phó Chủ tịch Hội đồng quản trị
Ông Đỗ Cao Bảo - Ủy viên Hội đồng quản trị
Ông Lê Song Lai - Ủy viên Hội đồng quản trị không điều hành
Ông Jean Charles Belliol - Ủy viên Hội đồng quản trị độc lập
Ông Tomokazu Hamaguchi - Ủy viên Hội đồng quản trị độc lập
Ông Dan E Khoo - Ủy viên Hội đồng quản trị độc lập
• Ban điều hành
Ông: Nguyễn Văn Khoa - Tổng Giám đốc FPT
Ông: Nguyễn Thế Phương - Phó Tổng Giám đốc FPT kiêm CFO
Ông: Hoàng Việt Anh - Phó Tổng Giám đốc FPT kiêm Tổng Giám Đốc công
ty cổ phần viễn thông FPT
• Ban kiểm soát
Ông Nguyễn Việt Thắng – Trưởng Ban Kiểm soát

Page | 6
Báo cáo thực tập công nghiệp 20201

Bà Nguyễn Thị Kim Anh - Ủy viên Ban Kiểm soát


Ông Nguyễn Khải Hoàn - Ủy viên Ban Kiểm soát
1.2. Giới thiệu về công ty TNHH phần mềm FPT (FPT Software)
1.2.1. Giới thiệu chung về FPT Software

Hình 1.3. FPT Software

- Địa chỉ: Khu Công nghệ cao Hòa Lạc, Km 29 Đại Lộ Thăng Long, xã Tân
Xá, huyện Thạch Thất, Hà Nội.
- Được thành lập từ năm 1999
- Chủ tịch: Bà Chu Thị Thanh Hà.
- Địa chỉ Website: http://www.fpt-software.com

FPT Softwware là công ty thành viên của Tập đoàn FPT, sau 16 năm hoạt động
và phát triển, FPT Sowftware hiện là công ty xuất khẩu dịch vụ phần mềm lớn nhất
Đông Nam Á.
Trong giai đoạn 2019–2021, FPT sẽ tập trung vào hai mũi nhọn chính: Chuyển
đổi số toàn diện và đầu tư xây dựng những nền tảng mạnh mẽ, là cốt lõi cho việc
Page | 7
Báo cáo thực tập công nghiệp 20201

phát triển mô hình kinh doanh, mang lại lợi ích cho doanh nghiệp đa lĩnh vực và
người dân.Việc chuyển đổi số toàn diện được FPT thực hiện mạnh mẽ trong suốt
năm 2018, là tiền đề để FPT có bước nhảy vọt trong giai đoạn tiếp theo, với mục
tiêu:
Trở thành một Doanh nghiệp Số và là công ty hàng đầu thế giới về dịch vụ
Chuyển đổi Số.
Cùng sáng tạo đổi mới với khách hàng tại Việt Nam và trên thế giới, cung cấp
các giải pháp và dịch vụ giúp họ chuyển đổi thành Doanh nghiệp/Tổ chức Số.
Tích cực tham gia xây dựng Chính phủ Số, Giao thông Thông minh, Y tế Thông
minh, Giáo dục Thông minh, Năng lượng Thông minh, Viễn thông Thông minh,
Sản xuất Thông minh.
Đáp ứng nhu cầu và sở thích của hàng chục triệu người dùng mọi nơi, mọi lúc
chỉ bằng những cái chạm tay trên các thiết bị số cá nhân.
Khách hàng của FPT Software nằm ở nhiều quốc gia ở Châu Á, EU, Mỹ và
Nhật Bản.
Fsoft có không gian làm việc xanh sạch đẹp, bao gồm 2 khu làm việc là
F-Ville1 và F-Ville 2.

Hình 1.4. F-Ville 1- Địa điểm thực tập

Page | 8
Báo cáo thực tập công nghiệp 20201

Hình 1.5. F-Ville 2


Fsoft có giờ giấc làm việc thoải mái,không yêu cầu đồng phục đi làm đối với
nhân viên, có nhà trông trẻ cho các cán bộ nhân viên có con nhỏ, có phòng y tế,
phòng nghỉ dành cho nhân viên ON, ngoài ra còn có các không gian thư giãn sau
giờ làm việc mệt mỏi như bể bơi, sân bóng, phòng tập Gym, phòng tập yoga dành
cho nhân viên. Với mục tiêu đảm bảo sức khỏe, tâm lý thoải mái, mang lại hiệu quả
công việc cao nhất khi đến Fsoft làm việc.

1.2.2. Chức năng, nhiệm vụ của công ty FPT Software

Chức năng: kinh doanh trong các lĩnh vực Dịch vụ điện toán đám mây, Công
nghệ di động, Phát triển ứng dụng và bảo trì, Kiểm thử chất lượng phần mềm và
Chuyển đổi công nghệ phần mềm.
Nhiệm vụ:

- Làm khách hàng hài lòng: tận tụy với khách hàng và luôn phấn đấu để đáp
ứng tốt nhất những nhu cầu, vượt trên mọi mong đợi của họ.
- Con người là cốt lõi: tôn trọng nhân viên, tạo điều kiện hết mức cho các
thành viên phát triển tối đa tài năng , đóng góp cho tổ chức và được đãi ngộ xứng
đáng cả về vật chất và tinh thần.

Page | 9
Báo cáo thực tập công nghiệp 20201

- Chất lượng tốt nhất: đảm bảo chất lượng tốt nhất trong mỗi sản phẩm, mỗi
việc làm.
- Đề cao đạo đức kinh doanh: mỗi nhân viên là một đại diện của công ty, có
nghĩa vụ tuân thủ đạo đức kinh doanh, luôn hợp tác, cởi mở và thân thiện với đồng
nghiệp, đóng góp cho cộng đồng xã hội. Là động lực cho sự phát phát triển của
công ty.

1.2.3. Cơ cấu tổ chức của FPT Software (FSoft)


Ban lãnh đạo của Fsoft bao gồm: Chủ tịch Chu Thị Thanh Hà, TGĐ Phạm Minh
Tuấn và 6 giám đốc: giám đốc sản xuất, giám đốc chất lượng kiêm giám đốc Công
nghệ thông tin, giám đốc phát triển nguồn lực, giám đốc Công nghệ, giám đốc Tài
chính.

Cùng với đó, Fsoft cũng xây dụng mô hình hoạt động trong nội bộ với việc chia
thành 9 khối gồm: Phát triển kinh doanh; Sản xuất; Quản lý Chất lượng; Quản lý và
phát triển Nguồn Lực; Tài chính; Hệ thống thông tin; Công nghệ; Khối hỗ trợ cho
Ban Tổng giám đốc và Trung tâm dịch vụ chia sẻ.
Mô hình tổ chức mới của Fsoft được thiết kế theo chuẩn quốc tế của ngành dịch
vụ Công nghệ thông tin nhằm nâng cao năng suất, chất lượng, hiệu quả hoạt động
và dịch vụ khách hàng nhằm hướng tới mục tiêu tăng trưởng nhanh và bền vững.

Page | 10
Báo cáo thực tập công nghiệp 20201

CHƯƠNG 2: NỘI DUNG THỰC TẬP KIỂM THỬ DỰ ÁN ISR (ỨNG


DỤNG QUẢN LÝ TỐN KHO)
2.1. Các khái niệm cơ bản về kiểm thử phần mềm
2.1.1. Tổng quan về phần mềm
a. Định nghĩa
Có nhiều định nghĩa về phần mềm, sau đây là một vài định nghĩa tiêu biểu:
- Phần mềm máy tính gọi tắt là Software là một tập tập những câu lệnh hoặc chỉ
thị (Insstruction) đượ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, và các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm
vụ hay chức năng hoặc giải quyết một vấn đề vụ thể nào đó.
- Phần mềm là tập hợp của tất cả các câu lệnh do các nhà lập trình viết ra hướng
dẫn máy tính làm một số việc vụ thể nào đó, không như các thiết bị điện tử khác,
máy vi tính nếu không có phần mềm nó sẽ không hoạt động gì cả. Để có được phần
mềm các nhà lập trình phải sử dụng các ngôn ngữ lập trình để viết, sử dụng ngôn
ngữ lập trình để điều khiển máy tính.
b. Phân loại phần mềm
Có nhiều cách thức phân loại phần mềm, song có thể chia thành 2 loại chính như
sau:
❖ Theo phương thức hoạt động:
• Phần mềm hệ thống dùng để vận hành máy tính và các phần cứng máy
tính ví dụ như các hệ điều hành máy tính Windows, Linux, Unix, các thự
viện động (DLL- Dynamic linked library) của hệ điều hành, các trình
điều khiển (driver), phần sụn(fimware) và BIOS. Đây là các loại phần
mềm mà hệ điều hành liên lạc với chúng để điều khiển và quản lý các
thiết bị phần cứng.
• Phần mềm ứng dụng: để người sử dụng có thể hoàn thành một hay nhiều
công việc nào đó, ví dụ như các phần mềm văn phòng, phần mềm doanh
nghiệp, phần mềm quản lý nguồn nhân lực, phần mềm giáo dục, cơ sở dữ
liệu, phần mềm trò chơi, chương trình tiện ích hay các phần mềm độc hại.
• Các phần mềm dịch mã bao gồm trình biên dịch và trình thông dịch: các
loại chương trình này sẽ đọc các câu lệnh từ mã nguồn được viết bởi các
Page | 11
Báo cáo thực tập công nghiệp 20201

lập trình viên theo một ngôn ngữ lập trình và dịch nó sang dạng ngôn ngữ
máy mà máy tính có thể hiểu được, hay dịch nó sang một dạng khác như
là tập tin đối tượng (object file) và các tập tin thư viện (library file) và
các phần mềm khác có thể hiểu để vận hành máy tính thực thi các lệnh.
❖ Theo khả năng ứng dụng:
• Những phần mềm không phục thuộc, nó có thể được bán cho bất kỳ
khách hàng nào trên thị trường tự do. VD: phần mềm về cơ sở dữ liệu
như Oracle, đồ hoạ như Photoshop, soạn thảo và xử lý văn bản, bảng
tính,...
Ưu điểm: Thông thường là những phần mềm có khả năng ứng dụng rộng
rãi cho nhiều nhóm người sử dụng.
Khuyết điểm: Thiếu tính uyển chuyển, tuỳ biến.
• Những phần mềm được viết theo đơn đặt hàng hay hợp đồng của một
khách hàng cụ thể nào đó (một công ty, bệnh viện, trường học,...);
Ưu điểm: có tính tuỳ biến cao để đáp ứng được nhu cầu của một nhóm
người sử dụng nào đó.
Khuyết điểm: thông thường đây là những phần mềm ứng dụng chuyên
ngành hẹp.

2.1.2. Quy trình phát triển phần mềm


a. Quy trình là gì?
Quy trình có thể hiểu là phương pháp thực hiện hoặc sản xuất ra sản phẩm.
Tương tự như vậy, SEP chính là phương pháp phát triển hay sản xuất ra sản phẩm
phần mềm. Thông thường một quy trình bao gồm những yếu tố cơ bản sau:
• Thủ tục (Procedures)
• Hướng dẫn công việc (Activity Guidelines)
• Biểu mẫu (Forms/template)
• Danh sách kiểm định (Checklist)
• Công cụ hỗ trợ (Tools)
Với các nhóm công việc chính:
• Đặc tả yêu cầu (Requirements Specification): chỉ ra những “đòi hỏi” cho tất cả
những yêu cầu chức năng và phi chức năng.
Page | 12
Báo cáo thực tập công nghiệp 20201

• Phát triển phần mềm (Development): tạo ra phần mềm thoả mãn các yêu cầu
được chỉ ra trong “ Đặc tả yêu cầu”.
• Kiểm thử phần mềm (Validation/Testing): để bảo đảm phần mềm sản xuất ra
đáp ứng những đòi hỏi được chỉ ra trong “Đặc tả yêu cầu”
• Thay đổi phần mềm (Evolution): đáp ứng nhu cầu thay đổi của khách hàng.
Tuỳ theo mô hình phát triển phần mềm, các nhóm công việc được triển khai
theo những cách khác nhau. Để sản xuất cùng một sản phẩm phần mềm người ta có
thể dùng các mô hình khác nhau. Tuy nhiên không phải tất cả các mô hình đều thích
hợp cho mọi ứng dụng.
b. Các mô hình SEP
Các mô hình SEP còn được gọi là chu trình hay vòng đời phần mềm
(SLCSoftware Life Cycle). SLC là tập hợp các công việc và quan hệ giữa chúng với
nhau diễn ra trong quá trình phát triển phần mềm. Có khá nhiều mô hình SLC khác
nhau, trong đó một số được ứng dụng khá nhiều:
Các mô hình một phiên bản (Single –version model)
• Mô hình Waterfall
• Mô hình chữ V (V-model)
• Các mô hình nhiều phiên bản (Multi-version model)
• Mô hình mẫu (Prototype)
• Mô hình tiến hoá (Evolutionary)
• Mô hình lặp và tăng dần (Iterative and Ineremental)
• Mô hình phát triển ứng dụng nhanh (RAD)
• Mô hình xoắn ốc (Spiral)
• Mô hình phát triển dựa trên kiểm thử (Test Driven Development- TDD)

Page | 13
Báo cáo thực tập công nghiệp 20201

c. Mối quan hệ giữa truy trình phát triển phần mềm và kiểm thử phần
mềm

Hình 2.1. Sơ đồ quan hệ giữa quy trình phát triển phần mềm và kiểm
thử phần mềm
Phát triển phần mềm và kiểm thử phần mềm có mối quan hệ khăng khít với
nhau.
Phát triển phần mềm ngau từ những pha đầu tiên như phân tích yêu cầu, phân
tích thiết kế hệ thống,... phải được tiến hành kiểm thử một cách độc lập bởi một đội
ngũ có kinh nghiệm để nếu có phát hiện ra sai sót thì phải tiến hành sữa chữa kịp
thời, nếu càng để về sau mới phát hiện ra lỗi thì chi phí để sửa chữa là vô cùng lớn.

2.1.3. Kiểm thử phần mềm là gì?


Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới
những điều kiện xác định, quan sát và ghi lại các kết quả và đánh giá nó dưới một
khía cạnh nào đó của hệ thống hay thành phần đó. (Theo bảng chú giải thuật ngữ
của IEEE...của thuật ngữ kỹ thuật phần mềm- IEEE Standard Glossary of Software
Engineering Terminology)
Page | 14
Báo cáo thực tập công nghiệp 20201

Kiểm thử phần mềm là quá trình thực thi một chương trính với mục đích tìm lỗi.
Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần
mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho
người dùng thông tin về chất lượng của sản phẩm hay dịch vụ đó. Mục đích của
kiểm thử là tìm ra
Mục đích kiểm thử phần mềm là tìm ra lỗi hay khiếm khuyết phần mềm nhằm
đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau.
Tóm lại kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình
được thiết kế để đảm bảo máy tính thực hiện thep cái mà chúng đã được thiết kế để
làm, và không thực hiện bất cứ thứ gì không mong muốn. Đây là một pha quan
trọng trong quá trình phát triển hệ thống, giúp cho người xây dựng hệ thống và
khách hàng thấy được hệ thống mới đã đáp ứng được yêu cầu đặt ra hay chưa?

2.1.4. Các phương pháp kiểm thử


Có hai phương pháp kiểm thử chính là” Kiểm thử tĩnh và Kiểm thử động.
• Kiểm thử tĩnh – Stactic testing
Là phương pháp thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các đặc tả
bằng tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần lượt từng chi tiết
mà không cần chạy chương trình, kiểu kiểm thử này thường được sử dụng bởi
chuyên viên thiết kế người mà viết mã lệnh một mình.
Kiểm thử tĩnh cũng có thể được tự động hoá. Nó sẽ thực hiện kiểm tra toàn bộ
bao gồm các chương trình được phân tích bởi một trình thông dịch hoặc biên dịch
mà xác nhận tính hợp lệ về cú pháp của chương trình.
• Kiểm thử động – Dynamic testing
Là phương pháp thử phần mềm thông qua việc dùng máy chạy chương trình để
điều tra trạng thái tác động của chương trình. Đó là kiểm thử dựa trên các ca kiểm
thử xác định bằng sự thực hiện của đối tượng kiểm thử hay chạy các chương trình.
Kiểm thử động kiểm tra cách thức hoạt động của mã lệnh,, tức là kiểm tra sự
phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian. Trong kiểm
thử động, phần mềm phải thực sự được biên dịch và chạy. Kiểm thử động thực sự
bao gồm là việc với phần mềm, nhập các giá trị đầu vào và kiểm tra xem liệu đầu ra
có như mong muốn hay không. Các phương pháp kiểm thử động gồm có: Kiểm thử
Page | 15
Báo cáo thực tập công nghiệp 20201

Unit- Unit Tests, Kiểm thử tích hợp – Intergration Test, Kiểm thử hệ thống –
Systerm Test và kiểm thử chấp nhận sản phẩm – Accceptance Test.

2.1.5. Các chiến lược kiểm thử


Ba trong số những chiến lược kiểm thử thông dụng nhất bao gồm: kiểm thử hộp
đen, kiểm thử hộp xám, kiểm thử hộp trắng.
a. Kiểm thử hộp đen – Black Box
Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp đen, hướng dữ
liệu hay hướng vào ra. Kiểm thử hộp đen xem chương trình là một hộp đen. Mục
đích là hoàn toàn không quan tâm về cách cư xử và cấu trúc bên trong của chương
trình. Thay vào đó, tập trung vào tìm các trường hợp mà chương trình không được
thực hiện theo đặc tả của nó.
b. Kiểm thử hộp trắng – White Box
Là một chiến lược kiểm thử khác, trái ngược hoàn toàn với kiểm thử hộp đen,
kiểm thử hộp trắng hay kiểm thử hướng logic cho phép khảo sát cấu trúc bên trong
của chương trình. Chiến lược này xuất phát từ dữ liệu kiểm thử bằng sự kiểm thứ
tính logic của chương trình. Kiểm thử viên sẽ truy cập vào cấu trúc dữ liệu và giải
thuật bên trong chương trình (và cả mã lệnh thực hiện chúng).
Các phương pháp kiểm thử hộp trắng:
- Kiểm thử giao diện lập trình ứng dụng – API testing (Application
programming interface) là phương pháp kiểm thử của ứng dụng sử dụng các
API riêng tư và công khai.
- Bao phủ mã lệnh – code coverage: Tạo các kiểm tra để đáp ứng một số tiêu
chuẩn về bao phủ mã lệnh.
- Các phương pháp gán lỗi
- Các phương pháp kiểm thử hoán chuyển
- Kiểm thử tĩnh – Static testing: kiểm thử hộp trắng bao gồm mọi kiểm thử tĩnh.
Phương pháp kiểm thử hộp trắng cũng có thể được sử dụng để đánh giá sự hoàn
thành của một bộ kiểm thử mà được tạo cùng với các phương pháp kiểm thử hộp
đen. Điều này cho phép các nhóm phần mềm khảo sát các phần của một hệ thống ít
khi được kiểm tra và đảm bảo rằng những điểm chức năng quan trọng nhất đã được
kiểm tra.
Page | 16
Báo cáo thực tập công nghiệp 20201

c. Kiểm thử hộp xám – Gray box testting


Kiểm thử hộp xám đòi hỏi phải có sự truy cập tới cấu trúc dữ liệu và giải thuật
bên trong cho những mục đích thiết kế các ca kiểm thử, nhưng là kiểm thử ở mức
người sử dụng hay mức hộp đen. Việc thap tác với dữ liệu đầu vào và định dạng dữ
liệu đầu ra là không rõ ràng, không giống như một chiếc “hộp xám” với vì đầu vào
và đầu ra được rõ ràng ở bên ngoài “hộp đen”mà chúng ta vẫn gọi về hệ thống được
kiểm tra. Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp -
intergartion testing giữa 2 module mã lệnh được viết bởi 2 chuyên viên thiết kế
khác nhau, tỏng đó chỉ giao diện là được đưa ra để kiểm thử.

2.1.6. Các cấp độ kiểm thử


Kiểm thử phần mềm gồm có các cấp độ: Kiểm thử đơn vị, kiểm thử tích hợp,
kiểm thử hệ thống và kiểm thử chấp nhận sản phẩm.

Hình 2.2. Các cấp độ kiểm thử

a. Kiểm thử đơn vị - Unit test


Một đơn vị là một thành phần nhỏ nhất mà ta có thể kiểm thử. Ví dụ: các hàm
(Funtion), thủ tục (Procedure), lớp (Class) hay phương thức (Method) đều có thể
được xem là Unit. Unit test thường do lập trình viên thực hiện. Công đoặn này cần
được thực hiện càng sớm càng tốt trong giai đoạn viết code và xuyên suốt chu kỳ
phát triển phần mềm. Thông thường Unit test đòi hỏi kiểm thử viên có kiến thức về
thiết kế và code của chương trình. Mục đích của Unit test là bảo đảm thông tin được
Page | 17
Báo cáo thực tập công nghiệp 20201

xử lý và xuất (khỏi Unit) là chính xác, trong mối tương quan với dữ liệu nhập và
chức năng của Unit. Điều nầy thường đòi hỏi tất cả các nhánh bên trong Unit đều
được kiểm tra để phát hiện nhánh phát sinh lỗi. Một nhánh thường là một chuỗi các
lệnh được thực thi trong một Unit. Ví dụ: chuỗi các lệnh sau điều kiện If và nằm
giữa then... else là một nhánh.
b. Kiểm thử tích hợp – Integration test
Integration Test kết hợp các thành phần của một ứng dụng và kiểm thử như một
ứng dụng đã hoàn thành. Trong khi Unit test kiểm tra các thành phần và Unit riêng
lẻ thì Integration Test lại kết hợp chúng lại với nhua và kiểm tra sự giao tiếp giữa
chúng.
Hai mục tiêu chính của Integration test:
- Phát hiện lỗi xảy ra giữa các Unit
- Tích hợp các Unit đơn lẻ thành các hệ thống nhỏ và cuối cùng là hệ thống hoàn
chỉnh chuẩn bị cho kiểm thử ở mức hệ thống (System test)
- Có 4 loại kiểm thử trong Integration test:
- Kiểm thử cấu trúc (Structure Test): Tương tự White box test, kiểm thử cấu trúc
nhằm bảo đảm các thành phần bên trong của một chương trình chạy đúng và chú
trọng đến hoạt động của các thành phần cấu trúc nội tại của chương trình chẳng hạn
các câu lệnh và nhánh lệnh bên trong.
- Kiểm thử chức năng (Functional Test): Tương tự như Black box test kiểm thử
chức năng thì chỉ chú trọng đến chức năng của chương trình mà không quan tâm
đến cấu trúc bên trong, chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ
thuật.
- Kiểm thử hiệu năng (Performance Test): Kiểm thử việc vận hành của hệ thống.
- Kiểm thử khả năng chịu tải (Stress Test): Kiểm thử các giới hạn của hệ thống.
c. Kiểm thử hệ thống- System Test
Mục đích System test là kiểm thử thiết kế và toàn bộ hệ thống (sau khi tích hợp)
có thoả mãn yêu cầu đặt ra hay không.
System test bắt đầu khi tất cả các bộ phận của phần mềm đã được tích hợp thành
công. Thông thường loại kiểm thử này tốn rất nhiều công sức và thời gian. Trong
nhiều trường hợp, việc kiểm thử đòi hỏi một số thiết bị phụ trợ, phần mềm hoặc

Page | 18
Báo cáo thực tập công nghiệp 20201

phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ thống phân bố hoặc
hệ thống nhúng. Ở mức độ hệ thống, người kiểm thử cũng phải tìm kiếm các lỗi,
nhưng trọng tâm là đánh giá về hoạt động, sự tin cậy và các yêu cầu khác của toàn
hệ thống.
Điểm khác nhau then chốt giữa Integration test và System test là System test chú
trọng các hành vi và lỗi trên toàn hệ thống, còn Integration Test chú trọng sự giao
tiếp giữa các đối tượng khi chúng làm việc cùng với nhau.
System test kiểm thử cả các hành vi chức năng của phần mềm lẫn các yêu cầu
về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảo mật. Sau
giai đoạn System Test, phần mềm thường đã sẵn sàng cho khách hàng hoặc người
dùng cuối cùng kiểm thử chấp nhận sản phẩm (Acceptance Test) hoặc dùng thử
Alpha/Beta test).
Đòi hỏi nhiều công sức, thời gian và tính chính xác, khách quan, System test
thường được thực hiện bởi một nhóm kiểm thử viên hoàn toàn độc lập với nhóm
phát triển dự án. Bản thân System test lại gồm nhiều loại kiểm thử khách nhau phổ
biển nhất gồm:
- Kiểm thử chức năng, luồng nghiệp vụ (Functional test): Bảo đảm các hành vi
của hệ thống thoả mãn đúng yêu cầu thiết kế. Test sẽ ưu tiên kiểm tra các dữ liệu
hợp lệ (Valid data), luồng nghiệp vụ (Flow) trước rồi sau đó chuyển lỗi cho phía
phát triển. Sau khi kiểm tra phần dữ liệu hợp lệ, luồng nghiệp vụ ổn định thì tester
mới tiến hành kiểm tra các trường hợp dữ liệu không hợp lệ (Invalid).
Test chức năng đảm bảo các yêu cầu sau:
• Nhập dữ liệu hợp lệ thì chương trình phải cho nhập
• Luồng nghiệp vụ phải đúng
• Quá trình xử lý dữ liệu và kết quả đầu ra phải đúng
• Phục hồi được dữ liệu
• Kiểm tra với các điều kiện gây lỗi, nhập sai dữ liệu, các giá trị ngoài phạm vi
hệ thống phải đưa ra thông báo lỗi.
- Kiểm thử hiệu năng (Performance Test): Bảo đảm tối ưu việc phân bổ tài
nguyên hệ thống (ví dụ bộ nhớ) nhằm đạt các chỉ tiêu như thời gian xử lý hay đáp
ứng câu truy vấn...

Page | 19
Báo cáo thực tập công nghiệp 20201

- Kiểm thử khả năng chịu tải (Stress test hay Load test): Bảo đảm hệ thống vận
hành đúng dưới áp lực cao (ví dụ nhiều người truy xuất cùng lúc).
Stress test tập trung vào các trạng thái tới hạn, các “điểm chết”, các tình huống
bất thường như đang giao dịch thì ngắt kết nối(xuất hiện nhiều trong kiểm tra thiết
bị như POS,, ATM...)...
- Kiểm thử kiểm tra giao diện người dùng (User Interface Test)
Test giao diện người dùng trên các chức năng phải đảm bảo:
• Giao diện người dùng phải phản ảnh được đầy đủ các chức năng mà người
dùng yêu cầu bao gồm các cửa sổ lệnh, các trường dữ liệu và phương thức tiếp cận
các chức năng đó (phím tab, dùng chuột và các phím tắt)
• Các đối tượng cửa sổ và các đặc tính như menu, kích thước, vị trí và focus
theo yêu cầu và theo tiêu chuẩn.
• Các tiêu đề, nội dung, các Control trên form phải đúng chính tả.
• Hài hoà bố cục màu sắc và phân bố vị trí các control sao cho hợp lý.
- Kiểm thử bảo mật (Security test): Bảo đảm tính toàn vẹn, bảo mật của dữ liệu
và của hệ thống.
- Kiểm thử khả năng phục hồi (Recovery Test): Bảo đảm hệ thống có khả năng
khôi phục trạng thái ổn định trước đó trong tình huống mất tài nguyên hoặc dữ liệu;
đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến.
Lưu ý là không nhất thiết phải thực hiện tất cả các loại kiểm thử nêu trên. Tuỳ
yêu cầu và đặc trưng của từng hệ thống, tuỳ khả năng và thời gian cho phép của dự
án, khi lập kế hoạch, người Quản lý dự án sẽ quyết định áp dụng những loại kiểm
thử nào.
d. Kiểm thử chấp nhận sản phẩm – Acceptance Test
Thông thường sau giai đoạn System test là Acceptance test được khách hàng
thực hiện (hoặc uỷ quyền cho một nhóm thứ ba thực hiện). Mục đích của
Acceptance Test là để chứng minh phần mềm thoả 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 (và trả tiền thanh toán hợp đồng).
Acceptance test có ý nghĩa hết sức quan trọng, mặc dù trong hầu hết mọi trường
hợp, các phép thử của System test và Acceptance Test gần như tương tự, nhưng bản
chất và cách thức thực hiện lại rất khác biệt.

Page | 20
Báo cáo thực tập công nghiệp 20201

Đối với những sản phẩm dành bán rộng rãi trên thị trường cho nhiều người sử
dụng, thông thường sẽ thông qua hai loại kiểm thử gọi là kiểm thử Alpha – Alpha
test và kiểm thử Beta- Beta test. Với Alpha test, người dùng kiểm thử phần mềm
ngay tại nơi phát triển phần mềm, lập trình viên sẽ ghi nhận các lỗi hoặc phản hồi,
lên kế hoạch sửa chữa. Với Beta test phần mềm sẽ được gửi tới cho người dùng để
kiểm thử ngay trong môi trường thực, lỗi hoặc phản hồi sẽ được gửi lại cho lập
trình viên để sửa chữa.
Gắn liền với giai đoạn Acceptance test thường là một nhóm những dịch vụ đi
kèm, phổ biến như hướng dẫn cài đặt, sử dụng,... Tất cả tài liệu đi kèm phải được
cập nhật và kiểm thử chặt chẽ.
e. Một số cấp độ kiểm thử khác
Ngoài các cấp độ trên, còn một số cấp độ kiểm thử khác như:
Kiểm thử hồi quy – Regression Testing
Kiểm thử tính đúng – Correctness testing

2.2. Dự án ISR - Ứng dụng quản lý tồn kho


2.2.1. Chức năng
ISR là một phần mềm quản lý tồn kho sản phẩm, hàng hóa cho phép nhập vào
và quản lý các loại sản phẩm, nguyên liệu, pallet được mã hóa dưới dạng các tag ID
là barcode hoặc mã QRcode.

2.2.2. Mục tiêu


Ứng dụng quản lý tồn kho cho phép người dùng quản lý một cách dễ dàng các
sản phẩm, nguyên liệu được nhập vào kho, quá trình di chuyển của nguyên liệu
giữa các kho,...

2.2.3. Yêu cầu


Theo yêu cầu, phần mềm phải bao gồm các chức năng:
- Nhập hàng
- Di chuyển
- Thay đổi
- Chất hàng
- Hủy

Page | 21
Báo cáo thực tập công nghiệp 20201

- Refer
- Xuất hàng
Yêu cầu về giao diện màn hình theo đúng như thiết kế trong tài liệu

2.2.4. Thực hiện kiểm thử và đánh giá


a. Các công việc được giao trong dự án
- Study BD: Đọc hiểu tài liệu về dự án, study thiết kế chi tiết và cách vận hành
của hệ thống. Nắm rõ các chức năng của hệ thống, các điều kiện input, output, các
step xử lý của hệ thống.
- Viết ITC (Integration Test Case): Dựa vào BD để hiểu được cách vận hành và
các step xử lý của hệ thống. Từ đó đưa ra các trường hợp có thể xảy ra để đưa vào
kiểm thử để đảm bảo hệ thống vận hành theo đúng yêu cầu của khách hàng. Tester
thực hiện viết test case dựa vào viewpoint list của dự án.
- Run test case (ITR): Dựa vào những test case đã viết và thực hiện kiểm thử
trên hệ thống.
b. Thực hiện test
Thực hiện test giao diện và các chức năng của hệ thống.
Tạo test case cho các màn hình, các chức năng theo yêu cầu của
khách hàng:

Page | 22
Báo cáo thực tập công nghiệp 20201

Page | 23
Báo cáo thực tập công nghiệp 20201

Hình 2.3. Màn hình hệ thống

Trong quá trình test mà có phát hiện ra lỗi thì Tester sHình 0.1ẽ logbug lên hệ thống,
mô tả chi tiết về bug và assign cho dev.

Page | 24
Báo cáo thực tập công nghiệp 20201

PHẦN 3: NHẬN XÉT, ĐỀ XUẤT


3.1. Ưu điểm
- Chăm chỉ, kiên trì, hoàn thành báo cáo hàng ngày và hàng tuần.
- Ham học hỏi, tiếp thu nhanh
- Làm tốt công việc được giao
- Hoà đồng với mọi người
3.2. Khuyết điểm
- Quản lý thời gian chưa hợp lý
3.3. Đề xuất
- Về nội dung training em muốn được hướng dẫn sâu hơn về Tester và được
học thêm về BA. Em xin cảm ơn!

Page | 25
Báo cáo thực tập công nghiệp 20201

C. KẾT LUẬN
Kỳ thực tập công nghiệp này thực sự rất bổ ích đối với các bạn sinh viên Viện

Điện tử Viễn thông nói chung và với cá nhân em nói riêng. Qua quá trình thực
tập ở Công ty TNHH phần mềm FPT, em đã được tích luỹ kiến thức về kiểm thử
phần mềm, được training và tham gia vào dự án cùng các anh chị cũng như định
hướng được công việc sau này.

Để hoàn thành báo cáo này em xin bày bỏ lòng biết ơn đến Ban Giám đốc đã tạo
điều kiện cho em được thực tập, sự giúp đỡ tận tình của anh Lê Văn Các

(PM) và chị Nguyễn Thị Thu (Test Leader), chị Nguyễn Thị Ngoan cùng với sự
giúp đỡ của các anh chị trong công ty. Do tiếp cận với kiến thức cũng như công
việc mới, bản thân còn nhiều hạn chế nên không tránh khỏi những sai sót khi làm
báo cáo này nên mong các thầy cô góp ý cho em những nhận xét quý báu để bản
báo cáo này được hoàn thiện hơn.

Cuối cùng em xin cảm ơn các thầy cô trong Viện Điện tử Viễn thông đã tạo điều
kiện để cho em có đợt thực tập đầy ý nghĩa và bổ ích này. Em xin hứa sẽ cố gắng
hơn nữa trong quá trình học tập và rèn luyện bản thân để xứng đáng với sự kỳ vọng
của các thầy cô.

Hà Nội, ngày 27 tháng 1 năm 2021

Sinh viên
Phạm Thị Hương Ly

Page | 26
Báo cáo thực tập công nghiệp 20201

TÀI LIỆU THAM KHẢO

1. Tài liệu công ty


2. Tài liệu học Tester
3. https://fpt.com.vn/vi/ve-fpt/doi-ngu-lanh-dao/ban-dieu-hanh-cong-ty-
thanh-vien
4. Internet

Page | 27

You might also like