Giới thiệu về công ty thực tập
Thông tin chung
-Tên công ty: Công ty TNHH Nash Tech Việt Nam
-Tên quốc tế: NASHTECH VIETNAM COMPANY LIMITED
-Logo công ty TNHH Nash Tech Việt Nam:
Hình I-1 Logo công ty TNHH Nash Tech Việt Nam
-Cơ sở tại TP.HCM : o Địa chỉ: Tòa nhà E.town, Lầu 3, số 364, đường Cộng Hòa, Phường 13,
Quận Tân Bình, Thành phố Hồ Chí Minh, Việt Nam o Điện thoại: 028 3810 6200
- NashTech là công ty thuộc tập đoàn Harvey Nash, có trụ sở chính tại Anh. NashTech là một trong những công ty công nghệ hàng đầu tại Việt Nam với bề dày kinh nghiệm trong việc tư vấn, cung ứng giải pháp công nghệ có quy mô toàn cầu cho nhiều khách hàng là những tập đoàn lớn như Ford, Google, Nestle, Honda, Prudential,
- Với lịch sử hơn 21 năm phát triển tại Việt Nam cùng đội ngũ nhân lực hơn 1.600 kỹ sư tài năm ở 03 trụ sở chính tại TP.Hồ Chí Minh, Hà Nội, Đà Nẵng, NashTech là một trong những doanh nghiệp góp phần thúc đẩy vị thế của Việt Nam trên bản đồ công nghệ thế giới, với 06 mảng kinh doanh chủ chốt, bao gồm:
Giải pháp quy trình doanh nghiệp
Giải pháp trải nghiệm kỹ thuật số cho người dùng
Hình I-2 Sơ đồ cơ cấu doanh nghiệp của công ty TNHH Nash Tech Việt Nam
Lĩnh vực hoạt động
- Lĩnh vực hoạt động chính: o Phát triển ứng dụng di động o Kiến trúc phần mềm o Tích hợp hệ thống o Cung cấp giải pháp quy trình doanh nghiệp o Dịch vụ hỗ trợ phần mềm…
Công nghệ sử dụng
Chuyên môn phát triển web sử dụng các công nghệ như PHP, ASP.net, jQuery, JavaScript (Angular JS, React JS, Vue JS), Require.JS, Durandal JS, HTML5 và JSON.
Thông tin về vị trí tuyển dụng
- Vị trí tuyển dụng: Thực tập sinh QC tester
- Mô tả: o “The Rookies” là chương trình đào tạo chuyên sâu dành cho sinh viên năm cuối và mới ra trường đang theo học ngành Công nghệ thông tin,
Khoa học máy tính, Phát triển phần mềm, Kiểm thử phần mềm, Hệ thống thông tin và các ngành có liên quan. o Hiện tại, cả 2 văn phòng NashTech Hà Nội và Hồ Chí Minh đang mở đơn ứng tuyển các vị trí như sau:
Lập trình viên C#/Net (HN & TPHCM)
Lập trình viên Java (HN & TPHCM)
Lập trình viên PHP (Chỉ có tại TPHCM)
Kỹ sư kiểm thử phần mềm Manual Tester (HN & TPHCM)
Kỹ sư kiểm thử phần mềm tự động Automation Tester (HN & TPHCM)
- Yêu cầu ứng viên: o Sinh viên năm cuối hoặc mới tốt nghiệp từ các trường Đại học, Cao đẳng, các Trung tâm Đào tạo chuyên ngành CNTT hoặc các ngành có liên quan o Có thể tham gia đào tạo toàn thời gian trong vòng 3 tháng, bắt đầu từ tháng 09/2022 Ưu tiên các ứng viên có thể bắt đầu làm việc toàn thời gian sau quá trình đào tạo (từ 12/2022) o Có kỹ năng giao tiếp Tiếng Anh cơ bản, Tiếng Anh tốt là một lợi thế o Ham học hỏi, thích nghiên cứu, tìm tòi, tìm hiểu công nghệ mới o Cam kết tuân thủ các quy định của chương trình đào tạo o Độc lập, chủ động trong công việc.
- Quyền lợi được hưởng: o Tham gia đào tạo chuyên sâu, nâng cao kĩ năng và hoàn thiện bản thân o Được làm việc thực tế trong các dự án toàn cầu tại NashTech trong 3 tháng đào tạo o Cơ hội trở thành Software Engineer - thế hệ kỹ sư công nghệ cao của NashTech o Được đào tạo và dẫn dắt bởi đội ngũ chuyên gia công nghệ của NashTech, mở rộng kiến thức và network trong ngành IT o Mức lương hấp dẫn lên tới 17.000.000 VNĐ sau khi được tuyển chọn thành nhân viên chính thức cùng nhiều phúc lợi dành riêng cho Nasher o Môi trường làm việc chuyên nghiệp, cởi mở, khuyến khích nhân viên phát triển và kiến tạo điều mới o Hỗ trợ chi phí đi lại và ăn trưa trong suốt quá trình đào tạo o Giấy chứng nhận hoàn thành khóa học.
Cơ sở lý thuyết
Mô hình Agile và quy trình vận hành trong quản lí dự án
Quản lý dự án Agile là một cách tiếp cận lặp đi lặp lại để quản lý dự án tập trung vào việc chia nhỏ các dự án lớn thành các nhiệm vụ dễ quản lý hơn, được hoàn thành trong các lần lặp ngắn trong suốt vòng đời của dự án Với các nhóm khi áp dụng mô hình Agile sẽ giúp đẩy nhanh tiến độ công việc, thích ứng với các thay đổi của dự án và tối ưu hóa quy trình làm việc một cách dễ dàng.
Hình 3.1 Mô hình hoá Agile trong phát triển phần mềm
Mô hình Agile sẽ cho phép các nhóm được chuẩn bị tốt hơn để dễ dàng thay đổi hướng Phương pháp Agile cho phép đánh giá công việc họ đang làm và điều chỉnh theo từng bước để nếu khi khách hàng thay đổi, mục tiêu với nhóm.
Agile phát triển dựa trên quy trình phát triển lặp Mỗi dự án được chia thành nhiều giai đoạn nhỏ dễ dàng đáp ứng khi có yêu cầu thay đổi từ khách hàng Sản phẩm được bàn giao cho khách hàng theo từng giai đoạn, cứ mỗi khi một mảng nhỏ được bàn giao, khách hàng có thể đưa ra các thay đổi hoặc yêu cầu mới cho dự án và nhóm phát triển sẽ cập nhật sản phẩm theo đúng yêu cầu của khách hàng mà không cần làm lại từ đầu.
Phương pháp Scrum
Scrum là một quy trình phát triển phần mềm được xây dựng dựa theo phương pháp Agile Chính vì thế, phương thức Scrum tuân thủ theo các nguyên tắc của AgileManifesto là điều đương nhiên Tuy nhiên, Agile và Scrum không phải là một nhé.Bởi Agile là phương pháp gồm những giá trị cốt lõi và nguyên tắc còn Scrum là quy trình hiện thực hoá giá trị và cốt lõi đó.
Hình 3.2 Mô hình hoá quy trình Scrum
3.2.1 Product backlog Đây là danh sách ưu tiên của các tính năng hoặc các đầu ra khác của dự án Danh sách này cũng có thể hiểu như là một bản liệt kê các yêu cầu của dự án đó Product Owner sẽ là người chịu trách nhiệm sắp xếp độ ưu tiên cho từng hạng mục của Product Backlog dựa vào các giá trị do họ định nghĩa.
3.2.2 Sprint backlog Đây là bản kế hoạch cho một Sprint sau khi kết thúc một buổi họp lập kế hoạch. Với sự kết hợp của Product Owner, nhóm sẽ tiến hành phân tích các yêu cầu theo từng độ ưu tiên từ cao xuống thấp để có thể hiện thực hóa những hạng mục trong Product backlog được trình bày dưới dạng danh sách công việc (TODO list).
Hình 3.3 Các công cụ đặc thù của một quy trình Scrum
3.2.3 Burndown Chart Đây là biểu đồ được sử dụng để hiển thị xu hướng của dự án dựa trên lượng thời gian cần thiết còn lại nhằm hoàn thành công việc Burndown Chart còn được dùng để theo dõi tiến độ của Sprint hoặc của cả dự án đó Biểu đồ Burndown không phải là một thành tố tiêu chuẩn của Scrum theo như định nghĩa mới nhưng vẫn được ứng
Quy trình vận hành của Scrum
Sau khi đã nắm được các thông tin về giá trị cốt lõi cũng như công cụ của một quy trình Scrum, bạn cần tìm hiểu thêm về cách mà quy trình này vận hành nhằm ứng dụng vào dự án của mình Dưới đây là cách vận hành của quy trình Agile Scrum:
- Product Owner tạo ra Product Backlog có các yêu cầu dự án với hạng mục được sắp xếp theo từng thứ tự ưu tiên.
- Đội sản xuất hiện thực hoá dần các yêu cầu của Product Owner với đầu vào là hạng mục, đầu ra là phần mềm hoàn chỉnh (Potentially Shippable Product Increment).
- Đội sản xuất cùng Product Owner họp để lập kế hoạch cho từng Sprint với kết quả chính là Sprint Backlog có các công việc cần làm.
- Nhóm cập nhật Sprint Backlog trong suốt quá trình làm việc và thực hiện họp hàng ngày để chia sẻ tiến độ công việc và các vướng mắc trong quá trình làm việc.
- Kết thúc Sprint, nhóm tạo ra gói phần mềm với chức năng hoàn chỉnh, sẵn sàng chuyển giao cho khách hàng Những gì có thể chuyển giao và những gì còn phải thay đổi, cải tiến đều được trình bày trong buổi họp sơ kết cuối Sprint.
- Kết thúc đánh giá Sprint, Scrum Master và nhóm tổ chức họp để cải tiến Sprint nhằm tìm kiếm trước khi Sprint tiếp theo bắt đầu và điều này giúp nhóm học hỏi được liên tục.
Giới thiệu API và công cụ kiểm thử POSTMAN
API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng. API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm hay dùng.
Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng.
Hình 3.4 Mô hình hoá API API thường được ứng dụng vào: o Web API: là hệ thống API được sử dụng trong các hệ thống website Hầu hết các website đều ứng dụng đến Web API cho phép bạn kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ liệu Ví dụ: Bạn thiết kế chức nằng login thông Google, Facebook, Twitter, Github… Điều này có nghĩa là bạn đang gọi đến API của. Hoặc như các ứng dụng di động đều lấy dữ liệu thông qua API. o API trên hệ điều hành: Windows hay Linux có rất nhiều API, họ cung cấp các tài liệu API là đặc tả các hàm, phương thức cũng như các giao thức kết nối Nó giúp lập trình viên có thể tạo ra các phần mềm ứng dụng có thể tương tác trực tiếp với hệ điều hành. o API của thư viện phần mềm hay framework: API mô tả và quy định các hành động mong muốn mà các thư viện cung cấp Một API có thể có nhiều cách triển khai khác nhau và nó cũng giúp cho một chương trình viết bằng ngôn ngữ này có thể sử dụng thư viện được viết bằng ngôn ngữ khác Ví dụ
3.4.2 Giới thiệu về kiểm thử API
- Kiểm thử API là thử nghiệm mà trong đó bạn sử dụng phần mềm để gọi tới API, nhận kết quả đầu ra và ghi lại phản hồi của hệ thống.
- Không tập trung vào giao diện mà chủ yếu tập trung vào lớp business logic của phần mềm.
Hình 3.5 Kiểm thử API tiến hành ở tầng Business
- Trong API, thường sử dụng giao thức để Client và server giao tiếp với nhau. Trong đó giao thức chính là HTTP Và API được xây dựng trên chính 2 thành phần: Request và Reponse.
- Một request thường sử dụng 4 phương thức chính đó là: o GET để truy vấn đối tượng o POST để tạo dối tượng mới o PUT để sửa đổi hoặc thay thế một đối tượng o DELETE để loại bỏ một đối tượng
- Mỗi phương thức trên phải được API call thông qua để gửi chỉ thị cho server phải làm gì.
3.4.3 Giới thiệu về công cụ POSTMAN để kiểm thử API
Ngày nay, việc đưa tài nguyên hệ thống thông qua một RESTful API là một cách linh động để cung cấp các loại ứng dụng khác nhau với dữ liệu đã được định dạng theo cách tiêu chuẩn Việc dùng code gọi các API này và test kết quả trả về khá tốn công Vì vậy hôm nay mình xin giới thiệu một công cụ mình hay dùng khi làm việc với RESTful API là POSTMAN.
Giới thiệu POSTMAN và cài đặt
- Postman là một loại công cụ cho phép người dùng có thể dễ dàng thao tác với API Trong đó, phổ biến nhất hiện nay là REST Đối với thử nghiệm API, Postman chính là một trong những công cụ phổ biến hàng đầu bởi chúng được thực nghiệm rất nhiều.
- Postman có khả năng hỗ trợ tất cả các phương thức HTTP bao gồm POST, PUT, PATCH, DELETE, hay GET,… Không dừng lại ở đó, Postman còn thể hiện sự tiện lợi của mình khi chúng cho phép các lập trình viên thực hiện lưu lại lịch sử các lần request, trợ thủ đắc lực khi có nhu cầu sử dụng lại.
- Để bắt đầu với postman, ta truy cập vào trang chủ https://www.postman.com/ và download phiên bản phù hợp cho hệ điều hành đang sử dụng (có các phiên bản cho MAC OS, Windows 32bit, Window 64bit) Đối với hệ điều hành nhân Linux thì ta phải tải POSTMAN từ Extensions của Chrome để cài đặt.
Hình 3.6 Trang chủ của Postman
Chức năng chính của POSTMAN
- Postman cho phép người dùng gửi HTTP Request với method GET, PUT, POST và DELETE.
- Người dùng có thể dễ dàng post các dữ liệu dưới dạng text, form, hoặc JSON,…
- Kết quả xuất hiện và trả về sẽ được hiển thị dưới dạng hình ảnh, text, xml, JSON,…
- Postman có khả năng hỗ trợ authorization.
- Postman có thể thực hiện thay đổi header của các request.
Chức năng phần mềm chính của POSTMAN
- New: Cho phép người dùng tạo request, environment hoặc collection.
- Import: Cho phép người dùng import collection hoặc environment Một số tùy chọn khác còn được sử dụng để import từ file folder, paste từ text thuần hoặc thậm chí là link.
- Open new: Cho phép người dùng mở một tab mới, cửa sổ runner hoặc cửa sổ postman.
- Runner: Cho phép người dùng kiểm tra một cách tự động thông qua Runner và collection.
- My workspace: Cho phép người dùng tạo cửa sổ làm việc cá nhân hoặc theo nhóm.
- Invite: Cho phép người dùng mời các thành viên làm việc và cộng tác cùng nhau.
- History: Cho phép người dùng lần theo những request đã thực hiện từ trước.
- Collections: Cho phép người dùng tổ chức các thử nghiệm Mỗi collection sẽ chứa các thư mục con với nhiều yêu cầu khác nhau, có thể là request hoặc thư mục trùng lặp.
- Tab request: Hiển thị tiêu đề request mà người dùng làm việc Theo đó, nó sẽ mặc định “untitled Request” đồng thời hiển thị cho các request không có tiêu đề khác.
- Request URL: Đây còn được gọi là điểm cuối, là nơi cho phép người dùng xác định liên kết đến nơi mà API sẽ thực hiện giao tiếp.
- HTTP Request: Khi người dùng click vào HTTP Request thì danh sách hiển
- Save: Trong trường hợp thay đổi request, người dùng chỉ cần nhấp vào Save, các thay đổi sẽ tự động lưu và không bị ghi đè.
- Params: Cho phép người dùng vẽ các tham số cần thiết cho một request.
- Headers: Cho phép người dùng tiến hành thiết lập các header, chẳng hạn như nội dung JSON tùy thuộc theo cách tổ chức của bản thân.
- Body: Cho phép người dùng tùy chỉnh các chi tiết trong phần request Đây là phần thường được dùng nhiều nhất trong request Post.
- Tests: Đây là những script được thực hiện khi tiến hành request Thế nhưng, nó cần phải có các thử nghiệm như thiết lập điểm checkpoint để kiểm tra trạng thái Khi đó, những dữ liệu nhận được sẽ đáp ứng mong đợi của người dùng đồng thời sở hữu các thử nghiệm khác.
- Pre-request script: Đây là các tập lệnh sẽ được thực thi trước khi request Đa phần, nó sẽ cho môi trường được sử dụng nhằm đảm bảo việc kiểm tra, giúp chúng có thể chạy trong môi trường chính xác nhất.
Hình 3.7 Giao diện của Postman
Các thành phần chính của Postman
- Postman bao gồm 3 thành phần chính như sau: o Settings
Phần Settings chứa các thông tin về Account dành cho mục đích login, logout và sync data.
Settings tùy chỉnh: Shortcut, themes, format,…
Import data từ bên ngoài. o Collections
Phần Collections có vai trò lưu trữ các thông tin của API dựa theo folder hoặc thời gian. o API content
API content hỗ trợ hiển thị những nội dung chi tiết về API cũng như các phần hỗ trợ khác với mục đích thực hiện test API Đây được coi là một trong những phần tester cần phải nắm rõ và làm việc rất nhiều.
Bên cạnh đó, trong API content cũng chứa 3 thành phần chính, cụ thể:
Triển khai đề tài kiểm thử API
Đặc tả yêu cầu
- API URL: http://5db7afcee2c76f0014a540fa.mockapi.io/trongpham/v1
- Danh sách các APIs: o Lấy thông tin tất cả nhân viên o Lấy thông tin nhân viên bằng id o Tạo một nhân viên mới o Chỉnh sửa một nhân viên o Xoá một nhân viên a Lấy thông tin tất cả nhân viên
- Mô tả: Lấy dữ liệu của tất cả các nhân viên hiện tại.
Case Request Response Body Response
Errors b Lấy thông tin nhân viên bằng id
- Mô tả: Lấy dữ liệu của tất cả các nhân viên hiện tại sử dụng tham số id
Parameter Description Data Type Required
Id Id of an existing Employee that use wants to retrieve data
Case Request Response Body Response Code
"message": "Id doesn’t match with any Employees"
500 Internal Errors Server errors { "message": "Internal server errors"
} c Tạo mới thông tin một nhân viên
- Mô tả: Tạo mới thông tin một nhân viên
- Lưu ý: giá trị “id” sẽ tự động sinh ra tăng dần
Fields Description Data Type Required Notes
First_name First name of
Employee String Yes Max length: 50
Last_name Last name of
Employee String Yes Max length: 50
Employee String Yes Username is unique
Email Email of Employee String No
Only allow email in the right format (have “@”) Max length: 50
Age Age of Employee Integer Yes Data range: [20-60]
Salary Salary of Employee Integer Yes Data range: [0-200000]
Marital_status Marital status of
Employee Boolean No True: Married
Cases Request Body Response Body Response
Valid data for all fields: {
"first_name": "Trong", "first_name": "Trong",
"last_name": "Pham", "last_name": "Pham",
"marital_status": false "marital_status": true
Missing required { "message": "Invalid request:
400 Bad Request fields {field_name} is required!”
{field_name} is over the maximum length!”
"message": "Username is already existing!”
"message": "Username must be from 5 to 20 characters!”
"message": "Invalid request: email is not in the right format!”
Data is out of range "message": "Invalid request: value of {field_name} is out of valid data range!”
Wrong data type value of {field_name} is not on the right data type!”
"message": "Internal server 500 Internal errors"
} Errors d Tạo mới thông tin một nhân viên
- Mô tả: Cập nhật thông tin của nhân viên hiện tại
Parameter Description Data Type Required
Id Id of an existing Employee that use wants to retrieve data
Fields Description Data Type Required Notes
First_name First name of
Employee String Yes Max length: 50
Last_name Last name of
Employee String Yes Max length: 50
Employee String Yes Username is unique
Email Email of Employee String No
Only allow email in the right format (have “@”) Max length: 50
Age Age of Employee Integer Yes Data range: [20-60]
Salary Salary of Employee Integer Yes Data range: [0-200000]
Marital_status Marital status of
Employee Boolean No True: Married
Cases Request Body Response Body Response
Valid data for all fields: {
"first_name": "Trong", "first_name": "Trong",
"last_name": "Pham", "last_name": "Pham",
"marital_status": false "marital_status": true
Missing required { "message": "Invalid request:
400 Bad Request fields {field_name} is required!”
{field_name} is over the maximum length!”
"message": "Username is already existing!”
"message": "Username must be from 5 to 20 characters!”
"message": "Invalid request: email is not in the right format!”
Data is out of range "message": "Invalid request: value of {field_name} is out of valid data range!”
Wrong data type value of {field_name} is not on the right data type!”
"message": "Internal server 500 Internal errors"
} Errors e Xoá thông tin một nhân viên
- Mô tả: Xoá thông tin một nhân viên
Parameter Description Data Type Required
Id Id of an existing Employee that use wants to retrieve data
Cases Request Response Body Response
"message": "Id is not 404 Not existing"
Failure Id is missing "message": "Id is required" {
"message": "Internal server 500 Internal errors"
Phân tích yêu cầu và thiết kế Test Cases
- Lấy thông tin tất cả nhân viên
- Lấy thông tin nhân viên bằng id
- Tạo một nhân viên mới
- Chỉnh sửa một nhân viên
Triển khai Test Cases lên POSTMAN
4.3.1 Chuẩn bị file môi trường
- Tạo mới môi trường và điền các thông tin
Hình 4 1 Điền thông tin tạo mới môi trường
- Thêm file môi trường đã có sẵn
4.3.2 Thiết kế các Test Scripts theo Test Cases đã thiết kế
Hình 4 3 Thiết kế các Test Scripts theo Test Cases đã thiết kế
Hình 4 4 Thực thi các Test Cases
- Kết quả chạy các test case
Hình 4 5 Các kết quả Test Cases