Trân trọng gửi lời cảm ơn Trung tâm Giải pháp và Dịch vụ phần mềm HPT đã tạo điềukiệ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
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
XÂY DỰNG ỨNG DỤNG HỖ TRỢ KIỂM THỬ API VÀ ỨNG DỤNG THAY THẾ DỮ
LIỆU CHO TEMPLATE
Thực tập sinh : Phạm Quang Nhân
Trang 2LỜI MỞ ĐẦU
Ngày nay, ngành công công nghiệp phần mềm đang rất phát triển đặc biệt Với tốc độphát triển vô cùng mạnh mẽ, ngành công nghệ phần mềm đã và đang là xu hướng phát triển củathế giới
Ngành phần mềm được sinh ra là do nhu cầu giải quyết các nhu cầu của con người mộtcách đơn giản và nhanh chóng, là một thứ không thể thiếu trong đời sống ngày này Cùng với
xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ Ngành công nghiệp phầnmềm non trẻ Việt Nam đã và đang phát triển mạnh mẽ, để hòa nhập với những công ty hàng đầu
về phần mềm trên thế giới Vì lý do này, em quyết định chọn ngành kỹ thuật phần mềm làmđịnh hướng cho việc học tập của mình
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng nhưmuốn được tìm hiểu, bổ sung kiến thức trong một môi trường chuyên nghiệp, em có dự định là
sẽ thực tập trong học kì Vì vậy, em quyết định chọn Công ty Cổ phần Dịch vụ Công nghệ Tinhọc HPT - 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 được
dự định này
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 3Trân trọng gửi lời cảm ơn Trung tâm Giải pháp và Dịch vụ phần mềm HPT đã tạo điềukiệ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 của các anh chị, em đãtiếp thu được những kiến thức quan trọng để có thể làm được một sản phẩm phần mềm mang lạigiá trị cho công ty Chân thành cảm ơn các anh chị đã bỏ ra nhiều thời gian,công sức để hướngdẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Nguyễn Châu Giang, đã training ,mở mang cho em kiến thức về lập
trình , hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn trong công việc, đến những khó
khăn việc làm quen với môi trường mới; cảm ơn anh Nguyễn Trọng Trí, đã chỉ dẫn em về
những kinh nghiệm làm một sản phẩm có giá trị mà em chưa có cơ hội được biết đến và đồngthời là cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu để có thể làm ra một sảnphẩm 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ềukiện em làm bài báo cáo này
Phạm Quang NhânTpHCM, ngày 01 tháng 10 năm 2020
Trang 4NHẬN XÉT CỦA KHOA
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 51 Giới thiệu công ty HPT 7
2 Sản phẩm của công ty 8
Chương 2: Nội dung project Tool kiểm thử API 11
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11
2 Nghiên cứu kỹ thuật 11
2.1 Đọc tài liệu 11
2.2 Tìm hiểu ngôn ngữ java 13
2.3 Lập trình ODM 13
2.4 Tìm hiểu về API và JSON 14
2.5 Tìm hiểu về multi-thread 15
3 Thực hiện project 15
4 Lịch làm việc 16
Chương 3: Chi tiết về project Tool kiểm thử API 16
1 Giới thiệu về project 16
1.1 Yêu cầu 17
1.2 Các yêu cầu khác 17
2 Thực hiện 17
3 Kế hoạch 17
Chương 4: Nội dung project Thay thế template 20
1 Nghiên cứu kỹ thuật 20
Trang 62 Thực hiện project 21
3 Lịch làm việc 21
Chương 5: Chi tiết về project Template 22
1 Giới thiệu về project 22
1.1 Yêu cầu 22
1.2 Các yêu cầu khác 22
2 Thực hiện 22
3 Kế hoạch 22
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 7Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty HPT
Được thành lập vào ngày 13/01/1995, Công ty Cổ phần Dịch vụ Công nghệ Tin họcHPT (HPT Vietnam Corporation) đã xây dựng bề dày uy tín 25 năm thấu hiểu vàphát triển những ứng dụng công nghệ tiên tiến trong lĩnh vực CNTT và Truyềnthông cho khách hàng tại Việt Nam và quốc tế
HPT hiện nay đã phát triển khắp Việt Nam và từng bước vươn ra thị trường thế giới:Trụ sở chính tại TP.HCM, Chi nhánh tại Hà Nội, Chi nhánh tại Đà Nẵng và Chinhánh tại Campuchia
Với triết ký kinh doanh bằng năng lực, sự tận tụy với khách hàng, hợp tác chặt chẽvới các hãng CNTT hàng đầu thế giới, HPT đã thúc đẩy các doanh nghiệp và tổ chứctrên khắp Việt Nam ứng dụng giải pháp, dịch vụ CNTT tiên tiến trên thế giới, manglại hiệu quả thiết thực cho tất cả các lĩnh vực mũi nhọn của nền kinh tế cũng như hỗtrợ công tác quản lý của các cơ quan Nhà nước
Tiến bước vào giai đoạn phát triển tiếp theo, HPT đã trở thành Doanh nghiệp Khoahọc Công nghệ, quyết tâm nâng cao năng lực nghiên cứu và sáng tạo các giải phápcông nghệ cho quốc gia Trụ sở mới của HPT tại khu Công nghệ cao TP.HCM(SHTP) nay đã hoàn thành Từ không gian khoa học này, HPT sẽ đầu tư và triển khainhiều giải pháp, dịch vụ công nghệ mới để mở rộng đối tượng khách hàng mà mìnhphục vụ, thúc đẩy công cuộc chuyển đổi số của quốc gia
Trang 82 Sản phẩm của công ty
HPT chuyên cung cấp các dịch vụ Công nghệ thông tin (CNTT) hỗ trợ các doanhnghiệp và tổ chức nhằm mang lại sự ổn định cao nhất cho hệ thống CNTT, từ đóphục vụ tốt hơn cho các mục tiêu quản trị, sản xuất kinh doanh của doanh nghiệp và
tổ chức
Các sản phẩm của HPT tập trung chủ yếu ở 5 mảng
a Giải pháp Công nghệ thông tin
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 9b Giải pháp Dữ liệu
c Giải pháp Bảo mật
Trang 11Chương 2: Nội dung project Tool kiểm thử API
Với project 1 với mục tiêu giúp sinh viên viên thực tập có thêm hiểu biết về một trongnhững số cách xử lý đầu vào với số lượng lớn, điều kiện phức tạp, đồng thời đồng thời rènluyệ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 phát triển phần mềm chuyênnghiệp
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 về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triên(như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức củacông ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công tynhư thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong côngviệc…
Kết quả : Hiểu thêm về công ty HPT, quá trình thành lập và phát triển Có thêm các kỹ
năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có tráchnhiệm hơn
2 Nghiên cứu kỹ thuật
2.1 Đọc tài liệu
Thời gian : 6 ngày
Nội dung : Đọc tài liệu về IBM ODM.
Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về IBM-làmột trong số các công ty công nghệ thông tin có quy mô lớn nhất thế giới, và cáccông nghệ IBM cung cấp mà HPT trực tiếp sử dụng, đặc biệt là ODM một bộ công cụ
xử lý các điều kiện với số lượng lớn và phức tạp
Trang 12ODM – Trình quản lý các hoạt động ra quyết định là một sản phẩm được cung cấpbởi IBM-là một trong số các công ty cộng nghệ thông tin có quy mô lớn nhất thế giới,chuyên về lĩnh vực cung cấp các sản phẩm, dịch vụ phần cứng – phần mềm và dịch
vụ IBM đã tồn tại trong nhiều thập kỷ qua trở thành nhà cung cấp máy tính lớn nhất.Bên cạnh đó Ibm đã chuyển trọng tâm từ phần cứng sang phần mềm và dịch vụ Đếnnhững năm 2010, IBM lại nhấn mạnh và đầu tư nhiều hơn vào các lĩnh vực dịch vụdưa trên đám mây
ODM kết hợp các công cụ dò tìm và thay đổi để cung cấp một hệ thống quản lýquy tắc kinh doanh dễ phát triển, theo dõi, kiểm tra và thử nghiệm
ODM bao gồm hai thành phần chính:
_ Decision server: để quản lý các quyết định và phát hiện sự kiện Máy chủ quyếtđịnh cung cấp thời gian chạy và các thành phần phát triển để tự động hóa phản ứngcủa các quyết định có nhiều biến động dựa trên bối cảnh cụ thể của một quy trình,giao dịch hoặc tương tác Bạn có thể giám sát mạng kinh doanh để khám phá và thựchiện hành động trên các mẫu dữ liệu dựa trên sự kiện, sau đó xử lý thông tin này dựatrên hàng trăm hoặc thậm chí hàng nghìn quy tắc kinh doanh để xác định cách phảnhồi trong hệ thống front-end và back-end
_ Decision center: đưa việc quản lý quyết định vào tay những người điều hànhdoanh nghiệp Với Decision center, người dùng doanh nghiệp có thể quản lý cácquyết định và sự kiện trực tiếp dựa trên kiến thức tổ chức và các phương pháp haynhất, với sự phụ thuộc hạn chế vào bộ phận CNTT Mức độ phụ thuộc có thể daođộng từ việc người dùng doanh nghiệp đánh giá logic nghiệp vụ do nhà phát triểnthực hiện, đến việc kiểm soát hoàn toàn đối với đặc điểm kỹ thuật, tạo, thử nghiệm vàtriển khai logic nghiệp vụ của người dùng doanh nghiệp
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 13Thực hiện : đọc và tìm hiểu các tài liệu đã nêu trên.
Kết quả : Có cái nhìn tổng quan về IBM ODM.
2.2 Tìm hiểu ngôn ngữ java
Thời gian : 2 ngày
Nội dung : Được training về các kỹ thuật java, những kiến thức quan trọng cho việc
thiết kệ bộ rules ODM
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc tínhnhư tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình với ngôn ngữ java
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu
2.3 Lập trình ODM
Thời gian : 4 ngày
Nội dung: Các kiến thức cơ bản về ODM để có thể làm ra một bộ rules đơn giản.
- Khái niệm cơ bản về ODM.
Nắm được các khái niệm cơ bản về ODMNgoài ra, trainer còn cung cấp cho thực tập sinh những khái niệm cơ bản trongODM như properties, decision table, decision flow, …, là những khái niệm rất cơbản để thiết kế rules
Thực hiện :
Trang 14- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm
Kết quả :
- Hiểu được những khái niệm cơ bản trong lập trình đồ họa với ODM
- Đã thiết kế được bộ rules cơ bản và deploy lên server thành các api để sử dụng
2.4 Tìm hiểu về API và JSON
Thời gian : 6 ngày
Nội dung : Sau khi đã tìm hiểu về bộ rules ODM, công ty có nhu cầu xây dựng một
công cụ để có thể kiểm thử bộ rules với số lượng lớn và thời gian đáp ứng nhanh
- Tìm hiểu về API và làm quen với kiểu dữ liệu JSON:
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà
theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thànhphần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu
dữ liệu phổ biến như JSON hay XML
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ
liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng
dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile ) khác nhau giao tiếp với nhau
REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu
trên sẽ sử dụng những phương thức HTTP riêng
GET (SELECT): Trả về một Resource hoặc một danh sách Resource
POST (CREATE): Tạo mới một Resource
PUT (UPDATE): Cập nhật thông tin cho Resource
DELETE (DELETE): Xoá một Resource
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 15Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.
Với bộ rules được public thành API từ ODM, kiểu dữ liệu trả về mặc định là JSONJSON là viết tắt của JavaScript Object Notation, là một kiểu định dạng dữ liệutuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều
có thể đọc được JSON là một tiêu chuẩn mở để trao đổi dữ liệu trên web
Thực hiện :
- Tham gia đầy đủ các buổi training
- Tạo ứng dụng gọi API ODM và tương tác với kiểu dữ liệu json
Kết quả:
- Đã có thể tạo ra những ứng dụng gọi API cơ bản
2.5 Tìm hiểu về multi-thread
Thời gian : 6 ngày
Nội dung : Để đáp ứng được nhu gọi kiểm thử với số lượng lớn lên đến hàng ngàn
trường hợp đối với 1 API nên cần phải sử dụng đa luồng
Về cơ bản, MultiThread là khả năng của một nền tảng (hệ điều hành, máy ảo vv) hoặccác ứng dụng/chương trình để tạo ra một quá trình bao gồm nhiều Thread được thựcthi Khi tạo ra các Thread chạy song song, chương trình sẽ có hiệu năng tốt hơn là chỉluôn chạy một luồng main thread
Trang 163 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ề java, ODM, API, JSON, Trong tháng thứ hai, trainer đã hướng dẫn thực tậpsinh áp dụng những kiến thức đã học để thực hiện một công cụ kiểm thử api sinh ra từODM
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm việc
Tuần Công việc Người hướng dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức củacông ty
- Làm quen với cáccông cụ làm việctrong công ty
- Học cách trao đổi,làm việc qua email
Anh Nguyễn ChâuGiang
2
- Tìm hiểu ngôn ngữlập trình java
- Thực hành java
- Làm bài test java
Anh Nguyễn ChâuGiang
3 - Lập trình ODM Anh Nguyễn ChâuGiang
4
- Tìm hiểu về API vàJSON
- Tìm hiểu về multithread
Anh Nguyễn ChâuGiang và anhNguyễn Trọng Trí
5 Giai đoạn Alpha:- Lên kế hoạch
- Viết Framework
Anh Nguyễn ChâuGiang và anhNguyễn Trọng Trí
7 Giai đoạn Beta:- Viết các chức năng
nâng cao hơn
Anh Nguyễn ChâuGiang và anhNguyễn Trọng Trí
8 Giai đoạn Beta và giai
đoạn kết thúc, báo cáo :
- Progress bar
- Fix bug, cơ chế
Anh Nguyễn ChâuGiang và anhNguyễn Trọng Trí
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 17Chương 3: Chi tiết về project Tool kiểm thử API
1 Giới thiệu về project
Với mỗi rules API, input có rất nhiều trường lên đến hàng chục, các tester phải kiểm thử rất nhiều lần để có thể phủ được hết các trường hợp Việc viết các case
đã tốn nhiều thời gian, việc gọi API để so sánh còn tốn nhiều thời gian hơn Từ
đó, công ty có nhu cầu phát sinh công cụ kiểm thử rules ODMCông cụ được phát triển trên nền tảng NET(C#)
1.1 Yêu cầu
Với yêu cầu input là 1 file excel chứa nhiều input cho 1 rule được chon trước,kèm theo output mong muốn kết quả sẽ là 1 file excel với input cũ, output mongmuốn và output thực tế và kết quả trả về là đúng hay sai đồng thời là tổng hợpđúng bao nhiêu % trên tổng số testcase
1.2 Các yêu cầu khác
Đáp ứng nhiều kiểu input khác nhau trong file excel:
- Object
- Json string
- Các biến của 1 json string
- Tùy chỉnh được số thread sẽ sử dụng
2 Thực hiện
- Phạm Quang Nhân
3 Kế hoạch
Giai đoạn Alpha:
- Hoàn thành input file excel và gọi api để kiểm thử
- Chỉ hổ trợ chế độ Single Thread
Trang 18Kết quả :
- Hầu hết các tính năng trên đã được thực hiện
Giai đoạn Beta:
- Hoàn thành chế độ Multi Thread
- Hỗ trợ tạo file backlog
- Chuyển ứng dụng sang dạng Web (ASP.NET MVC)
- Hỗ trợ file excel lớn
- Thời gian đáp ứng 10k dòng trong file excel khoảng 30 giây
- Kết quả : Đã hoàn thành toàn bộ những tính năng trên
Phạm Quang Nhân
Thực tập tốt nghiệp
Trang 20Chương 4: Nội dung project Thay thế dữ liệu cho
Template
Với project 2 với mục tiêu giúp sinh viên viên thực tập có thêm hiểu biết cách xử
lý file văn bản, tham gia xây dựng nâng cấp một module đã có trong hệ thống xử
lý của công ty
1 Nghiên cứu kỹ thuật
1.1 Đọc tài liệu
Thời gian : 4 ngày
Nội dung : Đọc tài liệu về module xử lý văn bản cũ.
Đọc tài liệu tương tác với trình văn bản Microsoft office word
Thực hiện : đọc và tìm hiểu các tài liệu đã nêu trên.
Kết quả : Biết các cách tương tác cơ bản với file word.
1.2 Tìm hiểu về đệ quy
Nội dung : sử dụng đệ quy để lấy dữ liệu từ json
- Với dữ liệu json:
Các trường dữ liệu có nhiều tầng, mỗi tầng là có thể có nhiều tầng khác nên để cóthể lấy hết mọi trường dữ liệu cần sử dụng đệ quy