1. Trang chủ
  2. » Cao đẳng - Đại học

Báo cáo thực tập phát triển công cụ kiểm thử tự động

19 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 658,02 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP PHÁT TRIỂN CÔNG CỤ KIỂM THỬ TỰ ĐỘNG Công ty thực tập : Công ty TNHH LogiGear Việt Nam Người phụ trách : Hoàn

Trang 1

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

PHÁT TRIỂN CÔNG CỤ KIỂM THỬ TỰ

ĐỘNG

Công ty thực tập : Công ty TNHH LogiGear Việt Nam Người phụ trách : Hoàng Nguyễn Khắc Duy

Thực tập sinh : Phan Lê Quang

TP Hồ Chí Minh, tháng 01 năm 2021

Trang 2

LỜI MỞ ĐẦU

Với tốc độ phát triển vượt bậc của ngành công nghệ phần mềm theo đó là nhu cầu làm phần mềm cũng như số lượng phần mềm ngày càng tăng Không những thế, chất lượng phần mềm cũng dần trở thành yếu tố thiết yếu trong một phần mềm Để đo lường cũng như rà soát được chất lượng phần mềm đó là kiểm thử Vậy vấn đề đặt ra là liệu kiểm thử thủ công có thật

sự đạt hiệu quả tối ưu ? Có cách nào để tăng tốc độ kiểm thử, tiết kiệm nguồn nhân lực và tối ưu chi phí ? Thật vậy, đáp án chính là “Kiểm thử tự động” Trong phạm vi của môn “Thực tập doanh nghiệp” , em xin giới thiệu về “Kiểm thự tự động “ nói chung và quá trình làm việc của

em tại Công ty TNHH LogiGear Việt Nam

Sau bốn năm học tập trên trường, do muốn học hỏi them nhiều kiến thức thực tế cũng như muốn trải nghiệm trong môi trường doanh nghiệp Vì vậy, em quyết định chọn LogiGear - 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

Trang 3

LỜI CẢM ƠN

Đầu tiên, em trân trọng gửi lời cảm ơn tới công ty LogiGear Việt Nam đã tạo điều kiện cho em có cơ hội thực tập tại công ty

Chỉ trong vòng thời gian ngắn chưa đầy 4 tháng mà các Anh/Chị mentor ở công ty đã tận tình chỉ dạy cho em nhiều kiến thức bổ ích , không những kiến thức chuyên môn về kiểm thử tự động, kỹ năng lập trình, công nghệ, mà em còn được đào tạo các kỹ năng mềm: kỹ năng thuyết trình, kỹ năng làm việc nhóm và quan trọng nhất là kỹ năng nghiên cứu cũng như giải quyết vấn

đề

Đặc biệt, em chân thành cảm ơn sự dẫn dắt nhiệt tình của anh Phạm Đỗ Huy Hoàng (Technical Lead của nhóm em), em đã học hỏi rất nhiều từ kỹ năng giải quyết vấn đề cũng như

kỹ năng nghiên cứu và sử dụng công nghệ mới từ Anh Bên cạnh đó, em cũng không quên cảm

ơn sự giúp đỡ của Anh Phạm Nguyên Trình (Product Owner), Anh Hoàng Nguyễn Khắc Duy (Scrum Master), Anh Ngô Hoàng Minh (Giám Đốc) đã chỉ dạy em rất nhiều điều về tư duy làm sản phẩm, kỹ năng ước lượng công việc và phân tích vấn đề Em may mắn được dự nhiều buổi họp của các Anh được xem các Anh phân tích vấn đề, lập kế hoạch, giải quyết vấn đề, cải thiện sản phẩm và đặc biệt là tư duy Agile để làm sản phẩm và chuyển giao nhanh nhất có thể 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

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

Phan Lê Quang

TpHCM, ngày 06 tháng 01 năm 2021

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

Contents

Chương 1: Giới thiệu công ty thực tập 6

1 Giới thiệu công ty LogiGear 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 Tìm hiểu quy trình và cách thức làm việc 7

3 Nghiên cứu kỹ thuật 10

3.1 Các công cụ làm việc 10

3.2 Tìm hiểu về project sắp tham gia 11

3.3 Tìm hiểu về các công nghệ & kỹ thuật liên quan 11

4 Thực hiện dự án 14

5 Lịch làm việc 14

Chương 3: Chi tiết về dự án 15

1 Giới thiệu về dự án 15

1.1 Chi tiết tính năng 16

2 Thực hiện 16

3 Kế hoạch 17

TÀI LIỆU THAM KHẢO 18

TỔNG KẾT 19

Trang 6

