1. Trang chủ
  2. » Công Nghệ Thông Tin

BÁO cáo THỰC tập KIỂM THỬ PHẦN mềm

22 618 7

Đ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 22
Dung lượng 783,43 KB

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

Nội dung

Với sự cạnh tranh giữa các ứng dụng hiện nay, thói quen, nhu cầu sử dụng lâu dài của người dùng và khách hàng phụ thuộc ít nhiều vào chất lượng của ứng dụng đó, do đó kiểm thử phần mềm đ

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

KIỂM THỬ PHẦN MỀM

Công ty thực tập: Công ty TNHH Phần mềm FPT Người phụ trách: Nguyễn Xuân Thanh

Thực tập sinh: Thái Thị Phương Lan

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

Trang 2

2

LỜI MỞ ĐẦU

Ngày nay, ngành công nghiệp phát triển phần mềm trên thiết bị động là một bộ phận không thể thiếu của ngành công nghiệp phần mềm Với tốc độ phát triển vô cùng mạnh mẽ, ngành lập trình trên thiết bị di động đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm

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át triển ứng dụng của 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át triển ứng dụng trên thế giới

Kiểm thử phần mềm là một giai đoạn quan trọng trong các quy trình phát triển phần mềm Với sự cạnh tranh giữa các ứng dụng hiện nay, thói quen, nhu cầu sử dụng lâu dài của người dùng và khách hàng phụ thuộc ít nhiều vào chất lượng của ứng dụng đó, do đó kiểm thử phần mềm đã và đang là nhân tố không thể thiếu để quyết định sự thành bại của một ứng dụng trên thị trường, cũng như uy tín đối với tổ chức sản xuất ra ứng dụng

Sau bốn 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 tham gia vào quy trình phát triển một ứng dụng di động trong một môi

trường chuyên nghiệp, em quyết định sẽ lựa chọn vị trí Kiểm thử phần mềm để thực tập trong học kì này Và công ty em lựa chọn là công ty Fsoft - một môi trường lý tưởng, hiện đại, có nhiều những dự án outsource với thị trường nước ngoài như Nhật Bản, Singapore, một số nước ở Châu Âu…

Trang 3

Đặc biệt cảm ơn chị Trương Ánh Tuyết, đã 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, hướng dẫn em các công việc của một người Kiểm thử phần mềm (Tester): viết testcase, làm test report, trao đổi với developer, trao đổi với khách hàng về nghiệp vụ sản phẩm, phân tích yêu cầu,…; cảm ơn chị Nguyễn Thị Thu Hà, anh Nguyễn Song Hải là PM dự án đã giúp đỡ em về quy trình, cách làm việc teamwork hiệu quả, cảm ơn anh Nguyễn Xuân Thanh là giám đốc Trung tâm phát triển công nghệ thông mình là người quản lý nhân sự trực tiếp đã theo sát, đánh giá thực lực và cho em những lời nhận xét khách quan

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

Thái Thị Phương Lan

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

Trang 4

4

NHẬN XÉT CỦA KHOA

Trang 5

5

MỤC LỤC

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

1 Giới thiệu công ty FPT Software 6

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

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

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8

2 Nghiên cứu kỹ thuật 8

2.1 Các công cụ quản lý dự án 8

2.2 Tìm hiểu mô hình Agile trong phát triển và kiểm thử phần mềm 8

2.3 Từ căn bản tới các bước hoàn thiện testcase 14

2.4 Execute test, log bug, verify bug 16

3 Thực hiện project 17

Chương 3: Chi tiết về project 18

Chương 4: Tổng kết 22

Trang 6

6

CHƯƠNG 1: GIỚI THIÊU CÔNG TY THỰC TẬP

1 Giới thiệu công ty FPT Software

FPT Software thành lập năm 1999, là công ty thành viên của FPT, Tập đoàn Công nghệ hàng đầu của Việt Nam Sau 17 năm thành lập FPT Software hiện đang là công

ty phần mềm lớn nhất của Việt Nam và đứng trong Top 100 Nhà cung cấp dịch vụ Outsourcing toàn cầu do International Association of Outsourcing Professionals (IAOP) đánh giá

FPT Software theo đuổi mục tiêu gia công phần mềm để đáp ứng cho nhu cầu phát triển CNTT của các hãng phần mềm trong nước, các công ty lớn trong nước và tham vọng hơn là xuất khẩu phần mềm trên toàn thế giới cho các công ty nước ngoài biết đến tập đoàn FPT, mục đích chính là vươn đến tầm cao mới thông qua công nghệ nhằm nâng cao năng suất lao động

Kinh doanh của FPT Sofware xuất phát từ Công nghệ thông tin và Viễn Thông FPT

