1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực tập tốt nghiệp công ty giải pháp phần mềm tường minh (tma solutions)

51 3 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Báo cáo thực tập tốt nghiệp công ty giải pháp phần mềm tường minh (TMA Solutions)
Tác giả Trần Văn Hải Triệu
Người hướng dẫn Th.S Lộ Anh Uyển
Trường học Trường đại học Giao Thông Vận Tải Tp.Hồ Chí Minh
Chuyên ngành Điện - Điện Tử Viễn Thông
Thể loại graduation project
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 51
Dung lượng 9,64 MB

Nội dung

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ CHUONG 1: CONG TY TMA SOLUTION 1.1 Quá trình hình thành và phát triển TMA được thành lập năm 1997, là một trong những công ty phần mềm

Trang 1

KHOA ĐIỆN - ĐIỆN TỬ VIỄN THÔNG

s›Elics

UIH==-

BÁO CÁO THỰC TẬP TÓT NGHIỆP

CONG TY GIAI PHAP PHAN MEM TUONG MINH

(TMA SOLUTIONS)

GVHD: Th S Lé Anh Uyén Vii SVTH: Tran Van Hai Triéu LOP: DV18

MSSV: 1851040065

Trang 2

LỜI CẢM ƠN

Xin tran trong cam on dén quy Thay Cô khoa Điện - Điện Tử Viễn Thông Trường đại học Giao Thông Vận Tải Tp.Hồ Chí Minh đã hỗ trợ trong việc chuẩn bi các giấy tờ liên quan cho kì thực tập lần này Đặc biệt cảm ơn cô Lê Anh Uyên Vũ đã tạo điều kiện cho

em và các bạn qua việc giới thiệu thực tập ở công ty Cảm ơn các anh chị lầu 1 lab 6

công ty TNHH Giải Pháp Phần Mềm Tường Minh (TMA Solutions) đã nhiệt tình hướng

dẫn, chỉ dạy bó sung cho em những kiến thức còn thiếu cũng như là hỗ trợ quan tâm em

trong ba tháng thực tập Sự găn kết, chia sẻ của mọi người đã giúp cho em có thêm

những kinh nghiệm thực tiễn về công việc và cả trong cuộc sóng Đối với em những

điều đó là vô cùng quý báu

Bên cạnh đó, em cũng xin cảm ơn đến Quý công ty đã tiếp nhận việc thực tập giúp bản thân em được tiếp xúc với sự chuyên nghiệp, cần mẫn cùng những kinh nghiệm thực tế khiến em dẫn hoàn thiện hơn Những bài học, khóa đào tạo của Quý công ty rất bỏ ích,

đó chính là những kĩ năng rất cần thiết cho tương lai nghề nghiệp cũng như là định hướng của em

Đề hoàn thành bài báo cáo này em đã được tiếp thu rất nhiều những công nghệ, quy trình

và những thông tin đã được ứng dụng đưa vào doanh nghiệp Bài báo cáo này chủ yêu

sẽ nói về mảng kiểm thử phần mềm (Software Testing), chắc chăn việc thiếu xót hay những bắt cập là không thể tránh, rất mong Cô sẽ đóng góp va chia sẻ chân thành đề báo

cáo được chỉnh chu, rõ ràng hơn Những lời góp ý sẽ có ích rất nhiều cho bản thân em

sau nay

Trang 3

NHẠN XÉT CỦA GIẢNG VIÊN

Trang 4

MỤC LỤC

1.1 Qué trinh hinh thanh va phat trién oo ccc cece css ceceeeeseeeeeeeeeeee 1 1⁄2 Dịch vụ SẶ2222222 22 21221221221221211212222 re 2

1.2.1 Phát triển phần mềm (Software Developmen†) -: 2-52-++5+ 2 1.2.2 Kiểm thử phần mềm (Software Testing) - 2-25 Scccecrscsrxsrxerree 2

1.2.3 Porting & Chuyên đổi 52-52-52 S52 S2 SE 2222 2 EEEeEerrrkrrkrree 2

1.2.4 Hỗ trợ sản XuẤt - SH SnS St TS 1111111111551 1111111111111 xey 3

1.2.5 _ Dịch vụ quản lý công nghệ thông tín 5S Sàn S+ sen eeket 3

1.2.6 Thiết kế trực quan -s- 5:5 +++St2SE+EE2EE SE E222 2E2EEE2EEEEeckree 3