Chương 1: Giới thiệu công ty thực tập

1 Giới thiệu công ty LogiGear

LogiGear được thành lập tại Thung lũng Silicon vào năm 1994 bởi các nhà lãnh đạo hàng đầu trong ngành kiểm thử phần mềm Trụ sở chính đặt tại Thung lũng Silicon Bên cạnh đó phần lớn nhân viên kiểm thử phần mềm l tại Thành phố Hồ Chí Minh

và Đà Nẵng, Việt Nam

Được vinh danh trong top những công ty đang phát triển nhanh nhất năm 2009 (2009’s Fastest Growing Companies) bởi Inc 500|5000, Silicon Valley Business Journal and the San Francisco Business Times

2 Sản phẩm của công ty

• Test Architect

Là một nền tảng tích hợp kiểm thử tự động tập trung vào việc mở rộng phạm vi kiểm thử và năng suất Vì là tool kiểm thử “ít code”, nên Test Architect sẽ giúp cho các tester ở tất cả các cấp độ dễ tiếp thu và sử dụng để kiểm thử tự động

• Gondola Studio

Trang 7

Gondola Studio là một nền tảng tích hợp kiểm thử tự động cho các ứng dụng hiện đại chạy trên Android & iOS, trình duyệt trên thiết bị di động và trình duyệt trên máy tính với các điểm nổi bật sau :

Chương 2: Nội dung thực tập

Đợt thực tập với chủ đề “Phát triển công cụ Kiểm thử tự động” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình ứng dụng kiểm thử cùng các kỹ năng kiểm thử liên quan 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 kiểm thử chuyên nghiệ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, quá trình thành lập và phát triển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty

• Giới thiệu về cách thức làm việc trong công ty như 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ông việc…

• Giới thiệu về team và sản phẩm sẽ thực hiện Đồng thời bàn giao công việc, set up máy và môi trường để làm việc

Kết quả :

• Hiểu thêm về công ty LogiGear, 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, tác phong làm việc có kế hoạch, có

kỷ luật, có trách nhiệm

• Biết cách đọc document để cài đặt máy và môi trường sao cho phù hợp với yêu cầu công việc

2 Tìm hiểu quy trình và cách thức làm việc

Thời gian : 1 tuần

Nội dung :

• Được đào tạo về Agile:

Trang 8

o Định nghĩa:

là phương thức phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm với mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt

o Tôn chỉ Agile :

▪ Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ: Trọ

ng tâm đặt lên con người, xây dựng tương tác và hỗ trợ giữa các t hành viên trong nhóm Những thành viên có năng lực, chịu tương trợ nhau trong công việc sẽ mang đến thành công cho dự án

▪ Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian đ

ể làm ra phần mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách h àng

▪ Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiể

u được khách hàng cần gì để tư vấn và điều chỉnh sản phẩm thay

vì chỉ dựa vào các điều khoản trong hợp đồng

▪ Phản hồi thay đổi hơn là bám sát kế hoạch:

Agile khuyến khích thích nghi với sự thay đổi, đó có thể là thay đ

ổi về công nghệ, nhân sự, deadline,

o Đặc trưng của Agile :

▪ Đáp ứng toàn diện nhu cầu khách hàng thông qua việc giao hàng sớm và sản phẩm có giá trị

▪ Thay đổi yêu cầu được chào đón, thậm chí là rất muộn trong quá t rình phát triển

▪ Giao phần mềm chạy được cho khách hàng một cách thường xuyê

n

▪ Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau t rong suốt dự án

▪ Xây dựng dự án xung quanh các cá nhân có động lực

Cung cấp sự hỗ trợ cần thiết, môi trường làm việc và niềm tin để hoàn thành công việc

▪ Trao đổi trực tiếp là cách truyền đạt thông tin hiệu quả nhất

▪ Thước đo chính của tiến độ là phần mềm chạy tốt

▪ Phát triển liên tục và bền vững

▪ Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế

▪ Nghệ thuật tối đa hóa lượng công việc chưa xong

Sự đơn giản là cần thiết

▪ Nhóm tự tổ chức

▪ Thích ứng thường xuyên với những thay đổi

Trang 9

Kết quả :

▪ Hiểu được lý do tại sao công ty áp dụng Agile

▪ Điểm khác biệt giữa Agile và các quy trình phát phần mềm cũ như waterfall

Nó tách vòng đời phát triển dự án thành chạy nước

rút

Quá trình phát triển phần mềm được chia thành các giai đoạn riêng biệt

Nó theo một cách tiếp cận gia tăng Phương pháp thác nước là một quá

trình thiết kế tuần tự

Phương pháp nhanh được biết đến với tính linh

hoạt của nó

Thác là một phương pháp phát triển phần mềm có cấu trúc nên hầu hết thời gian nó có thể khá cứng nhắc

Agile có thể được coi là một bộ sưu tập của nhiều

dự án khác nhau

Phát triển phần mềm sẽ được hoàn thành như một dự án duy nhất

Agile là một phương pháp khá linh hoạt cho phép

thay đổi được thực hiện trong các yêu cầu phát

triển dự án ngay cả khi kế hoạch ban đầu đã được

hoàn thành

Không có phạm vi thay đổi các yêu cầu khi phát triển dự án bắt đầu

Phương pháp nhanh , theo một cách tiếp cận phát

triển lặp lại vì quy hoạch, phát triển, tạo mẫu và các

giai đoạn phát triển phần mềm khác có thể xuất

hiện nhiều lần

Tất cả các giai đoạn phát triển dự án như thiết kế, phát triển, thử nghiệm, vv được hoàn thành một lần trong mô hình Thác

Kế hoạch kiểm tra được xem xét sau mỗi lần chạy

nước rút

Kế hoạch kiểm tra hiếm khi được thảo luận trong giai đoạn thử nghiệm

Phát triển nhanh là một quá trình trong đó các yêu

cầu được dự kiến sẽ thay đổi và phát triển

Phương pháp này là lý tưởng cho các

dự án có yêu cầu nhất định và thay đổi không được mong đợi

Trong phương pháp Agile, thử nghiệm được thực

hiện đồng thời với phát triển phần mềm

Trong phương pháp này, giai đoạn

"Thử nghiệm" xuất hiện sau giai đoạn

Trang 10

Agile Waterfall

"Xây dựng"

Agile giới thiệu tư duy sản phẩm, nơi sản phẩm

phần mềm đáp ứng nhu cầu của khách hàng cuối

cùng và thay đổi chính nó theo nhu cầu của khách

hàng

Mô hình này cho thấy một tư duy dự

án và đặt trọng tâm của nó hoàn toàn vào việc hoàn thành dự án

Agat methdology hoạt động đặc biệt tốt với Time

& Materials hoặc tài trợ không cố định Nó có thể

làm tăng căng thẳng trong các kịch bản giá cố

định

Giảm rủi ro trong các hợp đồng giá cố định của công ty bằng cách nhận được thỏa thuận rủi ro vào đầu quá trình

Thích các nhóm nhỏ nhưng chuyên dụng với mức

độ phối hợp và đồng bộ hóa cao

Phối hợp / đồng bộ hóa nhóm rất hạn chế

Chủ sở hữu sản phẩm với nhóm chuẩn bị các yêu

cầu chỉ là về mỗi ngày trong một dự án

Phân tích kinh doanh chuẩn bị các yêu cầu trước khi bắt đầu dự án

Đội kiểm tra có thể tham gia vào các yêu cầu thay

đổi mà không có vấn đề gì

Thật khó để thử nghiệm bắt đầu bất kỳ thay đổi nào về yêu cầu

Mô tả chi tiết dự án có thể được thay đổi bất cứ lúc

nào trong quá trình SDLC

Mô tả chi tiết cần thực hiện phương pháp tiếp cận phát triển phần mềm thác nước

Các thành viên của Nhóm Agile có thể hoán đổi

cho nhau, do đó, chúng hoạt động nhanh hơn

Cũng không cần thiết cho các nhà quản lý dự án vì

các dự án được quản lý bởi toàn bộ nhóm

Trong phương pháp thác nước, quy trình luôn đơn giản như vậy, người quản lý dự án đóng một vai trò thiết yếu trong mọi giai đoạn của SDLC

▪ Nắm được tư tưởng của Agile

3 Nghiên cứu kỹ thuật

3.1 Các công cụ làm việc

Thời gian : 1 tuần

Trang 11

Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc

Trong thời gian này, trainer đã hướng dẫn thực tập sinh tìm hiểu về các công cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như :

• GIT: công cụ quản lý mã nguồn

• Visual Studio Code : công cụ lập trình

• Công cụ giao tiếp Rocket.Chat và các công cụ nội bộ của công ty

Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên

Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ

với nhau, so với việc dùng các IDE nặng nề

3.2 Tìm hiểu về project sắp tham gia

Thời gian 2 tuần

Nội dung :

• Được giới thiệu về sản phẩm Gondola Studio là công cụ kiểm thử tự động giúp bạn viết testscript thông qua giao diện đơn giản không cần nhiều kiến thức lập trình, với các điểm nổi bật sau :

▪ Giao diện thân thiện