là cốt lõi để đáp ứng cho khách hàng trên 63 tỉnh thành trên toàn lãnh thổ Việt Nam và mở rộng đến khách hàng toàn cầu Từ khi được thành lập cho đến nay, FPT Software đã là công ty phần mềm số 1 tại Việt Nam trong lĩnh vực tích hợp hệ thống, phân phối và bán lẻ, dịch vụ Công Nghệ Thông tin, xuất khẩu gia công phần mềm, bán lẻ sản phẩm CNTT

Từ 13 lập trình viên với giấc mơ đưa trí tuệ Việt Nam đi khắp năm châu, đội quân FSOFT ở tuổi 18 với hơn 10.000 người, doanh thu hơn 230 triệu USD, tiếp tục biến giấc mơ biến Việt Nam trở thành điểm sáng về CNTT trên bản đồ thế giới thành hiện thực với mục tiêu đạt 1 tỉ USD doanh số năm 2020 và 30.000 người

Sau 17 năm phát triển thị trường toàn cầu, đến nay FPT Software đã có 23 văn phòng tại 14 quốc gia bao gồm Việt Nam, Nhật Bản, Singapore, Mỹ, Pháp, Đức, Slovakia, Malaysia, Úc, Trung Quốc, Hàn Quốc, Myanmar, Philippines, Thái Lan

Trang 7

7

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

Là công ty chuyên xuất khẩu dịch vụ phần mềm, FPT Software cung cấp các dịch vụ phát triển phần mềm và bảo trì, triển khai ERP, QA, chuyển đổi ứng dụng, hệ thống nhúng, điện toán di động, điện toán đám mây… trong nhiều lĩnh vực như: Tài chính ngân hàng, Viễn thông, Y tế, Chế tạo, Công nghiệp xe hơi, Dịch vụ công… Hiện FPT Software đang tập trung nghiên cứu và phát triển dịch vụ CNTT dựa trên những nền tảng công nghệ mới như IoT, S.M.A.C, cho các lĩnh vực sản xuất máy bay, sản xuất ô tô, ngân hàng, truyền hình vệ tinh, viễn thông trên phạm vi toàn cầu Công ty hiện đã và đang cung cấp dịch vụ cho khoảng 450 khách hàng là các tập đoàn lớn trên thế giới, trong đó có 43 khách hàng nằm trong danh sách Fortune Global 500

Trang 8

8

CHƯƠNG 2: NỘI DUNG THỰC TẬP

Đợt thực tập với chủ đề Kiểm thử phần mềm trong ứng dụng tracking xe oto 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 vị trí Kiểm thử phần mềm, đồng thời rèn luyệ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ê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, 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, 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

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 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…

Kết quả : Hiểu thêm về công ty FPT Software, 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ách nhiệm hơn

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

2.1 Các công cụ quản lý dự án

Thời gian : 1 ngày

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

làm việc

Trong thời gian này, supervisor đã 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ư Jira tool, Azure tool - sử dụng để quản lý task, theo dõi tiến độ dự án, quản lý nguồn lực

dự án, MS Teams, Workchat – là kênh để trao đổi giữa của dự án

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àm quen và sử dụng thành thạo các thao tác trên Jira tool, Azure tool như

log work, tạo task, kéo task

2.2 Tìm hiểu mô hình Agile trong phát triển và kiểm thử phần mềm

Thời gian : 2 ngày

Nội dung :

Trang 9

- Nguyên tắc áp dụng trong phương pháp Agile

a, Kiểm thử giúp dự án nhanh chóng được bàn giao

Ở dự án truyền thống, kiểm thử thường được xem là bước cuối kiểm tra chất lượng sản phẩm Và việc ngăn chặn lỗi của phầm mềm bị coi như trách nhiệm của QA/tester Bug được tìm thấy dù quan trọng hay không thì cũng sẽ làm chậm quá trình bàn giao sản phẩm

Trong dự án Agile, chúng ta xây dựng một sản phẩm tốt ngay từ ban đầu, sử dụng kiểm thử để phản hồi trên ngay khi phát triển để làm thế nào cho sản phẩm tương đồng với yêu cầu

Nghe có vẻ là thay đổi nhỏ, nhưng thực chất thì việc này có ý nghĩa lớn Mối liên

hệ giữa tester và dev cần là sự cộng tác, tương hỗ lẫn nhau

Trang 10

10

b, Kiểm thử không chỉ là một giai đoạn của dự án Kiểm thử không phải là một giai đoạn trong quá trình phát triển Agile mà cần được tham gia sâu vào quy trình phát triển từ sớm

Cách tiếp cận Agile tập trung vào việc xác nhận những điều đúng đắn ngay từđầu, giảm sự cần thiết phải có nhiều kiểm thử viên (QA Tester) ở cuối quy trình

