TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
AUTOMATION TESTING
Công ty thực tập: Công ty TNHH Harvey Nash Việt Nam
Người phụ trách: Ms. Đoàn Thị Ngọc Hoa
Thực tập sinh: Nguyễn Thị Quỳnh Ngân
Tp. Hồ Chí Minh, ngày 15 tháng 9 năm 2021
LỜI MỞ ĐẦU
Kiểm thử phần mềm có mặt tại Việt Nam cách đây chưa lâu, nhưng có thể
nói trong thời gian gần đây, cùng với sự phát triển của ngành CNTT, đặc biệt là
lĩnh vực gia công và phát triển phần mềm, Kiểm thử phần mềm đang dần thu hút
sự quan tâm tìm hiểu của các bạn trẻ, đặc biệt là các bạn nữ.
Tester hay còn gọi là chuyên viên kiểm thử phần mềm, cơng việc của Tester
là tìm kiếm các lỗi của hệ thống phần mềm hoặc thẩm định, xác minh xem hệ
thống phần mềm có đáp ứng các yêu cầu kỹ thuật và yêu cầu nghiệp vụ hay khơng.
Cơng việc của Tester có thể chia ra 4 mức: Unit Test (Kiểm tra mức đơn vị),
Integration Test (Kiểm tra tích hợp), System Test (Kiểm tra mức hệ thống),
Acceptance Test (Kiểm tra chấp nhận sản phẩm) và khâu Regression Test (Kiểm tra
hồi quy). Chính vì vậy kiểm thử phần mềm là khâu sống còn của sản phẩm trước
khi đưa vào sử dụng, Tester là vị trí khơng thể thiếu và công việc này quyết định
khá nhiều vào sự thành công của dự án.
Quan trọng là vậy, nhưng hiện nay số lượng các Tester tại Việt Nam vẫn
chưa đáp ứng được nhu cầu của thị trường, các dự án phần mềm trên thế giới, trung
bình cứ 3 lập trình viên thì có 1 kiểm thử phần mềm, nhưng hiện nay, tỉ lệ này ở
Việt Nam đang là 5:1. Việt Nam được dự báo sẽ trở thành một nước mạnh về
CNTT, trong đó gia cơng phần mềm chiếm tỉ trọng lớn, do đó nhu cầu về nhân lực
Tester cũng được tăng theo. Tại hội nghị quốc tế về kiểm thử phần mềm tự động
(12/2011, TP HCM), các báo cáo cho thấy: với đà tăng trưởng mạnh mẽ của ngành
gia công phần mềm, trong vài năm tới, Việt Nam thiếu khoảng 10.000 Tester.[1]
Sau ba năm học tập tại trường, do mong muốn có thêm kinh nghiệm thực tế,
cũng như muốn được tham gia vào các công đoạn kiểm thử ở một công ty phần
mềm chuyên nghiệp, em có dự định là sẽ thực tập trong kỳ nghỉ hè. Vì vậy, em
tham gia khố đào tạo The Rookies, tổ chức bởi công ty NashTech để tích lũy thêm
kiến thức về testing nói chung và automation testing nói riêng.
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Harvey Nash Việt Nam đã tạo điều kiện
cho em có cơ hội được tham gia khoá đào tạo và thực tập tại công ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh
chị mentor, em đã tiếp thu được những kiến thức quan trọng để có thể tham gia vào
cơng đoạn kiểm thử phần mềm. Chân thành cảm ơn các anh chị trong nhóm trainer
đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập
này.
Đặc biệt cảm ơn chị Đoàn Thị Ngọc Hoa, đã training Cypress, hướng dẫn,
giúp đỡ em tận tình khi em gặp khó khăn trong cơng việc, giải đáp các thắc mắc và
góp ý tận tình để cải thiện phong cách lập trình của em; cảm ơn anh Phạm Phú
Vinh, đã training cho em bước đầu để tạo dựng 1 bộ testcase, cách tư duy và nhận
xét các testcase; cảm ơn các anh chị HR và mentor lớp Anh văn, các lớp Kỹ năng
mềm, đã chia sẻ những kinh nghiệm cùng phương pháp làm việc để em không bị
bối rối khi tham gia vào project thực tế; cảm ơn anh Nguyễn Nhật Trường, đã đồng
hành cùng team auto chúng em trong project thực tế.
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ
trợ, tạo điều kiện em làm bài báo cáo này.
Quỳnh Ngân
TpHCM, 15/09/2021
NHẬN XÉT CỦA KHOA
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
MỤC LỤC
Chương 1: Giới thiệu công ty thực tập
Giới thiệu cơng ty NashTech
Quy trình phát triển phần mềm tại NashTech
Chương 2: Nội dung thực tập
Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Nghiên cứu kỹ thuật
Các cơng cụ làm việc
Tìm hiểu về Test Case, Test Suite, Test Data
Tìm hiểu Selenium Webdriver
Tìm hiểu Robot Framework với RIDE, POM
Tìm hiểu Testing API
Thực hiện project
Lịch làm việc
Chương 3: Chi tiết về project
Giới thiệu về project
Thực hiện
Kế hoạch
Chương 1: Giới thiệu công ty thực tập
1. Giới thiệu cơng ty NashTech
Tập đồn Harvey Nash được thành lập năm 1988 tại UK, tập hợp những
chuyên gia trong lĩnh vực công nghệ, cung cấp giải pháp thông minh
nhằm tạo dựng giá trị thực tiễn cho khách hàng.[2]
NashTech Vietnam là thành viên của tập đoàn Harvey Nash, thành lập
trụ sở tại Hà Nội, Việt Nam vào năm 2000. Đến 2007, NashTech đã có
thêm chi nhánh tại Thành phố Hồ Chí Minh, với tổng đội ngũ nhân viên
lên đến 2500 người.
Ngày 31/12/2019, tổng tài sản của NashTech Vietnam (công ty mẹ) đạt
308,7 tỉ đồng, vốn chủ sở hữu ở mức 136,6 tỉ đồng, tăng trưởng lần lượt
11% và 10% so với thời điểm đầu năm, là đối tác của: Honda,
Prudential, Ford, Hitachi, HSBC, ANZ...
2. Quy trình phát triển phần mềm tại NashTech
Tại NashTech, quy trình phát triển phần mềm được thực hiện theo hai
mơ hình chính:
- Mơ hình phát triển tuần tự thống nhất RUP (rational unified process),
bao gồm các giai đoạn: Khởi tạo (inception), chế tạo (elaboration), xây
dựng (construction), chuyển giao (transition).
- Mơ hình phát triển lặp lại và tăng dần Scrum, dự án được chia thành
các giai đoạn (sprint), mỗi giai đoạn thường từ 2 đến 4 tuần và bao gồm
hết các giai đoạn trong RUP
Chương 2: Nội dung thực tập
Đợt thực tập The Rookies - Batch 2 với chủ đề “Kiểm thử phần mềm tự
động” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về kỹ năng
kiểm thử phần mềm, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm,
thuyết trình, giao tiếp. Tại cơng ty, sinh viên có cơ hội được học tập, khám phá và
làm việc trong một môi trường xây dựng và phát triển phần mềm chun nghiệp.
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Thời gian : 1 ngày
Sinh viên được cung cấp slide và video clip giới thiệu về công ty, cũng như
được hướng dẫn các vấn đề khác như thời gian, văn hoá và quy định làm
việc của công ty
Kết quả : Biết được thông tin về công ty và các quy định cần tuân thủ của
công ty.
Nội dung : Huấn luyện kỹ năng mềm
Thời gian : 4 buổi
Sinh viên được gặp gỡ các nhân sự trong cơng ty để tìm hiểu về một số kỹ
năng mềm khi làm việc trong môi trường công ty, vấn đề sắp xếp thời gian,
vấn đề giao tiếp và làm việc theo nhóm.
Kết quả : Phân bố thời gian khi làm việc, có thêm kỹ năng trao đổi bằng
giao tiếp hoặc qua email.
Nội dung : Tiếng Anh trong ngành Công nghệ thông tin
Thời gian : 2 buổi / tuần, xuyên suốt thời gian tham gia đào tạo
Sinh viên được học kiến thức về các khái niệm cơ bản trong ngành Công
nghệ thông tin, luyện tập giao tiếp, trao đổi bằng tiếng Anh.
Kết quả : Nâng cao khả năng sử dụng tiếng Anh khi làm việc trong công ty.
2. Nghiên cứu kỹ thuật
2.1.
Các công cụ làm việc
Thời gian : 2 ngày
Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong quá trình làm
việc.
Các mentor hỗ trợ sinh viên cài đặt các công cụ cần thiết khi làm việc,
cung cấp account cần thiết. Các công cụ làm việc như Teams (dùng để
trao đổi và nghe hướng dẫn), Skype (trao đổi thường xuyên và nhanh
chóng với các mentor), GitLab (bài tập luyện tập), Jira (luyện tập raise
bug), DevOps (quản lý team), SourceTree (hỗ trợ làm việc với repo
DevOps), VSCode (lập trình các test case automation đơn giản)
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Hoạt động trong team hiệu quả với các cơng cụ hỗ trợ.
2.2.
Tìm hiểu về Test Case, Test Suite, Test Data
Thời gian : 3 tuần
Nội dung : Làm quen với các khái niệm trong testing như Test Case, Test
Suite, Test Data, Test Plan,...Thực hiện viết 1 số test case lên spreadsheet.
Thực hiện :
- Xem các khái niệm và tiến hành viết testcase, chỉnh sửa theo góp ý
của các mentor.
Kết quả : 4 sheets testcase cho các chức năng: Search Employee,
Login-Logout-Forgot Password, Manage Project, Create Employee
2.3.
Tìm hiểu Selenium Webdriver
Thời gian : 1 tuần
Nội dung : Làm quen với công cụ Selenium Webdriver, tạo các test case
cho các sản phẩm web.
Thực hiện :
- Sử dụng Selenium Webdriver để tạo các test case cơ bản với website
/>
Kết quả :
- Các automation test case cơ bản với Selenium, một số bài tập luyện
tập với Selenium
2.4.
Tìm hiểu Robot Framework với RIDE, POM
Thời gian : 3 tuần
Nội dung : Sử dụng Robot framework để tạo các bộ test case automation
tùy chỉnh
Thực hiện :
- Sử dụng RIDE rồi chuyển sang VSCode
Kết quả :
- Sample project sử dụng Robot framework, có áp dụng POM
2.5.
Tìm hiểu Testing API
Thời gian : 2 tuần
Nội dung : Sử dụng Cypress để test API
Thực hiện :
- Sử dụng Cypress, tạo các API testcase
Kết quả :
- Bài tập API testing
3.
Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những
kiến thực cơ bản về CSS Selector, Selenium Webdriver, Robot framework,
API testing. Trong tháng thứ hai, thực tập sinh tham gia vào dự án, có làm
việc với dev và các PO, Scrum Master.
Chi tiết đồ án sẽ được nói ở phần sau.
4.
Lịch làm việc
Tuần
1
2
Cơng việc
- Tìm hiểu về cơng
ty, cách tổ chức
của cơng ty.
- Làm quen với các
công cụ làm việc
trong công ty.
- Học cách trao đổi,
làm
việc qua
email.
- Tìm
hiểu
về
Automation
testing
- Luyện tập viết test
case
- Các kỹ năng mềm
- Tìm hiểu về Test
Plan, Test Suite,
Test Case
Người hướng
dẫn
Chị Hoàng Thị
Yến, anh Phạm
Phú Vinh
Anh Phạm Phú
Vinh, các anh chị
của các lớp kỹ
năng mềm
Mức
độ
hoàn
thành
Nhận xét của
người hướng dẫn
3
4
5
6
7
8
9
10
11
12
- Luyện tập viết
test case
- Tìm
hiểu
về
Software Testing
Life Cycle
- Luyện tập viết
testcase
- Các kỹ năng mềm
Tìm hiểu về Robot
framework với RIDE
và POM
Làm bài tập Robot
framework, áp dụng
POm và sử dụng
VSCode
- Tham gia dự án thực
tế
- Làm quen với testing
API bằng Cypress API
và Cypress UI
Anh Phạm Phú
Vinh
Anh Phạm Phú
Vinh, các anh chị
của các lớp kỹ
năng mềm
- Làm bài tập Cypress
API, Cypress UI
- Review lại kiến thức
kỳ thực tập
- Review kiến thức kỳ
thực tập
- Bài thi cuối khoá
The Rookies
- Kết thúc khoá thực
tập
Chị Đoàn
Ngọc Hoa
Chị Đoàn
Ngọc Hoa
Thị
Chị Đoàn
Ngọc Hoa
Thị
Chị Đoàn Thị
Ngọc Hoa
Anh
Nguyễn
Nhựt Trường
Thị
Chị Hoàng Thị
Yến, chị Đoàn
Thị Ngọc Hoa
Chương 3: Chi tiết về project
1. Giới thiệu về project
Project thực hiện xây dựng một website quản lý hàng hoá, bao gồm 3 hệ
thống nhỏ là quản lý hàng hoá, quản lý dự án và quản lý người dùng.
Website thực hiện theo Scrum, có các thành phần là Scrum Master, PO,
developer team và testing team (bao gồm 2 QC và 3 Automation tester)
2. Thực hiện
3 thành viên của team automation tester MS2:
- Nguyễn Thị Quỳnh Ngân
- Trần Kim Long
- Nguyễn Trọng Kha
Và sự giúp đỡ tận tình của trainer Nguyễn Nhựt Trường.
3. Kế hoạch
Sprint 1:
- Nghiên cứu tài liệu SRS
- Bắt đầu khởi tạo project automation
- Làm quen với DevOps Azure
Kết quả : Project Automation trên DevOps, liên kết với các usecase của
developer team.
Sprint 2:
- Sử dụng VSCode, bắt đầu chạy các case integration testing cho các
tính năng đăng nhập và đăng ký.
- Hỗ trợ QC team kiểm tra các UI so với SRS
Kết quả : Test report, một số điều chỉnh trong UI và trao đổi với dev,
retrospective meeting với PO lần 1, sprint 2 bị ảnh hưởng bởi sprint 1 nên
kết thúc trễ 3 ngày.
Sprint 3:
- Sử dụng VSCode, chạy các case integration testing cho các tính năng
đăng nhập, đăng ký. Automation test các chức năng Tìm kiếm người
dùng, xố người dùng
- Hỗ trợ QC team kiểm tra các UI so với SRS
Kết quả : Test report cho tính năng Tìm kiếm người dùng, xoá người dùng
Sprint 4:
- Sử dụng VSCode, chạy các case integration testing cho các tính năng
đăng nhập, đăng ký, Tìm kiếm người dùng, xố người dùng.
Automation test các chức năng Tạo người dùng, Tìm kiếm dự án
- Tiến hành mapping các bug report, issue report trên DevOps vào các
use case.
Kết quả : Test report cho tính năng Tìm kiếm người dùng, xố người dùng,
Tạo người dùng, Tìm kiếm dự án, retrospective meeting với PO lần 2.
TÀI LIỆU THAM KHẢO
[1]“Thực trạng nghề Tester tại Việt Nam”, 2015 [Trực tuyến]. Địa chỉ:
[Truy
cập 18/09/2021].
[2]”Hành trình 20 năm tại Việt Nam của NashTech”, 2021 [ Trực tuyến ]. Địa
chỉ:
/>ml. [Truy cập 18/09/2021]
TỔNG KẾT
Như vậy, chỉ trong vòng một tháng ngắn ngủi, nhóm đã kịp hồn thành một
game 3D chạy trên nền tảng PC và Android. Game đã có khá đầy đủ các tính năng
đã đề ra ban đầu. Do thời gian có hạn nên tính năng game cịn đơn giản, hình ảnh
chưa được đẹp như mong đợi. Nhưng do game phát triển theo framework có tính
kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn.
Chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer Gameloft, sự nỗ
lực của nhóm Beast Knight để có thể hồn thành game này. Cảm ơn thầy Nguyễn
Hữu Thương đã giúp em hoàn thành bài báo cáo này.