KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP PHÁT TRIỂN ỨNG DỤNG JAVA Công ty thực tập: KMS Technology Vietnam Người phụ trách: Lương Anh Duy Thực tập sinh: 16520825 - Hồ Thái Ngọc TP...
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
PHÁT TRIỂN ỨNG DỤNG JAVA
Công ty thực tập: KMS Technology Vietnam
Người phụ trách: Lương Anh Duy
Thực tập sinh: 16520825 - Hồ Thái Ngọc
TP Hồ Chí Minh, tháng 08 năm 2020
Trang 2KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
PHÁT TRIỂN ỨNG DỤNG JAVA
Công ty thực tập: KMS Technology Vietnam
Người phụ trách: Lương Anh Duy
Thực tập sinh: 16520825 - Hồ Thái Ngọc
TP Hồ Chí Minh, tháng 08 năm 2020
Trang 3Ngày nay, với sự phát triển mạnh mẽ của xã hội thì công nghệ là một phần không thể thiếu Công nghệ phần mềm là một trong số đó, nó có tiềm năng phát triển rất lớn, ngành phát triển nhanh nhất hiện nay và nhu cầu tuyển dụng đang tăng rất mạnh ở khắp mọi nơi trên thế giới Các xu thế hiện đại trong lĩnh vực: Internet of things (IOT), xác thực không cần mật khẩu, trí thông minh nhân tạo (AI) đang được chú trọng bởi các công ty công nghệ trên thế giới, Việt Nam là một trong số đó
Là sinh viên ngành công nghệ phần mềm, việc tiếp cận với một môi trường phát triển phần mềm chuyên nghiệp là điều cấp thiết, qua đó hình thành thế giới quan, có cái nhìn mang tính chiến lược, ước tính ưu điểm và hạn chế của các công nghệ dùng để phát triển phần mềm Vì vậy, em quyết định chọn KMS Technology - một môi trường
lý tưởng, hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện dự định này
Trang 4Trân trọng gửi lời cảm ơn KMS Technology Vietnam đã tạo điều kiện cho em
có cơ hội được 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 nhóm hướng dẫn, em đã tiếp thu được những kiến thức quan trọng để có thể xây dựng phần mềm ứng
dụng dựa trên nền tảng java Chân thành cảm ơn các anh chị trong Katalon Team đã bỏ
ra nhiều thời gian,công sức để hướng dẫn em hoàn thành chương trình thực tập
Đặc biệt cảm ơn anh Lương Anh Duy, đã training kỹ thuật, hướng dẫn, giúp đỡ
cho chúng em tận tình từ khó khăn trong công việc, đến những khó khăn việc thích ứng
với môi trường mới; cảm ơn anh Mr Huy, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật trong quá trình phát triển ứng dụng; cảm ơn anh Mr.Sơn và Mr.Tuan, đã chỉ dẫn
em về cách phân hoạch, lên kế hoạch, những kỹ năng không thể thiếu; để có thể phát
triển và bảo trì phần mềm Katalon Studio trong thời gian qua
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
Tên sinh viên thực hiện
16520825 - Hồ Thái Ngọc
TP Hồ Chí Minh, tháng 08 năm 2020
Trang 5MỤC LỤC
Mục lục 1
1 Giới thiệu công ty thực tập 2
1.1 Giới thiệu công ty KMS Technology Vietnam 2
1.2 Giới thiệu sản phẩm công ty 3
2 Nội dung thực tập 5
2.1 Tìm hiểu văn hóa công ty và kỹ năng cơ bản 5
2.2 Nghiên cứu kỹ thuật 5
2.2.1 Các công cụ làm việc 5
2.2.2 Nâng cao kiến thức lập trình, phát triển ứng dụng bằng ngôn ngữ Java 6
2.2.3 Tiếp cận UX/UI đảm bảo hiệu năng cho hệ thống bên dưới và trải nghiệm thân thiện cho người dùng 6
2.2.4 Quản lý dữ liệu trên nhiều hệ quản trị cơ sở dữ liệu 6
2.3 Thực hiện dự án 7
2.4 Lịch làm việc 7
3 Chi tiết về dự án 10
3.1 Giới thiệu dự án 10
3.2 Thực hiện dự án 10
3.3 Kế hoạch phát triển 11
3.3.1 Giai đoạn thực nghiệm 11
3.3.2 Giai đoạn phân tích kiến trúc 11
3.3.3 Giai đoạn phát triển 12
3.3.4 Giai đoạn bảo trì, sửa lỗi 17
3.3.5 Giai đoạn kiểm thử 17
4 Kết luận 18
4.1 Kết quả đạt được 18
4.2 Định hướng 18
5 Danh sách bảng 19
6 Danh sách hình ảnh 20
7 Tài liệu tham khảo 21
Trang 61 GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu công ty KMS Technology Vietnam
KMS Technology là nhà cung cấp phần mềm, dịch vụ thử nghiệm và tư vấn giải pháp Có trụ sở tại Atlanta, GA với các văn phòng ở California và Việt Nam Công ty xây dựng, cung cấp các giải pháp phần mềm hàng đầu trong ngành
KMS Technology cung cấp dịch vụ và giải pháp tối ưu phần mềm cho hơn 99% khách hàng là các công ty ở Mỹ với các dịch vụ: phát triển phần mềm theo yêu cầu, bảo trì hệ thống sản phẩm phần mềm, quản lý ứng dụng; kiểm thử và bảo đảm chất lượng phần mềm Đến nay nó đã mở rộng quy mô lên gần 1000 nhân viên trong đội ngũ nhân
sự của mình Những thành tựu đáng kể mà KMS Technology gặt hái được không phải công ty nào cũng dễ dàng có được (Table 1) Chất lượng vượt trội ở dịch vụ đã giúp cho KMS Technology 3 năm liền nhận giải thưởng Sao Khuê cho hạng mục: Dịch vụ gia công, xuất khẩu phần mềm xuất sắc
Hiện tại, công ty tập trung vào hai khía cạnh mang tính chiến lược:
- Software development services: Cung cấp sản phẩm giúp đẩy nhanh quá trình đưa phần mềm có chất lượng tiến vào thị trường
• Application Transformation
• Mobile App Development
• Ongoing Platform Maintenance
Hình 1 Công ty KMS Technology.
Trang 7Table 1 Các con số thống kê về KMS
Ra mắt vào năm 2015, Katalon là một công cụ automation test mã nguồn mở thiết
kế theo khung end-to-end automation platform Katalon Studio hỗ trợ web, API và mobile automation Hiện tại đã có hơn 65000 người sử dụng, được bình chọn 2019 &
2020 Gartner Customer's Choice
- Katalon Studio: Robust test generation on all platforms
- Katalon Runtime Engine: Smart execution engine for enhanced automation efficiency
- Katalon Analytics: AI-based analytics for automation true value
Hình 2 Dự án Katalon.
Trang 81.2.1.2 Kobiton
Sản phẩm hợp tác của KMS Technology và Kinetic Ventures Kobiton phát hành chính thức vào năm 2017 Nó là một nền tảng mobile testing, giúp tăng tốc độ phân phối và thử nghiệm các ứng dụng di động bằng cách hỗ trợ các mẫu thử nghiệm thủ công và tự động trên các thiết bị thực, hoặc áp dụng điện toán đám mây
Kobiton hiện đang bổ sung các tính năng mới, như ‘Record&Playback’ cho phép người dùng trong doanh nghiệp tạo dựng kịch bản kiểm thử trên hàng trăm thiết bị khác nhau, đồng thời kiểm soát lỗi hoặc sự cố có thể ảnh hưởng đến người dùng cuối bằng
AI Việc tích hợp AI là bước tiến quan trọng giúp doanh nghiệp áp dụng kiểm thử tự động ở quy mô lớn hơn Hiện tại có hơn 580 doanh nghiệp, 67000 người sử dụng
Hình 3 Dự án Kobiton.
Trang 92 NỘI DUNG THỰC TẬP
2.1 Tìm hiểu văn hóa công ty và kỹ năng cơ bản
Thời gian: 2 ngày
Thời gian: 1 tuần
Hình 4 UpStar Labs (KMS Technology)
Trang 10Nội dung: Người hướng dẫn yêu cầu thực tập sinh sử dụng các công cụ hỗ trợ cho quá
trình phát triển dự án
- Công cụ quản lý phiên bản (version control): GitHub, GitBash
- Công cụ phát triển phẩn mềm (IDE): Eclipse
- Công cụ giao tiếp: KMS - Workplace, Skyper
- Công cụ soạn thảo: Visual Studio Code, Notepad ++
Thực hiện:
- Nhận nhiệm vụ thông qua các Assignment trên GitHub hoặc trực tiếp từ người hướng dẫn, tạo phiên làm việc tương ứng, đóng góp mã nguồn (code) cho dự án Katalon Studio
- Mọi thông tin trao đổi qua KMS - Workplace
- Làm quen cách quản lý, soạn thảo, kiểm thử phần mềm từ các công cụ được yêu cầu
Kết quả: Thông thạo thao tác phụ vụ việc quản lý và phát triển mã nguồn các dự án đang được tham gia
2.2.2 Nâng cao kiến thức lập trình, phát triển ứng dụng bằng ngôn ngữ Java
Thời gian: 2 tuần
Nội dung: Được hướng dẫn các nguyên lý, mẫu thiết kế, các ngoại lệ trong Java Thực hiện: Áp dụng một số nguyên lý vào dự án Katalon Studio
Kết quả: Củng cố lại kiến thức Java Core, tiếp cận theo hướng đối tượng
2.2.3 Tiếp cận UX/UI đảm bảo hiệu năng cho hệ thống bên dưới và trải
nghiệm thân thiện cho người dùng
Thời gian: 1 tuần
Nội dung: Tìm hiểu chủ đề UX Writing
Thực hiện: Thiết kế giao diện, nội dung thông báo tuân theo các nguyên lý thiết kế cốt
lõi
Kết quả: Áp dụng cho quá trình thiết kế giao diện trong một phần nhỏ của dự án Katalon
Studio
2.2.4 Quản lý dữ liệu trên nhiều hệ quản trị cơ sở dữ liệu
Thời gian: 1 tuần
Nội dung: Sử dụng, thao tác tương tự với một số hệ quản trị CSDL trên cùng một bộ dữ
liệu thử nghiệm
Trang 11Thực hiện: Đánh giá sự phù hợp của từng loại dữ liệu với hệ quản trị CSDL, khảo sát
thuận lợi, khó khăn của SQL và NoSQL
Kết quả: Ứng dụng phát triển chức năng kiểm thử có sử dụng data
2.3 Thực hiện dự án
Sau một tháng được học tập và thực hành, thực tập sinh đã nắm được những kiến thức phục vụ cho phát triển dự án thực, có khả năng quản lý và hoàn thành công việc được giao
Trong tháng thứ hai, người hướng dẫn giúp thực tập sinh áp dụng những kiến thức sẵn có để mở rộng hoặc bảo trì một số chức năng trong dự án Katalon Studio đang song song giữa hai giai đoạn phát triển và phát hành
Trong tháng thứ ba, thực tập sinh được thực hành phát triển một vài chức năng từ giai đoạn thiết kế đến triển khai và kiểm thử Viết báo cáo phân tích kỹ thuật cho dự án Chi tiết sẽ được nói ở phần sau
- Tìm hiểu văn hóa
công ty, qui trình làm
việc, làm bài test
- Học trao đổi thông tin
Trang 13cho chức năng test –
data trong Katalon:
MySQL, MS SQL,
H2, MongoDB
dự án Katalon
Hoàn thành
10 - Thiết lập, kiểm soát
Exception trong java
Hoàn thành
12 - Thống kê các thư viện
trọng tâm được sử
dụng trong dự án
- Lập báo cáo kỹ thuật
và rủi ro phát sinh của
các thư viện mục tiêu
tổng kết
Hoàn thành
Trang 143 CHI TIẾT VỀ DỰ ÁN
3.1 Giới thiệu dự án
Katalon Studio, sản phẩm cung cấp các giải pháp và công cụ hỗ trợ kiểm thử tự động hiệu quả, đẩy nhanh tiến trình đưa sản phẩm tiến vào thị trường, cũng như tạo ra cộng đồng kiểm thử tự động lớn, mang tính đột phá Sản phẩm tập trung vào yếu tố:
accessibility, flexibility Katakon giải quyết các tác vụ phức tạp để người dùng tập trung
vào kế hoạch kiểm thử
Trang 15- Thực tập sinh tham gia bộ phận phát triển, bảo trì phân khúc desktop-testing và web-testing trong KS Team
3.3 Kế hoạch phát triển
3.3.1 Giai đoạn thực nghiệm
- Viết test case, test suit trên Katalon Studio 6.14
- Thực hiện kiểm thử một login-form bằng KS-testing thông qua công cụ web record
- Thực hiện kiểm thử một bảng dữ liệu được lưu trên MySQL 8.x
3.3.2 Giai đoạn phân tích kiến trúc
- Phân tích cách tổ chức nhóm chức năng của phần mềm theo plugins
- Phân tích ưu điểm và hạn chế của kiến trúc phần mềm
- Phân tích cách tiếp cận theo hướng đối tượng
- Phân tích sự phù hợp giữa kiến trúc và chiến lược kinh doanh
Hình 7 Ứng dụng Katalon Studio trên Desktop.
Trang 163.3.3 Giai đoạn phát triển
- Phát triển chức năng tắt tiến trình web browser đang hoạt động
1 // command used to kill a task
2 taskkill /f /im chromedriver.exe
3 taskkill /f /im IEDriverServer.exe
4 taskkill /f /im geckodriver.exe
5 taskkill /f /im firefox.exe
6 taskkill /f /im chrome.exe
Trang 17- Phát triển chức năng cập nhật web browser
- Phát triển, kiểm thử chức năng data-testing với hệ quản trị CSDL: MySQL
Hình 10 Chứng năng được áp dụng từ Katalon Studio version 7.0
1 // Ensure we have MySQL 8.x Driver in classpath
2 Class.forName ("com.mysql.cj.jdbc.Driver");
3 // create our database connection
4 String dbname = "information_schema";
5 String url = " jdbc:mysql://localhost:3306/" + dbname;
6 String username = "root";
7 String password = "";
8 Connection conn = DriverManager.getConnection(url, username, password);
9 // our SQL SELECT query
10 String query = "SELECT * FROM ENGINES";
11 // create the java statement
12 Statement st = conn.createStatement();
13 // execute the query, and get a java resultset
14 ResultSet rs = st.executeQuery(query);
Trang 18- Phát triển, kiểm thử chức năng data-testing với hệ quản trị CSDL: H2
- Thử nghiệm chức năng data-testing với hệ quản trị CSDL: MariaDB
- Tái thiết lập giao diện form setting data-connector
25 // Ensure we have mariadb Driver in classpath
26 Class.forName("org.mariadb.jdbc.Driver");
27 // create our mysql database connection
28 String host = "localhost";
29 String dbname = "information_schema";
30 String url = "jdbc:mariadb://" + host + "/" + dbname;
31 String username = "root";
32 String password = "";
33 Connection conn = DriverManager.getConnection(url, username, password);
34 // our SQL SELECT query
35 String query = "SELECT * FROM ENGINES";
36 // create the java statement
17 // create our database connection
18 Connection conn = DriverManager.getConnection ("jdbc:h2:~/test", "sa","");
19 // our SQL SELECT query
20 String query = "SELECT * FROM ENGINES";
21 // create the java statement
22 Statement st = conn.createStatement();
23 // execute the query, and get a java resultset
24 ResultSet rs = st.executeQuery(query);
Trang 19Hình 12 Form thiết lập test data sau khi làm lại
Trang 20- Tạo dialog hiển thị thông tin chi tiết của một số ngoại lệ (exception)
- Nâng cấp thao tác kéo thả trên cây thư mục quản lý Test Suite, Test Case
Hình 13 Kéo thả test case trên cây thư mục.
Hình 14 Binding dữ liệu cho test suite có data.
Trang 21
3.3.4 Giai đoạn bảo trì, sửa lỗi
- Cập nhật lại thư viện hỗ trợ JDBC trong chức năng data-testing có dữ liệu
- Lấy thông tin một số ngoại lệ hiển thị cho người dùng, do thao tác sai
- Sử dụng Jenkins trên hệ đều hành Windows, Ubuntu
3.3.5 Giai đoạn kiểm thử
- Kiểm thử khả năng hoạt động các chức năng đã tham gia phát triển ở giai đoạn phát triển được trình bài ở mục phát triển trước khi release phiên bản 7.0, 7.1
- Viết test case (White-box testing) cho quá trình kiểm thử
Trang 224 KẾT LUẬN
4.1 Kết quả đạt được
Trong ba tháng thực tập, giúp em tiếp cận được môi trường làm việc chuyên nghiệp:
- Củng cố kiến thức hướng đối tượng, java core
- Nắm bắt các principles, một số design patterns trong Java
- Nắm bắt một số nguyên tắc trong thiết kế UX/UI
- Phát triển chức năng ứng dụng theo qui trình kiểm soát chặt chẽ
- Có khả năng ứng dụng nhiều hệ quản trị CSDL để thiết kế và lưu trữ dữ liệu
- Thiết kế dữ liệu theo nhiều hướng ràng buộc
- Hiểu được một số rủi ro khi sử dụng Maven dependencies
- Làm quen với các phương pháp kiểm thử phần mềm, kiểm thử tự động
- Tham gia dự án Katalon Studio thực tế, hoàn thành hơn 10 chức năng có giá trị
Trang 235 DANH SÁCH BẢNG
Table 1 Các con số thống kê về KMS 3Table 2 Lịch làm việc 7
Trang 246 DANH SÁCH HÌNH ẢNH
Hình 1 Công ty KMS Technology 2
Hình 2 Dự án Katalon 3
Hình 3 Dự án Kobiton 4
Hình 4 UpStar Labs (KMS Technology) 5
Hình 5 Sự hỗ trợ từ Katalon 10
Hình 6 Các nền tảng kết nối với Katalon Studio 10
Hình 7 Ứng dụng Katalon Studio trên Desktop 11
Hình 8 Chức năng cập nhật WebDrivers 12
Hình 9 Chức năng tìm và tắt WebDriver processes 12
Hình 10 Chứng năng được áp dụng từ Katalon Studio version 7.0 13
Hình 11 Khung ghi query 15
Hình 12 Form thiết lập test data sau khi làm lại 15
Hình 13 Kéo thả test case trên cây thư mục 16
Hình 14 Binding dữ liệu cho test suite có data 16
Trang 257 TÀI LIỆU THAM KHẢO