để đạt được kết quả Đảm bảo tiến độ dự án được liên tục

c, Cá nhân và sự tương hỗ quan trọng hơn quy trình Với dự án truyền thống, tester làm việc độc lập và chịu trách nhiệm với toàn bộ hoạt động test

Đối với Agile, các hoạt động test được thực hiện bởi toàn bộ dự án Để thực hiện được hết test thì cần thực hiện lặp lại qua các sprint

Tuy nhiên tới khi dự án lớn hoặc phức tạp lên thì sẽ có lúc không thể test hết các testcase đề ra và không thể thực hiện được mục tiêu ban đầu đề ra Có nghĩa team không thể thực hiện nhanh như họ nghĩ Vì nếu test chưa xong thì feature cũng không thể xong được, vì vậy để đẩy nhanh tốc độ thì cả team phải làm cùng nhau và đẩy nhanh phần chậm nhất, test cùng nhau

Trang 11

11

d, Rút ngắn vòng lặp phản hồi Thời gian từ khi viết code và thực hiện code tới khi biết được code vận hành như thế nào được gọi là feedback loop (vòng phản hồi)

Nếu một phần mềm không được thực hiện test cho tới khi kết thúc và được bàn giao thì vòng phản hồi này bị kéo dài tới cả tháng, như thế là quá dài

Agile tạo nên một vòng phản hồi ngắn hơn bởi với dự án Agile, phần mềm được sẵn sàng để test ngay từ khi bắt đầu Đặc thù của Agile là đội dự án có rất nhiều cấp độ kiểm thử để có thể tấn công được nhiều loại dữ liệu khác nhau

Agile sử dụng nhiều test tự động vì nó trả lại phản hồi nhanh Test hồi quy thủ công mất nhiều thời gian thực hiện hơn, cần có nhân lực và có thể không thực hiện ngay lập tức được Kiểm tra thủ công vẫn còn quan trọng

Tuy nhiên, đội Agile thường thấy rằng những thông tin phản hồi nhanh chóng tạo nên bởi hồi quy tự động là chìa khóa để phát hiện các vấn đề một cách nhanh chóng, do đó làm giảm rủi ro và giảm việc phải làm lại

Trang 12

12

e, Thỏa mãn mong muốn của khách hàng Cho dù là test tự động hay test thủ công thì kịch bản test cần phải khớp với yêu cầu và mong đợi của khách hàng Trước khi tốn thời gian tìm bug nên đặt câu hỏi

để làm sáng tỏ mong muốn của khách hàng đối với chức năng sản phẩm

Trang 13

• Sử dụng các tài liệu hướng dẫn đơn giản

• Nắm bắt những ý tưởng thử nghiệm trong điều lệ kiểm nghiệm thăm dò

h, Chưa thể hoàn thành khi chưa qua giai đoạn kiểm thử Trong dự án truyền thống có sự phân tách rõ ràng giữa dev và test, đó là đặc trưng cho việc dev nói “xong” với phần họ phát triển nhưng nó vẫn chưa được test Do đó thực tế là phần phát triển ấy vẫn chưa xong cho tới khi test xong và bug được fix

Đó là lý do vì sao mà phần mềm chỉ được để “90% done” Agile không tính là

“done” mà nó cần được sẵn sàng cho sự chấp nhận của Product Owner và khách hàng cho tới khi nó được thực thi và test

Thực hiện :

- Tham gia đầy đủ các buổi training của công ty

Kết quả :

Trang 14

14

- Hiểu được cách vận hành của mô hình Agile trong phát triển và kiểm thử phần mềm

2.3 Từ căn bản tới các bước hoàn thiện testcase

Thời gian: 5 ngày (1 tuần)

Nội dung: Các kiến thức cơ bản để có 1 bộ testcase

Để mang đến một sản phẩm phần mềm chất lượng đáng tin cậy thì việc phân tích yêu cầu là khâu vô cùng quan trọng trong quá trình xây dựng phần mềm Hoạt động này đòi hỏi sự kết hợp rất chặt chẽ giữa khách hàng và người phân tích để vạch ra được xem chúng ta phải phát triển cái gì

Yêu cầu của phần mềm là tất cả các yêu cầu về phần mềm do người dùng nêu ra bao gồm các chức năng của phần mềm, hiệu năng của phần mềm, giao diện của phần mềm và một số các yêu cầu khác

Thông thường các yêu cầu phần mềm được phân loại dựa trên 4 thành phần của phần mềm như sau:

• Các yêu cầu về phần mềm

• Các yêu cầu về phần cứng

• Các yêu cầu về dữ liệu

• Các yêu cầu về con người Mục tiêu quan trọng nhất đối với chất lượng phần mềm là phần mềm phải thỏa mãn được các yêu cầu và mong muốn của người dùng