1.3 Khả năng cạnh tran - - - <1 1S 1S KH TH TH TH kg 4 1.4 Chương trình thực (ập S-Ă TS ST SH TH TH nh nh 5

CHƯƠNG 2: SOFTWARE TESTING - KIỀM THỬ PHẢN MÈÉM 6

2.2.2 Kiêm thử tích hợp (Intergration Testing) - 25+ 5c5czcxscssxecxecea 16

2.2.3 Kiêm thử hệ thống (System Testing) ¿- s52 ccc2c se crererrerxerree 18 2.3 Các loại kiểm thử 22 221 21122 2311 2111211112111121212121211212112 1 xe 19

2.3.1 Kiém thir hdi quy (Regression Tesfing) ¿-c2- 2 cc+cs+ccsrxsrszxesea 19 2.3.2 Kiém thir tinh trang (Sanity Testing) .0.ccccccccccsesesessessestesseseeeseesseeees 20

Trang 5

2.3.3 Kiếm thử tính năng và kiểm thử phi tính năng (Functional và Non-Functional)

— Ô 20

2.4 Phát triển Test Case 5-22 ee 21

2.4.1 Tài liệu kiểm thử (Test Documenfation) . 2 2 +s++s+s+e+xx+x+x+xscee 21 2.4.2 Vién canh kiém thir (Test Scenario) .c.csccsessesesesssseseseeeeesesseseseseeveteeees 22 2.4.3 Test case, test su1f và fesf pÏATi Gà LH HS HH HH H* HH HH hư, 22

2.5 Các kĩ thuật kiểm thứr - 2-52 5-52 22223 212122121221212212122121212111 211112 ce 25

2.5.1 Phân tich gid tri bién & Phan chia bang nhau — Boundary Value Analysis & Equivalance Partioning cece eee cce cece cece e cece eeec ae SH HH HH HH kg 25

2.5.2 Kiém thir Use Case .c.ccccccescssesssssssessssessessssessesessessessessssiesissesssnssseseeneeees 27

2.5.3 Kiém thir Checklist-based :cccccccscsccseseececesececesesescstsceccecestsvsvscecseececaeees 28

CHUONG 3: CAC CÔNG CỤ HỖ TRỢ TRONG TESTING - 29

Trang 6

DANH MỤC HINH ANH

Hình I - Các bằng khen, giải thưởng TMA đạt được .-ẶẶĂĂSSSssse se 1

Hình 2 ~ Biểu đồ nhân lực từ năm 1997 - 2022 -©cccccvcsrxrrrrerrrrrrev 2 Hình 3 — Thiết kế UX dựa trên mục tiêu doanh nghiệp và hành vi người đùng 4

Hình 4 — Thiết kế UI dựa trên tiêu chuẩn và xu thế quốc tế .-. -2- 2525: 4 Hình 5 — Hợp tác với đội ngũ kĩ sư trong suốt vòng đời dự ấn .- - 4 Hinh 6 — Chi phi dé stra 16i theo từng giai đoạn . 7-©2+c2c+ccccscxc 7 Hinh 7 — (i09 na ¬ 10

in i8 S60: 0 12 Hinh 9 — Agile modelo ớỚG 14 Hình 10 — Phương pháp Bottom-up oo eceeccceccccecceeeceeseeeeseecesaeceaaeceacescaeeneeeseeneesaees 17 Hình 11— Phương pháp Top-IDOWN -SẶcQTSẠ ST SH HH Hy 17 Hình 12 — Phương pháp Hybird - c5 3213251325113 351 122511 111111 re 18

Hình 13 — Kiến trúc kiêm thử phần mềm . -2- 2 25255252 5++z++z+zz+zce2 19

in 0 co (9010 :- 33 Hình 15 — Giao diện của MỘT TT Box - G S S2 S211 SH 11 HH re 35

Hình 16 — Giao diện của Postman - - - SS +2 x22 c2 S12 355cc ca 38

Hinh 17 — Thành phần của Selenium 2-52-52522S22S2Sx2Sxxxsrxsrsrcee 38

Trang 7

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

CHUONG 1: CONG TY TMA SOLUTION

1.1 Quá trình hình thành và phát triển

TMA được thành lập năm 1997, là một trong những công ty phần mềm hàng đầu Việt

Nam đã và đang đạt được nhiều thành tựu danh giá TMA đã phát triển bền vững qua

nhiều năm với nguồn nhân là các kĩ sư trẻ, nhiệt huyết luôn được đánh giá cao vả rất được tin cậy bởi khách hàng Trong suốt 25 năm hoạt động (1997 - 2022) TMA đã

không ngừng phát triển và được truyền thông trong nước cũng như là ngoài nước không

ít lần đề cập tới chăng hạn như đài CNN của Mỹ, báo USA today, NHK World Japan,

@ Bằng khen của Ủy ban Nhận dân Thanh phố Hồ Chỉ Minh Có thành tích xuất séc trong lĩnh vực CNTT-TT, góp phần tích cực vàu sự phết triểt

#33 CNTT-TT của Thành chổ

< Chững nhận về cúp của Hội Tin học Thành hố 46 Chi Minh (HCA)

Huy Chuting ⁄ãng Xuất khẩu Phẩn tiêm {15 năm liền từ 2004 đển 2019)

Top10 Don vi Xuat khau Phan Mém, FinTech, Al va |oT

& <

Bang khen cla VINAS& C4 thanh tích xuất sắc, đồng qốp cho các hoạt động của Hiệp hội và cho sự phất triển của ngành phén mén, dịch vn,

Là mệt trang 15 câng ty hàng đầu thé gidi trang việc 4p dung hiéu qua quy trinh gia cong phan mém {Bác căn của cong ty tu van My

Trang 8

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

Nhiều ứng dụng quan trọng được phát triển cho các công ty hàng đầu trong lĩnh vực viễn thông và mạng, tài chính & bảo hiểm, thương mại điện tử,

Các dịch vụ phát triển rất đa dang Kiểm thử phần mém (Software Testing) Xác minh toàn bộ sản phẩm (quản lý tất cả khía cạnh của kiểm thử sản phẩm,

đánh giá chất lượng sản phẩm, các giải pháp kiểm thử) Lập kế hoạch kiếm thử và thực thi (kiêm thử tính năng - functional, kiểm thử

tích hợp và hệ thống — integration & system, kiểm thử hiệu nang — performance,

-)

Kiểm thử tự động (phát triển các tình huống cần kiêm thử tự động, những công

cụ hoặc giải pháp kiểm thử tự động tùy chỉnh, thực thi scripts tự động và báo cáo)

Porting & Chuyên đổi

Hiện đại hóa những sản phâm và nền tảng dựa trên các kĩ thuật mới (.NET, Java, HTMLS, Ruby, )

Chuyến hóa đến cloud (Amazon AWS, MS Azure, )

Trang 9

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

1.2.4

Tái cầu trúc ứng dụng (thiết kế, kiến trúc) Chuyến đổi từ một cơ sở đữ liệu sang một cơ sở dữ liệu khác (SQL Server, SQL,

Oracle, Hadoop, ) Thay đổi từ một nền tảng đến một nền tảng khác (Desktop, Web, tablet/mobile, Window 8/10, Linux, )

Hỗ trợ sản xuất

Quản trị ứng dụng, server, đâm mây đồng thời hỗ trợ cầu hình và bảo trì

Theo dõi hệ thống, tối ưu hóa và cảnh báo

Sửa chữa và bắt lỗi từ xa

Phân phối và cải tiến

Hỗ trợ 24/7

Dịch vụ quản lý công nghệ thông tin

Hỗ trợ ứng dụng và quản trị server hoặc đám mây (thiết lập và bảo trì hệ thống email, FPT server, web Proxy, DNS, lưu trữ)

H6 tro kết nối (thiết kế và hỗ trợ, khắc phục hệ thong ha tang mang (LAN, WAN

bao gồm cả dịch vụ Wifi bảo mật từ lớp core cho đến lớp truy nhập)

Hệ thong thong tin (PBX, IP PBX)

Bao mat (tường lửa, proxy, anti-virus/spam, IDS/IPS, phân tích ghi chú và trực quan hóa)

Thiết kế trực quan Thiết kế app cho nhiều nền tảng và thiết bị (web, mobile device, tablet, desktop) Thiết kế trực quan các ứng dụng cho nhiều doanh nghiệp khác nhau như thương mại điện tử, tài chính và bảo hiểm, y tẾ, giáo dục, viễn thông, )

Những khách hàng từ nhiều quốc gia

Trang 10

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

Hình 3 — Thiết kế UX dựa trên mục tiêu doanh nghiệp và hành vỉ người dùng

GLOBAL DESIGNS STANDARDS

Trang 11

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ Nhiều lĩnh vực mang tính cạnh tranh cũng được giới thiệu ở TMA:

Telecom/Network (VoIP, SIP, quan li truy nhap va mang., ) Microsoft Technologies (C#, C++, ASP.NET, SQL Server, ) Java (JSP/Servlet, JSF, BPMN2., )

Open Source (PHP, Perl, Python, MySQL ) Front — End Development (HTMLS, CSS3, Responsive Web, ) Mobile Technologies (GOS, Android, Windows Phone, Jquery, ) Cloud Application (Microsoft Azure, Amazon EC, .)

Big Data & Analytics & AI (SSRS, SSIS, Cognos, Data Warehousing, ) Internet Of Things (Health monitor, Smart home, device monitor, ) Embedded Sofware (Firmware, Device Drivers, VxWorks, ) Software Testing (Manual and Automation, Functional Test, ) DevOops (Automation, CD and CI tools, )

Automotive Software (Smulink Stateflow, MATLAB, TPT, ASCET., )

TMA 5G Center (Private Network, Network silcing, O-RAN., )

TMA RPA Solution (Automation Anywhere, Ui Path, Blueprism, ) 1.4 Chương trình thực tập

Chương trình thực tập ở TMA chính là cơ hội để các sinh viên có thể tiếp cận cũng như

là trải nghiệm quy trình làm việc các dự án và môi trường làm việc Trong quá trình thực tập các sinh viên sẽ nhận thây những điều sau:

Môi trường làm việc năng động

Được hướng dẫn và hỗ trợ nhiệt tình bởi các anh/chi

Có cơ hội tận dụng kiến thức đã học tại trường vào thực tế

Tìm hiểu thêm các công nghệ mới trong từng dự án

Có các khóa đảo tạo về kĩ năng và chuyên môn để trau đồi kiến thức, tự hoàn

thiện bản thân

Trang 12

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

CHUONG 2: SOFTWARE TESTING — KIEM THU PHAN MEM

2.1 Lý thuyết cơ bản

2.1.1 Kiểm thử phần mềm

Kiểm thử phần mềm là một tiến trình gồm nhiều hoạt động khác nhau chăng hạn như

testing planning (lập kế hoạch kiêm thử), phân tích, thiết kế và thực hiện kiêm thử,

báo cáo tiền trình và kết quả kiêm thử, đánh giá chất lượng của đối tượng kiêm thử Kiểm thử phần mềm chính là một giải pháp để kiểm tra xem liệu sản phẩm phan mềm thực sự có phù hợp với những yêu cầu hay chưa và để đảm bảo rằng là sản phâm phần mềm không có lỗi Bên cạnh đó, nó có liên quan tới một vài việc thực thi của thao tác thủ công hay bằng các công cụ phần mềm tự động để đánh giá một hoặc nhiều đặc tính mà ta quan tâm Mục đích cuối cùng của kiêm thử phần mềm là nhận dạng những lỗi, các sai sót, hay những yêu cầu bị bỏ sót cái mà trái ngược với yêu

câu thực tê

Kiểm thử phần mềm là quan trọng bởi vì trong thực tế ta có thé bat gặp từ những ứng dụng doanh nghiệp đến các sản phẩm của khách hàng thì hầu hết mọi người đều gặp phải những lần sản phẩm phần mềm không hoạt động đúng như mong đợi Những phần mềm hoạt động không chính xác sẽ là nguyên nhân dẫn đến rất nhiều vấn đề chăng hạn như mắt tiền bạc, thời gian hoặc danh tiếng của doanh nghiệp đó, nghiêm trọng hơn nữa những lỗi không được phát hiện sớm có thể dẫn đến các vấn

đề về chắn thương tai nạn hay thậm chí là tử vong Do đó kiểm thử phần mềm chính

là một cách để đánh giá chất lượng của phần mềm và giảm rủi ro trong việc phần mềm ngưng hoạt động

Những mục tiêu điển hiền của kiểm thử:

Đê ngăn chặn lỗi băng việc đánh giá các sản phâm công việc chăng hạn như các yêu

câu, user stories, thiết kê và code

Đê xác minh xem liệu những yêu câu được qui định đã được hoàn tất hay chưa

Đề kiêm tra xem liệu đối tượng được kiểm thử đã hoàn thiện hay chưa vả nó có hoạt động đúng như phía người dung hay các bên liên quan mong đợi hay không

Đề xây dựng độ tin cậy theo mức chất lượng của đối tượng kiểm thử

Trang 13

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

Đề tìm những thứ bất thường và lỗi nhằm giảm mức độ rủi ro của chất lượng sản pham phân mềm chưa hoàn thiện

Đề cung cấp đây đủ thông tin cho các bên liên quan cho phép họ đưa ra những quyết

định, đặc biệt là về mức độ chất lượng của đối tượng kiểm thử

Đê tuân thủ những qui dịnh về yêu câu, phù hợp với các điệu khoản, hợp đông hoặc những tiêu chuân đông thời xác minh sự tuân theo của đôi tượng kiêm thử với những yêu câu và tiêu chuân đó

Những lợi ích cơ bản của kiêm thử phân mêm:

Tiết kiệm chỉ phí: Việc tối ưu hóa chỉ phí là một vẫn đề quan trọng trong vòng đời

phát triển và kiêm thử phần mềm do đó việc kiểm thử bất ki dy an IT nao ding han

sẽ giúp ta tiết kiệm tiền bạc cho một giai đoạn đài hạn Trong trường hợp nếu ta bắt được bugs ở những giai đoạn đầu tiên của qui trình kiêm thử phần mềm thì chỉ phí

sẽ được tiệt kiệm tôi đa

Cost to fix Defects

Source: NIST ip)

Hình 6 — Chỉ phí để sửa lỗi theo từng giai đoạn

Trang 14

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ Bảo mật: Đây là lợi ích quan trọng và khá thiết yêu của sản phầm phần mềm Mọi người đang tìm kiếm những sản phâm đáng tin cậy Việc bảo mật sẽ giúp ta loại bỏ những rủi ro và van dé

Chất lượng sản phâm: Là một yêu cầu quan trọng của bất kì sản phẩm phần mềm nào Kiểm thử đảm bảo một sản phâm chất lượng sẽ được bàn giao đến khách hàng Thỏa mãn khách hàng: Mục tiêu chính của bắt kì sản phẩm nào là đem đến sự hài lòng cho khách hàng sử dụng sản phẩm Việc kiểm thử UI (User Interface — Giao diện người dùng)/UX (User Experience - Trải nghiệm người dùng) đảm bảo rằng trải nghiệm người dùng được tốt nhất

2.1.2 Defect/Bug trong vòng đời kiểm thử phần mềm

Một người khi tạo ra một error (lỗi) sẽ dẫn đến sự xuất hiện của defect/bug Ví dụ: một error tồn tại trong yêu cầu có thé dan dén defect trong yêu cầu đó, từ đó dẫn đến

tao ra error trong viéc lập trình một ứng dụng phần mềm và cuối cùng phát sinh ra

bug khi chạy Để mà giúp việc kiểm soát những defect/bug thì vòng đời của

defect/bug dã được sinh ra

Lỗi có thề phát sinh từ nhiều lý do, chẳng hạn như:

Áp lực thời gian

Chưa có trải nghiệm hoặc kĩ năng chưa đủ từ những người tham gia dự án

Hiểu lầm trong giao tiếp của những người trong dự án, gồm cả việc chưa hiểu ý từ những yêu câu

Độ phức tạp của code, thiết kế, kiến trúc hoặc các kĩ thuật được dùng

Sư nhằm lẫn trong sự tương tác giữa các thiết bị trong và ngoài, đặc biệt khi đùng ở

số lượng lớn

Do việc chưa quen với các công nghệ, kĩ thuật mới

Vòng đời bug/defect trong kiểm thử phần mềm là một bộ những trạng thái nhất định

mà defect/bug sẽ có in toàn bộ vòng đời của nó Mục đích của vòng đời bug/defect

là giúp việc điều phối cũng như giao tiếp trở nên để dàng cho các developer va tester

Trang 15

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ Deffered: Nếu bug hiện tại không năm trong độ ưu tiên cơ bản và sẽ được sửa trong lần release tới thì trạng thái deffered là được đặt

Not a bug: Nếu nó không ảnh hưởng tới tính năng của ứng dụng thì trạng thái được

bàn giao cho bug đó là not a bug

" States =IN- PR06R£$$

|

Deviopment Project Manager will analyze the Defeet

&® Status = FIXED TRC Re VEC» —YES-»

Tat

NO YES

+

N0 Status =REJECTED Status=DEFFERED Status = DUPLICATE

[10 9 Status = CLOSED i Status = RE-OPEN

Hinh 7 — Vong doi Defect 2.1.3 Bảy nguyên tắc kiêm thử phần mềm

1 Viéc kiém thu sé chi ra su hién dién cua defect

Sự hiện diện của defect có thê được phát hiện nhờ việc kiểm thử nhưng có một thực

tế răng nó không thê chứng minh rằng sản phẩm phần mềm là không có defect Việc

kiểm thử sẽ làm giảm xác suất của defect chưa được phát hiện nhưng thậm chí sản

phâm phần mềm đã test được 99% vẫn không có gì là đảm bảo sản phẩm sẽ không

bị lỗi

2 Kiém thử triệt đề là bất khả thi

Kiểm thử mọi thứ từ A — Z là điều không thê ngoại trừ những tình huống trong phạm

vi nhỏ Thay vì cố gắng để kiêm thử tất cả hãy phân tích, dung việc phân tích rủi ro, lựa chọn kĩ thuật test, xác định độ ưu tiên để tận dụng tối đa nỗ lực

Trang 16

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

3 Thực hiện kiểm thử sớm sẽ tiết kiệm thời gian và tiền bạc

Đề tìm defect sớm việc kiểm thử nên bắt đầu trong những giai đoạn đầu của vòng đời phát triển phần mềm Từ đo những defect trong yêu cầu hay trong thiết kế có thể dàng được phát hiện Điều này đảm bảo rằng chỉ phí sẽ rẻ hơn nhiều khi sửa những defect sớm cũng như đảm bảo tiết kiệm tối đa thời gian để có thể hoàn thành sản phâm công việc đúng hẹn

4 Phân cụm lỗi

Số lượng nhỏ module có thê là nơi phát sinh rất nhiều lỗi, theo ứng dụng của nguyên tắc Pareto đối với kiêm thử phần mềm thì 80% lỗi nằm trong 20% module Bằng kinh nghiệm bạn có thê nhận dạng được những module rủi ro Nhưng nguyên tắc này

có một vấn đẻ, nếu cùng một loại test thực hiện lại nhiều lần thì cuối cùng những lỗi mới sẽ không được tìm thấy nữa Phân cụm những lỗi có thê dự đoán được và những

lỗi đã được phát hiện là một thông tin quan trọng trong việc phân tích rủi ro, được

dùng để khoanh vùng nơi cần tập trung kiểm thử

5 Hiệu ứng thuốc trừ sâu

Trong nông nghiệp, việc dung nhiều lần cùng một loại thuốc trừ sâu để diệt sâu bọ

sẽ khiến chúng sinh ra kháng thể, vì thể loại thuốc trừ sâu đó sẽ không còn hiệu quả

nữa Điều nay là tương tự trong kiểm thử phần mềm Nếu cùng một bộ test được lặp

lại nhiều lần, phương pháp đó sẽ vô dụng cho việc khám phá các lỗi mới Đê giải quyết vấn đề này, các testcases cần phải được thường xuyên xem lại, chỉnh sửa, them

những testcase mới để tìm nhiều defect hơn

Các tester không thể chỉ phụ thuộc đơn giản vào các kĩ thuật kiểm thử đang hiện có

mà phải không ngừng tìm ra giải pháp dé cải thiện việc kiểm thử hiệu quả hơn Nhưng trong một vài trường hợp như regression testing được tự động, hiệu ứng thuốc trừ sâu có một vài lợi ích đầu ra là nó sẽ tạo các regression defect voi muc tuong đối thấp

6 Việc kiêm thử phụ thuộc vào điều kiện hoàn cảnh

Việc kiêm thử sẽ hoàn tât theo cách khác nhau trong các điều kiện, hoàn cảnh khác nhau Ví dụ những phần mềm điều khiển công nghiệp quan trọng mang tính bảo mật

Trang 17

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ cao thì được kiểm thử khác với một app thương mại điện tử Một ví dụ khác là việc kiểm thử trong dy an Agile duoc hoan tất khác với việc kiểm thử trong dự án có vòng đời phát triển phần mềm theo kiểu tương tự

7 Không có lỗi là ngụy biện

Trường hợp phần mềm là 99% không có lỗi thì vẫn không thê sử dụng đó là bởi vì

hệ thống được kiểm thử chặt chẽ là sai yêu cầu Kiểm thử phần mềm không phải đơn thuần là tìm defect mà cũng kiểm tra răng phần mềm phải giải quyết những nhu cầu doanh nghiệp Việc tìm và sửa lỗi sẽ không giúp được gì nếu hệ thong duoc dung nên không đáp ứng được yêu câu và nhu câu người dùng

2.1.4 Mô hình trong kiêm thử phần mềm

2.1.4.1 Mô hình phát triển tuần tự

Mô hình tuần tự này miêu tả tiến trình phát triển phần mềm như một dòng tuần tự, tuyến tính của những hoạt động Điều này có nghĩa là một giai đoạn chỉ có thê bắt đầu khi giai đoạn trước đã hoàn tất

Waterfall model: Những hoạt động phát triển (phân tích yêu cầu, thiết ké, lập trình, kiêm thử) là được hoàn tất lần lượt trong mô hình này, những hoạt động kiêm thử chỉ diễn ra khi các ø1ai đoạn trước nó là hoàn tât

V-model: Tích hợp cả tiến trình kiếm thử trong suốt qui trình phát triển, thực hiện theo nguyên tắc kiểm thử sớm Trong V-model, mỗi mức kiểm thử được liên kết với

một giai doan phat trién tuong ung

ws User Requirement — Acceptanze Tests

Trang 18

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

Phía bên trái mô hình là vòng đời phát triển phan mém — SDLC (Software

Development Life Cycle)

Phía bên phải của mô hình là vòng đời kiểm thử phần mềm — STLC (Software Test

Life Cycle)

Toàn bộ mô hình được thiết kế giống chữ V đo đó có tên là V-model

Thông thường các mô hình phát triển tuần tự sẽ bàn giao phần mềm chứa mộ bộ tính nang day du

2.1.4.2 Mô hình phát triển lặp lại và tăng dan

Phát triển tăng dân liên quan tới việc thiết lập những yêu cầu, việc xây dựng, thiết

kế và kiểm thử hệ thống trong những phần mảnh Điều này có nghĩa là những đặc tính sẽ được phát triển tăng dần Thông số tăng dần này sẽ thay đối phục thuộc vào kích thước của nhửng mảnh, với một vải phương pháp sẽ có mảnh lớn hơn và nhỏ

hơn Nó có thể chỉ nhỏ như ở phần thay đổi giao diện người dùng hay thêm lựa chọn

vào câu hỏi truy vần

Phát triển lặp lại xảy ra khi một nhóm những tính năng được chỉ định, được thiết kế, được xây dựng và được kiểm thử cùng nhau trong một chuỗi của những vòng đời,

thường là một giai đoạn có định Những lúc lặp lại có thé sẽ liên quan tới việc thay đôi tính năng nào đó của phần mềm trong vòng lặp trước, đi cùng với thay đối trong phạm vi dự án Mỗi lúc lặp sẽ tạo ra phần mềm với những bộ con đang phát triển của toàn bộ tính năng mà phần mềm có cho đến khi phần mềm được bàn giao hoặc quá

nhận lỗi diễn ra giữa developer và ngươi dùng

Agile model: lựa chọn làm mọi thứ theo khả năng tăng dần dần với kết hoạch ngắn hạn hơn là dài hạn Việc lặp lại là trong thời gian ngắn thường kéo dài một đến bốn tuần Mỗi vòng lặp là được thực hiện bởi một đội gồm lập kế hoạch, phân tích yêu

Trang 19

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

cầu, thiết kế, lập trình, kiểm thử đơn vi (unit testing), kiểm thử khả năng chấp nhận

để xác minh sản phẩm phằm mềm STLC là Software Testing Life Cycle — Vòng đời kiêm thử phần mềm

Có 6 giai đoạn chính trong STLC:

1 Phân tích yêu cầu: Giai đoạn này sẽ làm rõ những loại kiểm thử cần được thực

hiện, thu thập chi tiết về vùng cần ưu tiên và tập trung kiểm thử, chuẩn bị RTM (Requirement Traceability Matrix), xác định chỉ tiết môi trường kiêm thử và phân tích khả năng tự động hóa

2 Lập kế hoạch kiểm thử: Chuẩn bị tài liệu về chiến lược hay kế hoạc kiêm thử,

lựa chọn công cụ kiêm thử, dự đoán nỗ lực công sức cho việc kiêm thử, lập kê

hoạch cho tài nguyên sử dung, xác định vai trò và trách nhiệm

Trang 20

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

4 Phát triển Test Case: Tạo các test cases, các scripts cho viéc chạy auto (néu có), xem xét và vạch ra cơ sở cho test cases cũng như scripts, tạo dữ liệu test

4 Thiết lập môi trường kiểm thử: Hiểu được kiến trúc yêu cầu, môi trường và chuẩn bị danh sách yêu cầu cho phần cứng, phần mềm cho môi trường kiểm

thử Thiêt lập môi trường kiểm thử và đữ liệu test, thực hiện smoke test trên cái

đã dựng nên

5 Giai đoạn thực hiện kiểm thử: Thực hiện kiểm thử theo kế hoạch, lập tài liệu

về kết quả kiểm thử và ghi chú lại defect cho những trường hợp thất bại, đánh

dấu những defect đến test cases trong RTM, theo dõi defct đề chuả n bị đóng

6 Đóng vòng kiểm thử: Đánh giả hoàn tất dựa trên tiêu chí thời gian, phạm vi, chi phí, phần mẻm, những mục tiêu doanh ngiệp quan trọng và chất lượng

Chuẩn bị các số liệu kiểm thử dựa trên các thông số đánh giá, lập tài liệu về

những gì học được từ dự án, chuẩn bị báo cáo, phân tích kết quả để tìm ra sự phân bô của defect và mức độ nghiêm trọng của nó

2.2 Các mức độ kiếm thử

2.2.1 Kiém thir don vi (Unit Testing)

Là một loại của kiểm thử đơn vị mà ở đó những đơn vị riêng lẻ hoặc thành phần của

phần mềm là được kiểm thử Mục đích là để kiểm định rằng mỗi đơn vị của mã phần mềm là hoạt động như mong đợi Kiểm thử đơn vị được hoàn tất trong giai đoạn phát

triển của một ứng dụng bởi developer Kiểm thử đơn vị cô lập một phần của mã và xác minh tính chính xác của nó Một đơn vị có thê là một module, một đối tượng, hàm hay phương thức

Kiểm thử đơn vị là quan trọng bởi vì các developer đôi lúc vì tiết kiệt thời gian mà

thực hiện kiểm thử đơn vị, do đó dẫn đến việc sửa defect với chỉ phí cao trong giai

đoạn kiêm thử hệ thống, kiêm thử tích hợp hay thậm chỉ là kiểm thử Beta sau khi

ứng dụng được tạo nên Nếu kiểm thử đơn vị được thực hiện kĩ trong giai đoạn của

việc phát triển phần mềm thì sẽ tiết kiệm thời gian và tiền bạc Ngoài ra, kiêm thử

đơn vị còn giúp các developer hiểu rõ nền tảng code, cho phép họ đưa ra thay đổi nhanh chóng nếu cần thiết, bên cạnh đó kiểm thử đơn vị tốt sẽ giúp ta tạo tài liệu day

Trang 21

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

đủ phục vụ cho dự án, giúp việc tái sử dụng code, chuyền đời code và việc kiểm thử sang một dự án mới linh hoạt

2.2.2 Kiém thir tich hop (Intergration Testing)

La một loại kiểm thử phần mềm mà ở đó những module là được tích hợp một cách

logic và được kiểm thử như một nhóm Một sản phầm phần mềm điền hình chứa rất

nhiều module được lập trình bởi nhiều lập trình viên khác nhau Mục đích của mức kiêm thử tích hợp là để tìm ra defect trong sự tương tác giữa những module phần mềm này khi chúng được tích hợp

Có hai phương pháp kiểm thử tích hợp là phương pháp Big Bang và phương pháp

Incremental:

Big Bang: Kiém thử Big Bang là phương pháp mà ở đó tất cả các module hoặc các

thành phần được tích hợp với nhau một lần và kiểm thử chúng như một đơn vị Bộ

kết hợp của những thành phần này thì được cân nhắc như là một thực thé thống nhất

trong quá trình kiêm thử Nếu tất cả những thành phần trong đơn vị chưa được hoàn

thiện thì tiến trình tích hợp sẽ không được thực thi

Incremental: Tién trinh này được hoàn tất bởi hai hoặc nhiều module có liên quan

về mặt logic với nhau va sau đó được kiểm thử cho việc vận hành nhất định của ung

dụng Sau đó nhưng module có liên quan khác được tích hợp tăng dần và tiến trình

sẽ tiếp tục cho đến khi tất cả các module có liên quan với nhau một cách logic là

được tích hợp và được kiểm thử thành cong Incremental con được chia thành nhỏ

thành hai phương pháp khác là bottom-up và top-down

Bottom-up sẽ kiêm thử module ở mức thấp hơn trước và những module này sẽ tạo điều kiện để kiểm thử module ở mức cao hơn Tiến trình sẽ lặp lại cho đến khi các module ở mức cao hơn được kiểm thử Một khi các module ở mức thấp hơn được tích hợp sẽ hình thành nên module ở mức tiếp theo

Trang 22

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

hệ thông phần mềm Module ở mức cao hơn sẽ được kiểm thử trước sau đó là những

module ở mức thấp hơn sẽ được kiểm thử và được tích hợp để mà kiểm tra chức

Trang 23

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ

Top Down Module 1

Hinh 12 — Phuong phap Hybird

2.2.3 Kiém thir hé thong (System Testing)

Kiếm thử hệ thông sẽ xác minh những điêu sau:

Kiểm thử những ứng dụng đã được tích hợp đầy đủ gồm cả những thiết bị kết nối bên ngoài dé kiếm tra cách mà các thành phần tương tác với nhau và với toàn bộ hệ thống

Xác minh qua mỗi lần kiêm thử với đầu vào nhất định để kiểm tra kết quả đầu ra

mong muốn

Kiểm thử trải nghiệm người dùng với các ứng dụng

Đây là những miêu tả rất cơ bản của những gi liên quan trong kiểm thử hệ thống Ta

cần phải xây dựng các test cases và test suites để kiểm tra từng khía cạnh của ứng

dụng

Sau khi đi qua ba mức kiêm thử chúng ra gần như đã có một kiến trúc kiên thử hoàn

chỉnh, nhưng thực chất việc kiểm thử còn có them các yếu tố phụ thuộc vào tùy hoàn

Trang 24

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ cảnh hay nhu cầu doanh nghiệp Dưới đây là kiến trúc kiểm thử với từng mức (ở đây

ta có thêm một mức cuối cùng là kiểm thử khả năng chấp nhập)

Acceptance Testing System Testing Integration Testing

Unit Testing

Hinh 13 - Kién tric kiém thir phan mém Kiểm thử đơn vị: được thực hiện trên mỗi module hoặc trên một khối mã trong quá trình phát triển Kiểm thử đơn vị thường được thực hiện bởi người viết code

Kiểm thử tích hợp: được thực hiện trước, trong và sau khi tích hợp của một module

mới vào trong gói phần mềm chính Một phần của ứng dụng phần mềm có thể chứa rất nhiều module Nó rất quan trọng đề kiểm thử tác động của mỗi module đến toàn

bộ hệ thống

Kiểm thử hệ thống: được thực hiện bởi các bên chuyên gia kiểm thử ở sản phẩm

phần mềm được hoàn tất trước khi nó được giới thiệu tới thị trường

Kiểm thử khả năng chấp nhận (Acceptance Testing): Kiểm thử Beta được thực hiện

bởi người dùng đầu cuối thực sự

2.3 Các loại kiếm thử

2.3.1 Kiém thir hdi quy (Regression Testing)

Kiếm thử hồi quy dùng đề xác minh rằng những thay đôi trong mã hoặc trong chương trình gần đây không gây ảnh hưởng tiêu cực đến những tính năng đang tồn tại Kiêm

thir hdi qui thực chất là lụa chọn lại một phần hay toàn bộ các test case đã thực hiện

và chạy lại để đảm bảo rằng những tính năng đang tồn tại hoạt động ôn định

Trang 25

Báo cáo thực tập tốt nghiệp GVHD: Lê Anh Uyên Vũ Regression Testing là cần thiết khi một tính năng mới được thêm vào ứng dụng phần mềm hoặc cho việc sửa lỗi cũng như là các van dé liên quan đến hiệu suất Kiểm thử

hỗồi qui khác với việc kiêm thử lại, kiểm thử lại nghĩa là kiêm thử các tính năng và

cdc defect lan nita dé dam bao rang defect đã được sửa còn kiêm thử hỏi quy là kiểm thử ứng dụng phần mềm khi nó trải qua sự thay đôi code để đảm bảo rằng code mới không ảnh hưởng đên phần còn lại cua phan mém

2.3.2 Kiểm thir tinh trang (Sanity Testing)

Loại kiểm thử này được thực hiện sau khi nhận phần mềm được xây dựng, với sự

thay đổi nhỏ trong code hoặc chức năng để đảm bảo rằng defect đã được sửa và không có vấn đề gì thêm nữa với những sự thay đổi này Mục tiêu là để xác định rằng những chức năng được đề xuất hoạt động chặt chẽ như mong đợi

Có thê hiểu rang Sanity Testing là được hoàn tat dé kiêm tra xem tính năng/bug đã

được sửa hay chưa Kiểm tra tính chính xác của hệ thong và thường được thực hiện

bởi tester Sanity testing được biết đến là một bộ con của Regression Testing và sanity testing chi kiểm tra một phần cụ thê của toàn bộ hệ thong cho nên nó được ví

như là kiểm tra sức khỏe chuyên biệt trong ngành y

2.3.3 Kiểm thử tính năng và kiểm thử phi tinh nang (Functional va Non-Functional) Functional Testing: lién quan tới những việc kiêm thử cái mà đánh giá các chức năng

mà hệ thong nên thực hiện Fuentional Testing nên được thực thi ở tất cả các mức độ kiểm thử Functional Testin gcân nhắc hành vi của phần mềm, vậy nên kĩ thuật black-

box có thể được dùng để tạo test condition ( điều kiện test) và test cases cho tính năng

của phần mềm và hệ thong Việc kiểm thử sẽ dựa trên việc phân tích về tính năng

của một thành phần hay hệ thống Trong kiểm thử tính năng có rất nhiều loại chăng hạn như: unit testing, integration testing, regression testing, sanity testing

Non-Functional Testing: kiểm thử những đặc tính hay thuộc tính của hệ thống hay

phần mềm chăng hạn như khả năng sử dụng, độ hiệu quả của hiệu năng hoặc bao

mật Non-functional testing là kiểm thử xem hệ thong vận hành tối ưu như thế nào Non-functional testing thường được thực hiện ở tất cả các mức kiểm thử và được kiểm thử sớm nhất có thẻ Những kĩ thuật black-box có thê được sử dụng để tạo test cases va test condition cho non-functional testing

Ngày đăng: 28/10/2024, 12:16

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w