▪ Hỗ trợ đa nền tảng

▪ Dễ dàng tùy chỉnh

▪ Dễ dàng tích hợp vào các dịch vụ đám mây hiện đại

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ả :

- Bước đầu hiểu biết về Gondola Studio

- Được sử dụng qua các chức năng của Gondola Studio

- Được tiếp xúc với các công nghệ DevOps hiện đại

3.3 Tìm hiểu về các công nghệ & kỹ thuật liên quan

Nội dung:

- Ngôn ngữ lập trình Javascript/Typescript

o TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó có thể được coi là một phiên bản nâng cao của Javascript bởi việc bổ sung tùy chọn kiểu tĩnh và lớp hướng đối

Trang 12

tượng mà điều này không có ở Javascript TypeScript có thể sử dụng để phát triển các ứng dụng chạy ở client-side (Angular2) và server-side (NodeJS)

o Ngoài được học các khái niệm cơ bản của Typecript còn được học các kỹ thuật lập trình sao cho code dễ bảo trì/sửa chữa Bên cạnh

đó còn được học các kỹ thuật nâng cao : Design pattern, Dependency Injection, cơ bản về xây dựng kiến trúc phần mềm,…

- ReactJS

o Định nghĩa : ReactJS được hiểu nôm na là một thư viện trong đó

có chứa nhiều JavaScript mã nguồn mở và cha đẻ của ReactJS đó chính là một ông lớn với cái tên ai cũng biết đó chính là Facebook Mục đích của việc tạo ra ReactJS là để tạo ra những ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả cao với những mã hóa tối thiểu Và mục đích chủ chốt của ReactJS đó chính là mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thật nhanh và có khả năng mở rộng cao và đơn giản thực hiện

o Được tìm hiểu và thực hành về các khái niệm liên quan ReactJS

▪ JSX

▪ Render element

▪ Component

▪ State và Props

▪ Life cycle

▪ Form

▪ Handle event

▪ Error handler

▪ React hook

Trang 13

▪ Cách viết React với Typescript

Thực hiện :

- Tham gia đầy đủ các buổi trainning

- Làm các bài tập thực hành

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm

- Thử fix một vài bug cơ bản của sản phẩm

Kết quả :

- Hiểu được những khái niệm cơ bản trong ReactJS

- Cách làm sản phẩm với ReactJS và những điểm cần lưu ý

- Redux

- Định nghĩa : Redux js là một thư viện Javascript giúp tạo ra thành một lớp quản lý

trạng thái của ứng dụng Redux được xây dựng dựa trên nền tảng tư tưởng của ngôn ngữ Elm và kiến trúc Flux do Facebook giới thiệu

- Được tìm hiểu và thực hành về kiến trúc của Redux

Giống như kiến trúc Flux, chúng ta có một component view (của React) gửi một Action Action tương tự cũng có thể được gửi từ phần khác của hệ thống Action này được gửi không phải đến trung tâm mà trực tiếp đến một Store Đây chính là điểm khác biệt lớn nhất giữa Redux và Flux Logic quyết định dữ liệu được thay đổi trực tiếp như thế nào trong các hàm được gọi là Reducers Khi Store nhận được một Action nó sẽ yêu cầu Reducers thông tin mới nhất của State được cập nhập bằng cách gửi state hiện tại và

Trang 14

thông tin Action Sau đó Reducers cần trả về State mới với định dạng là Immutable Sau

đó Store sẽ tiếp tục và thực hiện cập nhập State nội bộ của nó Và bước cuối cùng, React Component sẽ thực hiện render lại

Thực hiện :

- Tham gia đầy đủ các buổi trainning

- Làm các bài tập thực hành

Kết quả :

- Hiểu được những khái niệm cơ bản trong Redux

- Sử dụng được Redux

4 Thực hiện dự án

Sau một tháng được training về ReactJS, Typescript,… thì trainer cho phép em bắt đầu tham gia vào dự án từ những bước cơ bản nhất, cụ thể ở phần lịch làm việc

Thời gian : ~ 9 tuần

5 Lịch làm việc

Mức

độ hoàn thành

Nhận xét của người hướng dẫn

1

- Tìm hiểu về phần mềm quản lý source code của công ty

- Làm quen với các công cụ làm việc trong công ty

- Học cách trao đổi, làm việc qua email

Nguyễn Khắc Duy

2

- Tìm hiểu sâu hơn về Typescript để áp dụng vào sự án

- Tìm hiểu về Visual Studio Code cũng như cách xây dựng một extension cho

Anh Phạm Đỗ Huy Hoàng

Ngày đăng: 05/09/2021, 21:06

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w