Người dùng thường chỉ đưa ra những ý tưởng, nhiều khi rất mơ hồ về phần mềm

mà họ mong muốn xây dựng Và việc của các kỹ sư phát triển phần mềm đó là phải giúp họ đưa những ý tưởng mơ hồ đó thành hiện thực và xây dựng được một phần mềm có đầy đủ các tính năng cần thiết thỏa mãn yêu cầu của người dùng Hơn thế nữa, ý tưởng của người dùng thường xuyên thay đổi và việc của nhà phát triển là phải nắm bắt và đáp ứng được các yêu cầu thay đổi đó một cách hợp lý

• Đọc và cố gắng hiểu mục đích của ứng dụng đang mong muốn là gì?

• Vừa đọc và hình dung, tưởng tượng xem phần mềm /màn hình đó sẽ chạy như thế nào

• Thẩm định từng yêu cầu phần mềm để xác định xem chúng có khả năng thực hiện được hay không

• Xác định các rủi ro có thể xảy ra với từng yêu cầu cụ thể

Trang 15

15

• Thảo luận với BA về những băn khoăn, vướng mắc, bất hợp lý, chưa rõ ràng trong tài liệu đặc tả yêu cầu

• Viết Q & A gửi cho Khách Hàng

• Dữ liệu đầu vào của test: định nhập cái gì để ra được kết quả mong muốn

• Việc xác định dữ liệu đầu vào của test thực sự là hoạt động tốn nhiều thời gian

• Dữ liệu test chính là phần Input dữ liệu đầu vào, để hệ thống xử lý và trả

ra Kết quả mong đợi

• Ví dụ: tester nhập dữ liệu test: 1.Nhập username = anhdt 2.Nhập password = abc@123 **Kết quả mong đợi / Expected result: **

• Một test case được viết tốt cần phải đề cập một cách rõ ràng kết quả mong đợi của ứng dụng hoặc hệ thống

• Mỗi bước thiết kế test nên chỉ ra rõ ràng những gì bạn mong đợi

• Phần mềm sẽ phải chạy đúng như Kết quả mong đợi, nếu ko giống thì sẽ là Lỗi ( bug/ defect) và test case đó là Fail

• File testcase cần có những step test đơn giản, minh bạch, dễ hiểu:

• Step test phải viết chi tiết rõ ràng để ngay cả khi tester khác đọc có thể thực hiện được

• Mục đích và phạm vi của testcase cũng được mô tả chi tiết

• Điều kiện tiền đề, data test cũng phải được ghi ở từng testcase nếu cần

• Testcase nên được review chéo bởi member trong team

• Không nên gộp quá nhiều kết quả confirm vào 1 case mà nên tách mỗi kết quả confirm ra từng case

• Khi tạo testcase nên đứng ở vị trí End user

• Testcase nên cover các trường hợp kiểm thử như: Phân lớp tương đương, giá trị biên, điều kiện normal và abnormal Cả các trường hợp free test không có trong đặc tả yêu cầu

• Chính xác, đầy đủ nghiệp vụ hệ thống

Trang 16

• Trình bày mạch lạc thống nhất cho toàn bộ tài liệu

• Có khả năng tái sử dụng (có thể dễ dàng cập nhật và sửa đổ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 như viết testcase của các chức năng cơ bản: Login, logout, register

- Viết thành công được test case, bao phủ hết các trường hợp

2.4 Execute test, log bug, verify bug, test API trên swagger

Thời gian: 10 ngày (1 tuần)

Nội dung:

- Sau khi có bộ testcase hoàn chỉnh, đồng thời lúc này developer cũng đã code hoàn thiện 1 số chức năng trong sprint hiện tại thì lúc này người kiểm thử (tester) sẽ thực hiện test các chức năng của sản phẩm dựa theo bộ testcase, đảm bảo rằng các chức năng hoạt động đúng như yêu cầu của khách hàng Bên cạnh

đó cũng là việc test UI/UX của sản phẩm, đảm bảo sản phẩm đúng theo như bản design Nếu như có lỗi (bug) tester sẽ thông báo với team dev cũng như log trên tool để mọi người theo dõi task Khi nào bug được fix thì nhiệm vụ của người

tester là test lại bug đó 1 lần nữa để đảm bảo rằng bug đã được fix

- Các API được cụ thể hóa trên swagger, tester lên đó để truyền dữ liệu, import và chỉnh sửa dữ liệu để đảm bảo rằng frontend đã trả đúng kết quả của backend,

backend đã trả kết quả đúng, … Thực hiện:

- Thực hiện kiểm thử trên sản phẩm project trong sprint 1

Kết quả:

Ngày đăng: 10/03/2022, 20:34

TỪ KHÓA LIÊN QUAN

w