Sau ba năm học tập trên trường, mong muốn có thêm kinh nghiệm, tham gia vào một dự án thực tế, phát triển ứng dụng do người Việt sáng tạo, em đã quyết định thực tập taị KMS Technology, p
Trang 11
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
LẬP TRÌNH ỨNG DỤNG AUTOMATION
TESTING – KATALON
Công ty thực tập : KMS Technology Người phụ trách : Lương Anh Duy Thực tập sinh : Đinh Hoàng Luôn
TP Hồ Chí Minh, tháng 1 năm 2021
Lương Anh Duy Đinh Hoàng Luôn
2
Trang 2LỜI MỞ ĐẦU
Ngày nay, sự phát triển nhanh chóng của ngành công nghiệp phần mềm trong thời đại cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ dẫn đến sự ra đời của rất nhiều phần mềm với nghiệp
vụ phức tạp nhằm phục vụ nhu cầu phát triển của xã hội
Một phần mềm hoàn chỉnh cần phải đảm bảo chất lượng về độ chính xác, tính đúng đắn… riêng, phù hợp với mục đích và yêu cầu cụ thể Việc đảm bảo này cần được thực hiện trong quá trình phát triển phần mềm bởi đội ngũ kiểm thử phần mềm chuyên nghiệp Tuy nhiên, công việc kiểm thử khá phúc tạp đối với các hệ thống lớn, đòi hỏi phải có công cụ hỗ trợ đủ mạnh để đáp ứng nhu cầu của đội ngũ trên
Nắm bắt nhu cầu đó, rất nhiều tổ chức, công ty bắt tay vào phát triển các hệ thống, công cụ, phần mềm hỗ trợ tự động hoá kiểm thử Với những hứng thú với lĩnh vực được xem là mới nhưng rất cũ này, em bắt tay vào tìm hiểu các sản phẩm liên, trong đó có Katalon – Một sản phẩn được tạo
ra và phát triển bởi người Việt Nam
Sau ba năm học tập trên trường, mong muốn có thêm kinh nghiệm, tham gia vào một dự án thực tế, phát triển ứng dụng do người Việt sáng tạo, em đã quyết định thực tập taị KMS Technology, phát
triển phần mềm Katalon với môi trường làm việc chuyên nghiệp, sáng tạo
Lương Anh Duy Đinh Hoàng Luôn
3
LỜI CẢM ƠN
Trang 3Trân trọng gửi lời cảm ơn TNHH KMS Technology Việt Nam đã tạo điều kiện cho em có cơ hội thực tập tại công ty
Trong khoảng thời gian ngắn, nhờ sự chỉ dẫn nhiệt tình của anh chị trong Katalon team, em
đã tiếp thu được những kiến thức quan trọng trong quy trình phát triển phần mềm, phát triển và bảo trì một số tính năng của sản phẩm phần mềm thực tế
Đặc biệt gửi lời cảm ơn chân thành đến anh Lương Anh Duy, đã trainning kiến thức về Rich Client Platform, Git source control, giúp đỡ, hướng dẫn trong công việc và làm quen với môi trường mới… Cảm ơn anh Trần Nguyễn Minh Thông đã tranning Design Pattern, Clean Code, Junit,… Cảm ơn anh Huy đã cung cấp cho em những kiến thức quan trọng về Java để có thể thực hiện tốt công việc được giao
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 thực hiện báo cáo này
Đinh Hoàng Luôn TpHCM, ngày 1 tháng 1 năm 2021
Lương Anh Duy Đinh Hoàng Luôn
4
NHẬN XÉT CỦA KHOA
Trang 4
.
Lương Anh Duy Đinh Hoàng Luôn
5
MỤC LỤC
MỤC LỤC 5 LỜI
MỞ ĐẦU .2 LỜI
CẢM ƠN .3 Chương
Trang 51: Giới thiệu côpng ty thực tập 6
1 Giới thiệu công ty KMS 6 2
Sản phẩm của công ty 6
Chương 2: Nội dung thực tập 7
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7 2
Nghiên cứu kỹ thuật 7 3 Thực
hiện với project thực tế 9 4 Lịch làm
việc 10
Chương 3: Các phần đã thực hiện trong sản phẩm 13 1.
Giới thiệu về Katalon Studio 13 2 Một
số chức năng chính đã thực hiện 13
TÀI LIỆU THAM KHẢO 17
TỔNG KẾT 18
Lương Anh Duy Đinh Hoàng Luôn
6
Chương 1: Giới thiệu công ty thực tập
Trang 61 Giới thiệu công ty KMS Technology
KMS Technology được thành lập năm 2009, chuyên tư vấn, cung cấp giải pháp phần mềm, dịch vụ kiểm thử Sau 11 năm hoạt động, đến nay KMS Technology đã khẳng định vị thế của một công ty hàng đầu trong lĩnh vực này
Đội ngũ nhân viên lên đến hơn 1000 nhân viên, làm việc chủ yếu tại các văn phòng ở Việt Nam và Mỹ Công ty chủ yếu phân phối các sản phẩm phần mềm và giải pháp outsoursing, đầu tư vào việc phát triển và đưa các sản phẩm phần mềm ra thị trường quốc tế
2 Sản phẩm của công ty
Các sản phần của công chủ yếu là tư vấn, cung cấp giải pháp và gia công phần mềm cho đối tác trong và ngoài nước
Bên cạnh đó, KMS cũng phát hành các phần mềm của riêng mình:
- QASymphony: Cung cấp giải pháp kiểm thử phần mềm theo quy trình Agile cho khách hàng thuộc 2.000 tập đoàn lớn nhất thế giới (Global 2.000) như Cisco, IBM, Boeing, Visa, Amazon, Barclays, Adobe, Samsung, Verizon…
- Katalon Studio: Giải pháp kiểm thử tự động (test automation) thông minh - Kobiton: Nền tảng đám mây di động (mobile cloud) với chi phí hợp lý và dễ tiếp cận
so với dịch vụ tương tự do Amazon, Google, Xamarin và Sauce Labs cung cấp
Lương Anh Duy Đinh Hoàng Luôn
7
Chương 2: Nội dung thực tập
Quá trình thực tập từ 09/03/2020 đến 08/06/2020 tại KMS Technology tập trung vào 3 mảng nội dung chính: Tìm hiểu văn hoá công ty, quy trình làm việc và các thông tin liên quan Nhiên cứu công nghệ, kỹ thuật phục vụ công việc, kỹ năng phát triển bản thân Phát triển và bảo trì các tính năng của sản phẩm
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung: Giới thiệu công ty, các kỹ năng cần thiết trong quá trình làm việc
Buổi sáng:
Được nghe nhân sự giới thiệu về công ty, quá trình thành lập và phát triển, cơ cấu tổ chức công ty, quy trình làm việc chung của mọi nhân viên
Ngoài ra, được giới thiệu về thời gian làm việc tại văn phòng, các quy định khen
Trang 7thưởng, nghĩ lễ, nghĩ phép
Buổi chiều:
Nhận thiết bị, tài liệu liên quan đến công việc
Học và làm bài kiểm tra về security dành cho mọi nhân viên mới
Kết quả: Hiểu thêm về KMS Technology, cơ cấu tổ chức , thời gian làm việc, nghĩ lễ tại
công ty Hoàn thành bài kiểm tra dành cho nhân viên mới
2 Nghiên cứu kỹ thuật
2.1 Các công cụ và quy trình làm việc
Thời gian: 5 ngày
Nội dung: Trong thời gian này, supervisor đã hướng dẫn tìm hiểu các công cụ được sử
dụng trong quá trình làm việc
- Jira: Cách sử dụng, tạo và quản lí công việc trên Jira…
- Git: Cấu trúc, cơ chế lưu trữ và cách sử dụng git cơ bản, nâng cao…
- Eclipse IDE: Cách tổ chức và quản lí source code trên Eclipse, giới thiệu Rich Client Platform – Platform sử dụng trong phát triển sản phẩm
- Giới thiệu về quy trình Agile, Scrum Chi tiết quy trình Scrum hiện tại đang sử dụng
Thực hiện: Thực hành các phần mềm đã nêu trên sử dụng tài khoản git cá nhân, tài
khoản Jira trial, tạo project đơn giản với Rich Client Platform
Kết quả: Nắm được cách sử dụng Jira trong quản lí công việc, Git trong quản lí source
code, sử dụng Eclipse hỗ trợ phát triển sản phẩm Quy trình làm việc hiện tại trong công
ty
2.2 Tìm hiểu Design Pattern và Clean Code
Lương Anh Duy Đinh Hoàng Luôn
8
Thời gian 4 ngày
Nội dung: Tìm hiểu về các loại Design Pattern phổ biến, các tư tưởng và quy tắc chính
trong Clean Code Tìm hiểu maven, cài đặt và chạy project trên máy tính được cấp - Design Pattern: Do đã có kiến thức từ việc tự tìm hiểu trước đó nên công việc được thực hiện khá nhanh, chủ yếu xem cách tổ chức source code của phần mềm hiện tại
- Clean Code: Đọc hiểu tổng quan về clean code
- Tìm hiểu maven và cài đặt project: Khái niệm, lợi ích của maven, cách sử dụng một
số lệnh maven cơ bản Cài đặt các thư viện cần thiết và sử dụng maven build ra sản phẩm từ source code
Thực hiện: Thực hiện theo các nội dung như trên
Kết quả: Nắm được khái niệm về các Design Pattern phổ biến, tư tưởng và các quy tắc
trong clean code Sử dụng maven build thành công sản phẩm dựa trên source code hiện
có
2.3 Tìm hiểu Java nâng cao
Trang 8Thời gian: 5 ngày
Nội dụng: Ôn lại các kiến thức cơ bản và tìm hiểu các kiến thức nâng cao trong Java, tìm
hiểu cách sử dụng thư viện SWT, AWT trong lập trình giao diện ứng dụng
- Ôn lại OOP, cấu trúc dữ liệu và giải thuật
- Thao tác trên collection
- Stream data (luồng dữ liệu) và thao tác với file
- Kỹ thuật Reflection: Sử dụng trong việc truy cập vào một trường hoặc gọi một hàm của một class dựa vào tên, các đối số và kiểu dữ liệu của chúng
- Junit 5: Bộ thư viện hỗ trợ viết unit testing
Thực hiện: Tiến hành đọc cài tài liệu liên quan đến nội dung tìm hiểu
Kết quả: Kỹ năng lập trình được cải thiện, sử dụng thành thạo stream, đọc ghi file Nắm
kỹ thuật reflection và sử dụng được Junit
2.4 Lập trình giao diện với SWT, AWT và các dịch vụ Web
Thời gian: 5 ngày
Lương Anh Duy Đinh Hoàng Luôn
9
Nội dung: Tìm hiểu về các control trong SWT, AWT Các dịch vụ Web: SOAP và
RESTFul
- SWT, AWT: Bộ thư viện hỗ trợ lập trình giao diện ứng dụng sử dụng ngôn ngữ lập trình Java
- SOAP: Sử dụng cho việc truyền tải dữ liệu, sử dụng XML để xác định dữ liệu dạng văn bản qua HTTP và SMTP
- RESTful: Sử dụng đa dạng các kiểu định dnag văn bản khác nhau: CSV, JSON, RSS
Sử dụng URL cho việc gửi request
Thực hiện: Tiến hành đọc các tài liệu liên quan
Kết quả: Hiểu được công dụng và cách sử dụng SOAP, RESTful Sử dụng một số control
trong bộ thư viện SWT trong lập trình giao diện với Java
2.5 Tìm hiểu về Appium, Selenium và WinAppDriver
Thời gian: 4 ngày
Trang 9Nội dung: Tìm hiểu khái niệm, công dụng và cách cài đặt, sử dụng Appium, Selenium,
WinAppDriver
Thực hiện: Thực hiện tìm hiểu các nội dung như trên
Kết quả: Nắm được những kiến thức tổng quan nhất về Appium, Selenium và
WinAppDriver, cài đặt và sử dụng appium, selenium
3 Thực hiện với project thực tế
Sau gần một tháng được training và thực hành với một số kiến thức đẫ rìm hiểu, nắm được cơ bản về Java, Junit, SWT, AWT, SOAP web service, REST web service Trong 2 tháng kế tiếp, anh Lương Anh Duy đã tạo cơ hội áp dụng các kiến thức đã tìm hiểu được vào thực tiễn để thực hiện các tính năng và sửa lỗi phần mềm Katalon Studio
Nội dung chi tiết được mô tả ở phần sau
Lương Anh Duy Đinh Hoàng Luôn
10
4 Lịch làm việc
độ hoàn thành
Nhận xét của người hướng dẫn
1 - Tìm hiểu quy định
làm việc, hoàn thành bài kiểm tra dành cho nhân viên
- Nhận thiết bị, tài liệu liệu
- Tìm hiểu và sử dụng Git, Jira, Eclipse, Rich Client Platform
- Nắm bắt quy trình Agile/Scrum hiện tại đang sử dụng
Chị Nguyễn Huỳnh Thanh Thanh
Anh Lương Anh Duy
Trang 102 - Tìm hiểu Rich
Client Platform
- Tìm hiểu design pattern và cách sử dụng: facade, factory, builder singleton… - Nắm các quy tắc cần tuân thủ trong clean code
- Cài đặt, build và chạy thử phần mềm Katalon Studio với maven
Anh Trần Nguyễn Minh Thông
3 - Ôn lại OOP, cấu
trúc dữ liệu và giải thuật - Thao tác với file,
collection và stream data -Tìm hiểu và nắm
kỹ thuật reflection
- Học cách sử dụng Junit với Java
Anh Trần Nguyễn Minh Thông
Lương Anh Duy Đinh Hoàng Luôn
11
4 - Tìm hiểu và sử
dụng một số control
cơ bản của SWT, AWT
- Tìm hiểu 2 trong số các loại Web service Katalon Studio hỗ trợ: SOAP và REST
Anh Lương Anh Duy
5 + 6 - Tìm hiểu và sử
dụng của Appium (chỉ tìm hiểu công dụng),
Selenium, WinAppDriver
- Import WSDL file from local file
- Fix bug function getResponseText return empty string
Anh Lương Anh Duy
Trang 117 + 8 - Sửa lỗi các message
bị tràn màn hình
- Sửa và cải thiện một số màn hình gia diện - Hỗ trợ sử dụng biến trong việc gửi Web services request
- Tổ chức lại package Custom keywords (tổ chức dạng treeview, tự động cập nhật khi thêm package, lưu, thay đổi file trong package)
Anh Lương Anh Duy
Lương Anh Duy Đinh Hoàng Luôn
12
9 + 10
11 - Cập nhật Edge Chromium web driver
(sử dụng bonigarcia) - Support parameterized
in REST request endpoint
- Support global variable instead of value in web services request
- Add Katalon Record, Katalon Spy Extension to Edge Chromium
- Fix bug missing header when sending REST request
- Find the reason
‘Unable to ‘run from here’ when record web with IE Web Driver
Anh Lương Anh Duy
Trang 1212 Viết Unit test,
automation test (sử
Studio) cho các đoạn code đã viết
Anh Trần Nguyễn Minh Thông
Lương Anh Duy Đinh Hoàng Luôn
13
Chương 3: Các phần đã thực hiện trong sản phẩm
1 Giới thiệu về Katalon Studio
Katalon Studio là phần mềm automation testing đa nền tảng, hỗ trợ automation test trên desktop app, mobile app, web app và API Katalon Studio đã góp phần hoàn thiện quy tình phát triển phần mềm bằng những tính năng mạnh mẽ và hỗ trợ kiểm thử tự động trên nhiều nền tảng khác nhau
2 Một số chức năng chính đã thực hiện
2.1 Hỗ trợ sử dụng biến trong gửi web services
- Hỗ trợ biến global (biến định nghĩa trong profile), biến sử dụng trong từng request thay thế cho các giá trị được sử dụng lại nhiều lần
Trang 132.2 Cập nhật driver cho trình duyệt edge chromium
- Khi driver của trình duyệt web được sử dụng không phù hợp với phiên bản mới nhất của trình duyệt, người dùng cần sử dụng tính năng cập nhật driver trên Katalon Studio nhằm sử dụng cho tính năng Recorder, Spy
- Khi người dụng yêu cầu cập nhật driver mới nhất cho edge chromium browser,
hệ thống sẽ tìm kiếm phiên bản mới nhất phù hợp với hệ điều hành kiến trúc phần cứng (32bit, 64 bit) để tải xuống và lưu vào hệ thống của Katalon Studio.
Lương Anh Duy Đinh Hoàng Luôn
14
Trang 14Lương Anh Duy Đinh Hoàng Luôn
15
2.3 Cài đặt Katalon Recorder, Katalon Spy extension trên edge chromium - Microsoft
vừa ra mắt phiên bản mới của trình duyệt microsoft edge mang tên Edge Chromium, Katalon Studio mong muốn người dùng có thể sử dụng tính năng Record, Spy trên nhiều loại trình duyệt nhằm mang lại sự đa đạng về môi trường kiểm thử cho người dùng Vì vậy, cần phải
hỗ trợ tính năng Record, Spy trên trình duyệt này
Katalon Recorder:
Trang 15Lương Anh Duy Đinh Hoàng Luôn
16
Katalon Spy:
2.4 Tìm nguyên nhân không chạy được script Katalon record trên Microsoft
Trang 16Edge và cách khắc phục
- Tính năng Katalon Recorder vẫn record lại được các action, tuy nhiên không thể replay lại được các action dựa trên script đã record lại được và đôi khi xảy ra lỗi trong lúc record Vì vậy, cần phải tìm hiểu nguyên nhân và cách khắc phục lỗi đó để tính năng record hoạt động ổn định trên Microsoft Edge
Lương Anh Duy Đinh Hoàng Luôn
17
TÀI LIỆU THAM KHẢO
1 Jira:
https://confluence.atlassian.com/jiracoreserver073/getting-started-with-jira-core 861255635.html
2 Git:
https://git-scm.com/book/en/v2
3 Eclipse – Rich Client Platform:
http://wiki.eclipse.org/Rich_Client_Platform
4 Design pattern
https://www.tutorialspoint.com/design_pattern/index.htm
https://www.youtube.com/watch?v=v9ejT8FO
7I&list=PLrhzvIcii6GNjpARdnO4ueTUAVR9eMBpc
5 Clean code
https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29
6 Maven
https://maven.apache.org/install.html
7 Reflection
https://www.oracle.com/technical-resources/articles/java/javareflection.html 8.
Junit
https://junit.org/junit5/docs/current/user-guide/
9 SWT
Trang 17https://www.eclipse.org/swt/
10.AWT (Java docs)
https://docs.oracle.com/javase/7/docs/api/java/awt/package-summary.html
11.SOAP
https://www.w3schools.com/xml/xml_soap.asp
12.RESTful
https://www.tutorialspoint.com/restful/restful_introduction.htm
13.Appium
http://appium.io/docs/en/about-appium/getting-started/?lang=en
14.Selenium
https://www.selenium.dev/documentation/en/
15 WinAppDriver
https://github.com/microsoft/WinAppDriver
Lương Anh Duy Đinh Hoàng Luôn
18
TỔNG KẾT
Như vậy, sau gần ba tháng thực tập tại KMS Technology, em đã học được rất nhiều kiến thức về chuyên môn, quy trình và cách hoạt động của dự án thực tế đồng thời nâng cao kỹ năng lập trình của bản thân Bên cạnh đó, các kỹ năng hỗ trợ trong công việc như viết mail, trao đổi, thảo luận và làm việc nhóm cũng được cải thiện nhờ môi trường làm việc thực tế và chuyên nghiệp Trong suốt quá trình thực tập, những kiến thức đã học tại trường đã hỗ trợ rất nhiều trong công việc Nắm vững kiến thức nền tảng giúp em nắm bắt nhanh các công nghệ, kỹ thuật sử dụng trong project
Chỉ trong khoảng thời gian tương đối ngắn, em đã tích luỹ khối lượng lớn kiến thức, hiện thực các tính năng mới, cải thiện các tính năng đã có của sản phẩm được tin tưởng và sử dụng bởi nhiều công ty, doanh nghiệp, tập đoàn lớn trên thế giới Việc phát triển một sản phẩm được sử dụng rộng rãi trên toàn thế giới giúp em tiếp cận với hướng suy nghĩ, cách giải quyết vấn đề hoàn toàn mới, từ đó tích luỹ kinh nghiệm cho bản thân