GIỚI THIỆU VỀ CÔNG TY THỰC TẬP
Giới thiệu về công ty Công ty TNHH Giải pháp Phần mềm Tường Minh
Được thành lập năm 1997, Công ty TNHH Giải pháp Phần mềm Tường Minh (tên viết tắt: TMA Solutions) là một trong những công ty phần mềm hàng đầu tại Việt Nam với hơn 4000 kỹ sư Công ty TNHH Giải pháp Phần mềm Tường Minh có 6 văn phòng tại TP.HCM, Công viên Sáng tạo TMA tại Bình Định và 6 văn phòng tại nước ngoài (Canada, Mỹ, Đức, Úc, Nhật Bản và Singapore)
Với sự phát triển vững mạnh trong 25 năm qua, Công ty TNHH Giải pháp Phần mềm Tường Minh tự hào nhận được sự tin tưởng của khách hàng là những tập đoàn lớn đến từ 30 quốc gia trên thế giới. Trong nhiều năm liền, công ty đã vinh dự được bình chọn trong top doanh nghiệp CNTT tại Việt Nam, liên tục được vinh danh trong top
10 doanh nghiệp xuất khẩu phần mềm, Top 10 doanh nghiệp Fintech, Top 10 doanh nghiệp AI – IoT,… Đặt yếu tố con người lên hàng đầu, Công ty TNHH Giải pháp Phần mềm Tường Minh với môi trường làm việc chuyên nghiệp và thân thiện, luôn nỗ lực tạo ra đời sống văn hóa phong phú, sôi động, để nhân viên luôn cảm thấy thoải mái, xem công ty không chỉ là nơi làm việc, mà còn là nơi có các hoạt động vui chơi, giải trí đầy thú vị,hấp dẫn.
Hình 1.1 Lịch sử hình thành của Công ty TNHH Giải pháp Phần mềm
Hình 1.2 Văn phòng làm việc tại công ty
Các chi nhánh tại Thành phố Hồ Chính Minh:
Trụ sở (Lab 1): 111 Nguyễn Ðình Chính, Phường 15, Quận Phú Nhuận
Chi nhánh 3 (Lab 3): 10 Đặng Văn Ngữ, Phường 10, Quận Phú Nhuận
Chi nhánh 4 (Lab 4): 84A/5 Trần Hữu Trang, Phường 10,Quận Phú Nhuận
Chi nhánh 5 (Lab 5): Tòa nhà Anna, Công viên phần mềm Quang Trung, P Tân Chánh Hiệp, Quận 12
Chi nhánh 6 (Lab 6): Tòa nhà TMA, Công viên phần mềm Quang Trung, P Tân Chánh Hiệp, Quận 12
Chi nhánh tại tỉnh Bình Định:
Công viên Sáng tạo TMA: Đại lộ Khoa học, Thung lũng Sáng tạo Quy Nhơn, P Ghềnh Ráng, TP Quy Nhơn, Bình Ðịnh
Số điện thoại liên hệ: (84-28) 3995 1060
Email: sales@tma.com.vn
Hình 1.4 Trụ sở Lab 6 tại Công viên phần mềm Quang Trung, Quận
Lịch làm việc khi thực tập tại công ty
Thời gian : Thứ 3, Thứ 5, Thứ 6
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
TMA là công ty chuyên về Out-source và có nhiều khách hàng từ nước ngoài
Những kỹ năng cơ bản của công ty là:
- Bảo mật đối với sản phẩm của công ty
- Kỹ năng giao tiếp trong công việc
- Kỹ năng làm việc nhóm
Nghiên cứu kỹ thuật
2.2.1 Ngôn ngữ và các công cụ
- Làm quen với ngôn ngữ python và các công cụ làm việc nhóm:
Python là một ngôn ngữ lập trình bậc cao, mã nguồn mở và đa nền tảng Python được Guido van Rossum giới thiệu vào năm 1991 và đã trải qua 3 giai đoạn phát triển khác nhau tương ứng với các version, mới nhất hiện nay là Python version 3x. Đặc điểm:
- Dễ đọc dễ hiểu dễ nhớ
- Cấu trúc rõ ràng, thuận tiện cho người mới học
- Hỗ trợ nhiều nền tảng khác nhau
- Tối ưu hóa cho việc code
- Hỗ trợ lập trình hướng đối tượng
GitLab là một nền tảng quản lý mã nguồn và dự án phần mềm dựa trên web Nó cung cấp các tính năng như quản lý mã nguồn, theo dõi vấn đề, CI / CD và nhiều tính năng khác để hỗ trợ quản lý dự án phần mềm. Đặc điểm:
2.2.2 Các kỹ thuật học được
Robot Framework là test framework mã nguồn mở được dùng để kiểm thử tự động và RPA Hướng tiếp cận của Robot Framework là hướng từ khóa (keyword driven) và hướng dữ liệu (data driven),chính vì vậy Robot Framework rất dễ sử dụng cũng như viết test script và có thể chạy được trên mọi nền tảng khác nhau mà không cần chỉnh sửa test script Robot Framework có thể được sử dụng trong các môi trường phân tán, không đồng nhất, nơi yêu cầu sử dụng các công nghệ và giao diện khác nhau.
Những ưu điểm của Robot Framework
Các đặc điểm nổi trội của Robot Framework:
Cho phép cú pháp dạng bảng dễ sử dụng để tạo các trường hợp thử nghiệm một cách thống nhất
Cung cấp khả năng tạo các từ khóa cấp cao hơn có thể sử dụng lại từ các từ khóa hiện tại
Cung cấp nhật ký và báo cáo kết quả dễ đọc ở định dạng HTML
Nền tảng và ứng dụng độc lập
Cung cấp một API thư viện đơn giản để tạo các thư viện thử nghiệm tùy chỉnh có thể được triển khai nguyên bản bằng Python hoặc Java
Cung cấp giao diện dòng lệnh và các tệp đầu ra dựa trên XML để tích hợp vào cơ sở hạ tầng xây dựng hiện có (hệ thống tích hợp liên tục)
Cung cấp hỗ trợ cho Selenium để kiểm tra web, kiểm tra Java GUI, các quy trình đang chạy, Telnet, SSH,…
Hỗ trợ tạo các trường hợp thử nghiệm theo hướng dữ liệu.
Có hỗ trợ tích hợp cho các biến, thực tế đặc biệt để thử nghiệm trong các môi trường khác nhau
Cung cấp tính năng gắn thẻ để phân loại và chọn các trường hợp thử nghiệm sẽ được thực thi
Cho phép tích hợp dễ dàng với kiểm soát nguồn: bộ thử nghiệm chỉ là các tệp và thư mục có thể được tạo phiên bản với mã sản xuất
Cung cấp thiết lập và chia nhỏ cấp độ test-case và test- suite
Kiến trúc mô-đun hỗ trợ tạo các bài test ngay cả đối với các ứng dụng có nhiều giao diện đa dạng.
Các thư viện được hỗ trợ trong Robot Framework
Các thư viện tiêu chuẩn
1 Builtin: Thư viện cơ bản nhất của Robot Framework, cung cấp các từ khóa cơ bản thường được sử dùng nhiều khi viết test script Thư viện Builtin luôn tự động có sẵn mà không cần phải import.
2 Collections: Dùng để xử lý kiểu dữ liệu list và dictionaries của Python.
3 DateTime: Dùng để xử lý dữ liệu ngày giờ.
4 Dialogs: Cung cấp các từ khóa để tạm dừng thực thi và nhận thông tin đầu vào từ người dùng.
5 OperatingSystem: Dùng để tương tác với hệ điều hành mà framework đang chạy.
6 Process: Dùng để tương tác với các tiến trình đang chạy trong hệ thống.
7 Remote: Hoạt động như một proxy giữa Robot Framework và các thư viện khác Các thư viện thực tế có thể chạy trên nhiều máy tính khác nhau và được triển khai bằng bất kỳ ngôn ngữ lập trình nào có hỗ trợ giao thức XML- RPC.
8 Sceenshot: Dùng để chụp màn hình, rất hữu ích cho việc debug.
9 String: Dùng để tạo, xử lý và xác minh kiểu dữ liệu string.
10 Telnet: Dùng để kết nối với các máy chủ Telnet lại với nhau để thực thi các lệnh trên các kết nối đã mở
11 XML: Dùng để tạo và tương tác với các tệp XML.
Các thư viện mở rộng
1 SeleniumLibrary: Dùng cho kiểm thử tự động các trang web.
2 RPA framework: Tập hợp các thư viện và các mã nguồn mở phục vụ cho RPA, được thiết kế để sử dụng cho cả Robot Framework và Python
3 HTTP RequestsLibrary (Python): Dùng cho kiểm tra HTTP level bằng cách sử dụng Python Requests trong nội bộ.
4 Browser Library: Dùng cho việc kiểm thử tự động các trang web do Playwright cung cấp
5 AppiumLibrary: Dùng cho kiểm thử tự động trên môi trường Android và iOS.
6 RESTinstance: Dùng cho kiểm thử tự động API HTTP JSON.
7 SSHLibrary: Dùng để thực thi các lệnh trên các kết nối SSH Thư viện này cũng hỗ trợ truyền tệp bằng SFTP.
8 Uiautomator2: Dùng cho kiểm thử tự động trên thiết bị android.
Cách cài đặt Robot Framework trên máy tính Windows
Cài đặt Python Để cài đặt Python lên máy tính, chúng ta truy cập vào trang chủ của Python (www.python.org/downloads/) và tải xuống phiên bản phù hợp với phiên bản Windows của bạn.
Hình 2.1 Trang chủ để tải file cài đặt Python
Sau khi tải xuống, tiến hành cài đặt Python lên máy tính Sau khi cài đặt xong, mở cmd và gõ lệnh python version để kiểm tra xem Python đã được cài đặt thành công hay không.
Hình 2.2 Python đã được cài đặt thành công
Sau khi cài thành công Python, mở cmd và gõ lệnh pip install robotframework để cài đặt Robot Framework
Hình 2.3 Cài đặt Robot Framework Kiểm tra cài đặt bằng lệnh robot –version.
Hình 2.4 Kiểm tra cài đặt Robot Framework
Cài đặt các thư viện mở rộng hỗ trợ Robot Framework
Robot Framework có rất nhiều thư viện hỗ trợ Các thư viện hầu hết được cũng cấp trên pip và bạn chỉ cần gõ lệnh để cài.
Ví dụ nếu ta muốn cài thư viện Selenium2Library thì chỉ cần gõ trên cmd câu lệnh pip install robotframework-selenium2library.
Hình 2.5 Các thư viện mở rộng phổ biến của Robot FrameworkCài đặt Robot Framework Language Server để sử dụng Robot Framework trên phần mềm VSCode Để thuận tiện sử dụng Robot Framework, chúng ta nên sử dụng IDE VSCode cùng extensions Robot Framework Language Server.
Hình 2.6 Robot Framework Language Server trong VSCode
Cấu trúc của một file Robot Framework
Thành phần cơ bản của một file Robot Framework sẽ gồm 3 phần chính: Settings, Test Cases và Keywords.
Phần Settings sẽ định nghĩa các thành thiết lập khởi đầu cho kịch bản, như là mô tả xem nó sẽ làm gì, dùng thư viện nào Gồm các thành phần chính sau:
Documentation: Mô tả khái quát về nội dung của test case
Suite Setup/Teardown: Gọi đến các Keywords để khi bắt đầu/kết thúc chạy test
Resource: Import các file khác để tái sử dụng lại các Keywords
Library: Import các thư viện hỗ trợ test.
Hình 2.7 Phần Settings của một file Robot Framework
Phần Test Cases là phần chính bao gồm các trường hợp cần test, trong phần này ta chỉ cần gọi các Keywords để chúng chạy và kiểm tra xem Output có đúng với Expected không Các test case được viết dưới dạng lời nên rất dễ hiểu Dưới đây là một vài ví dụ về cách viết test case trong Robot Framework:
Hình 2.8 Test case được viết theo kiểu Normal Syntax
Hình 2.9 Test case được viết theo kiểu Gherkin Syntax
Hình 2.10 Test case được viết theo kiểu Data-driven Syntax
Keywords là các step từ chuẩn bị cho đến việc kiểm tra kết quả, trong Keywords chúng ta cũng gọi đến những Keywords khác để thực hiện các xử lý
Bản thân các Keywords có thể nhận các đối số để sử dụng trong các trường hợp tương tự nhau, ví dụ như nhập Input Text, Submit Form,… Ngoài ra các keywords hoàn toàn có thể định nghĩa tự do bằng bất cứ ngôn ngữ nào, chỉ cần phần Test Cases gọi đúng tên của Keywords là được.
Hình 2.11 Phần Keywords của một file Robot Framework
Variables trong Robot Framework sẽ tích hợp biến vào giúp việc viết code cũng như maintain test dễ dàng hơn nhiều, thích hợp nhất cho Data-driven Test.
Hình 2.12 Variables trong Robot Framework
Tags trong Robot Framework sẽ giúp cho việc quản lý chạy test hiệu quả hơn, cụ thể hơn và tránh lặp lại toàn bộ quy trình khi ta cần test một chức năng cụ thể.
Hình 2.13 Tags trong Robot Framework
2.2.2.2 Thư viện Selenium trong Robot Framework
Demo test chức năng Login của một trang web
Các locator của test case:
# Login Page loginUsername = "id:user-name" loginPassword = "id:password" btnLogin = "id:login-button"
Các keyword của test case:
Title Should Be Swag Labs
Page Should Contain Sorry, this user has been locked out.
Test case chức năng Login của một trang web:
${URL} https://www.saucedemo.com/
${username-lock} locked_out_user
Open My Browser ${URL} ${Browser}
Open My Browser ${URL} ${Browser}
2.3.1 Kết quả sau khi chạy test các script trên thu được kết quả tương đương
Hình 5.1 Report của test case Login
Hình 5.2 Log của test case Login
NỘI DUNG THỰC TẬP
Điểm mạnh
Thông qua quá trình thực tập tại công ty TMA Solutions, em đã được học tập và làm quen với môi trường và rèn luyện nhiều kỹ năng cũng như kiến thức mới:
- Học được kỹ năng giao tiếp trong công việc
- Làm việc nhóm và quan sát
- Hiểu thêm về quy trình Agile
- Tiếp thu được nhiều kinh nghiệm và kiến thức
- Rèn luyện kỹ năng viết email
Điểm yếu
- Cần thêm thời gian để có thể làm quen hoàn toàn với những công nghệ mới.
- Còn mắc những thiếu sót trong quá trình tạo test script
Chuẩn đạt được
Goal Mục tiêu môn học
G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp
G2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự án
G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần mềm tại doanh nghiệp
G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn đề
G5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày
G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh