1⁄2 Nội dung nghiên cứu Kiểm thử là một khâu vô cùng quan trạng trong chu trình phát triển phần aném, dé nang cao chất lượng, giám tải sức lực tham gia của con người dồng thời tăng tín
Trang 1
TRAN MAI LIEN
NGUIEN CUU VA UNG DUNG TOOL KIEM TIIU TU BONG TRONG KIEM
THU PHAN MEM
LUẬN YĂN THẠC SĨ KỲ LHUẬT
ĐIỆN TỬ - VIỄN THÔNG
Ha Nai —2012
Trang 2
TRAN MAI LIEN
NGIIEN CUU VA UNG DUNG TOOL KIEM TIIU TY BONG TRONG KIEM
THU PHAN MEM
Chuyên ngành: Điện tử - Viễn thông
LUẬN VĂN THẠC SĨ KỸ THUẬT
DIEN TU VIEN THONG
NGUOT HUGNG DAN KHOA HOC
PGS.TS Pham Minh Viét
TIả Nội — 2012
Trang 3
II GIỚI THIỆU CHƯNG VẺ PHÂN MÉM VÀ KIẾM THỦ PHẢN MÊM 11 2.1 Giới thiệu chưng vê phẫn mềm snnenrararsarreaeeo.T]
2.2 Giới thiệu chung về kiểm thử phần mâm - 12
2.2.3 Tại sao phải kiểm thử tự đơng và sử đựng tool kiểm thứ 14
3.1 Giới thiệu chưng về Iòl kiểm thử tự động - 16
3.1.1 Khái niềm tool kiếm thử phân mễm cesseeeeosoeosoe TỔ 3.12 Xhữmg loi ich khi sit dung tool kiểm thứ tự động - 16 3.1.3 Khi nào nên sử đụng tool test? secant dS 3.1.4 Những hạn chả khi sử dụng tool tự động « ceccieeoeco.2Ơ
3.2 Quy trình kiểm thứ sử đụng 1ool tự động, - - 22
3.2.1 Phân lich và thiết kế mơ hình phái triển kiểm thử tự động 23 3.2.2 Tạo test soript (kịch bản kiểm 18) oc csccssssesateesnnunsiesenmensassee dd
3.2.4 Chay lost script dé kiểm thử tự động, - - 15 3.2.5 Đánh giá kết quả cueninenrereireaeriresosoeoo.TĨ)
Trang 4
3.3.2 Tøol kiểm thử các ứng đụng Java sọ nhieu maee rao
3.3.3 Tool kiểm tra đường dan liên kết - - 27
3.3.6 Tool est bio mat cho imgd dung Web - - 28
3.4 Giới thiệu chỉ tiết về một số tool đang sử dụng phê biển ở Việt Nam 28
3.4.1 QuickTostPro (QuickT cat, Professional) - - 29
3.4.1.2 Dic dM ceeeisesctneninniineninneninuneasnaenaan sansa ST 3.4.1.3 Cáo thành phần quan trọng trong QuickT’estPro - 31
3.4.2.1 Giới thiệu cneeHiereeraereerirriiraeeoaouÐT
a, Solcnium IĐE « e.«e.csceeeeeieereeriieerrirrrrerrerie e2
¢, BoanShell sampler senescent snetaminneninaeies ror.đỔ
d, WebService (SOAP) request cinicnninerineneterniniiennerieee AB
Trang 54.1 Các bước thực hiện mội bài test hiệu năng với tool ïmeter 6#
4.12 Crcating Vuser Seipfs nhe kireeeierieseeoooeco.Õ 4.1.3 Creating the Scenadio seo neeniieseieeirrisesosoeooOfB
4.2 Quy trình thục hiện để tạo một 'estplan - - 65
4.2.2 Các điều khiển hỗ trợ khi tạo 1 Testplan 68
e, Truyền tham số qua biỂn nhu Hhneeeieeoee
d, CSV Dala Set Conlg oninieiiririrririrerrrreg
4.3 Ứng dụng tool 1rneter vào do hiệu năng hệ thông chăm sóc khách hàng
4.3.2.1 Planning the test
Trang 6
4.3.2.3 Creating the Scenario
4.3.2.4 Running the Scenaria | Monitoring the Scenarto - 83
4L8.2.5.Analyeing the S0enario
V ỨNG DỤNG TOOL sELENIUM webdriver VÀO KIỂM THU HE THONG
3.1 Phạm vi áp dụng looi Selenium Wetdriver - - 87
3.2 Các công cụ hỗ trợ khi viết script với Selenium Webdriver ST
3.3 Ứng dụng Selcnium Webdriver vào kiểm thứ hồi quy cho hệ thông RCMS 90
5.3.2.2 Tao test script + chữnN sửa toi SEF|ĐE cà ceeeeeeoeieoc.Đ3 3.3.2 3 Chạy fesf scrip! - 116
VL KẾT LUẬN VÀ HƯỚNG NGHIÊN CỬU TIẾP THEƠ ¬
"Trân Mai Liên — C11006 50 4
Trang 7Hinh 2: Cửa số Selenium Core Framework
Hình 3:Eile chứa kết quả result.htmi - - 3⁄7
Hình 4:Màn hình của sarpls HTTP Droxy Ñzrver - - eos Al Hình 5:Màn hình của JDBC Connection Configuratioi sao „41 Linh 6: Ví đu câu hình một JDBC Connection Configuration cose
Hình 8:IDBC requcst với Query Typc — “Prcparcd Update Statcrteit” 4Š Hình 9:JIDBC reqnest với Query 1ype = “Update Siatemenif” 46
Hinh 11:Man hinh cia sample WebService (SOAP) 249
Uinh 13:Man hinh Han vige cita Virtual User Generator - ~ -BỮ Hình 14: Man hình lâm việc của Controller 61 Hinh 15:Màn hình làm việc cúa Load Generalor „.62
Hinh 18:Màn hình thêm 1 Simple Controllsr 267
Lĩnh 19: Màn hình cầu hình 1 Response Assertion - - 68
Hình 20:Màn húnh câu hình của Regtdar Exprcssion Extraetor 70
Hình 21:Một vì da của Regudar Expression EXITatOF ococooreirriroirrriiirrrriie
Lĩnh 22: Màn hình cần hình của CSV Data Set Config - - - 72
[linh 28:Man hinh khéi tao cdc control va dat ofc bude cho sreipt - 77
Lĩnh 29: Màn hình thiết lập Proxy cho trình duyệt - - ce TB
Trân Mai Liên CB100650 5
Trang 8Hinh 30:§cript của bước CCPRE TCTTTB l
Hinh 32:Man hinh Add Regular Expression Extractor vao request dé lay gia ti It
Hinh 33:Man hinh Add Regular Expression Extractor vao request
Tink 34:Man hinh dat bién 1 vao cdc request sit dung 80
Hinh 35:Man hinh dit bién ticket vào các request sử đạng, BŨ
Hinh 38: Add thm 2 Listener để xem kết quả khí run test - .82
Hình 39:Câu hinh số lượng usar cho máy client L .83
1ình 40: Màn hình start script trên tắt cả các máy 84
Hình 41:Màn hình làm việc
Hình 42: Vi đụ ruột đoạn code sử dung Annotation của TesfNG
Tlinh 13: Vi du file XML cia TestNG - - - - 90
bún, Epipse
Hình 44:Báo cáo của Tcs”NG, con neeeeiiirirareoroooeoe ĐỮ
Hình 45:1rang chủ hệ thông ACMH „81
Hinh 48 Eils kết quả kiắm thứ -ecosee „117
Trân Mai Liên CB100650 6
Trang 9DANH MUC THUAT NGU VA VIET TAT
POA P Quality Assurance
'Ÿestcase 'Trường hợp kiểm thử
Unit test Kiểm thử đơn vị
Intergration test Kidm thit tich hop
System test PRiềm tứ lề hồng
Performan: Kiềm tine higu năng
Sires test PKiềm tint ap he
P Rogression test gid tint hat quy
“Test soupt ¡ Ki tân tiếp lãnh) được viết bing tool kiểm thờ
*Scloniun IDE ' Sclcniam integrated Development Environment
“Seenium RE Selenium Remote contol
APL Application Programming [Interface
¡ SOAP Í Simpls Objeet Access Protocol
TIDBC Java Database Connectivity
THTTP Hypertext Transfer Protocol
TREE PInstitule of Electrical and Flectromes Enyginesrs
Trân Mai Liên CB100650
Trang 101.MÓ ĐẤU
11 Bỗi cảnh nghiên cửu Ngày nay khải niệm phân mềm đã trở nên rất phỏ biến Không ai có thể phủ
nhận vai trỏ to lớn của phần mềm trong xã hội hiện dai Ung đụng của phân mẻm có
amit trong hau hết các lĩnh vực của cuộc sống như: Truyều thông, khoa học công, nghệ, ngân hàng, sản xuất chế tạo, quản trị doanh nghiệp, địch vụ và trở thành đối
tượng phục vụ quan trong cho mọi nhu cầu của con người
Công nghiệp phân mềm trên thể giới hiện là một ngành công nghiệp phát triển va dong gop quan trợng vào sự phải triển và tiến bộ của công nghệ hiện đại Ở Việt Nam, công nghiệp phần mềm mới chi phat triển tập trung trang 10 năm gần
đây Là một lĩnh vực khá mới đi san sự phát triển của thê giới, tận dụng và thửa
thưởng dược những thành tựu trước đẻ, công nghệ thông tin nói clrung và công nghệ phan mềm nói riêng ở nước ta đang có những phát triển nhanh chóng, được xem là
một trong những ngành mĩ nhọn đóng góp ngày càng nhiều vào nên kinh tế quốc
dân
Công nghệ phân mềm phát Iriển kéo theo các thành phần bên trong nó cũng
không ngững được hoàn thiện và nâng cao, kiểm thử phần mẻm nằm trong số đó
La khau cuối cừng trong vòng đời phát triển phân mềm nhưng đóng một vai trỏ vô cũng quan trọng, là khân đâm bảo chất lượng cho phần mềm đến lay người sử dụng
cuối thỏa mãn được mọi yêu câu cơ bàn cũng nhu khắt khe nhất Kiếm thử phân
mềm cân phải được xem xét ở góc độ lương xứng với Lm quan trọng của nó trong, quy trình phát triển phân mềm
Như chúng ta biết, để tạo ra một sản phẩm phân mềm có chất lượng thì hoạt
động kiểm thử phần mềm đóng vai trỏ quan trong, trong khí đó hoạt động này lại tiêu tồn và chiếm tý trọng khá lớn công sức và thời gian trong một dy an Do vậy, nhu cầu tự động hóa quy trình kiểm thử phân mềm cũng được đặt ra Qua thực tế cho thấy việc ap dung kiểm thử tự động hợp lý sẽ mang lai thành công cho hoạt
Trân Mai Liên CB100650
Trang 11động kiểm thữ phần mềm Kiểm thử Lự động giúp giãm bớt công sức thực hiện, lãng
độ ti cậy, giảm sự nhằm chán và rên luyện kỹ nắng lập trình cho kỹ sư kiểm thử
1⁄2 Nội dung nghiên cứu
Kiểm thử là một khâu vô cùng quan trạng trong chu trình phát triển phần
aném, dé nang cao chất lượng, giám tải sức lực tham gia của con người dồng thời tăng tính hiệu quả, chuyên nghiệp của nó thì việc ứng đụng các công cụ kiểm thử tự động đang ngày cảng được chú trọng,
Luận văn sẽ giới thiệu những nét chưng, nhất về kiểm thứ phần mẻm và sự
cân thiết sử dựng tool kiém thử tự động trong hoạt động kiêm thử phân mềm Tiếp
đó luận văn tập chung nghiên cứu tool kiểm thử tự động, tính hữu ích và ứng dụng vào kiểm thử phần mềm của một số tool phô biến trên thẻ giới
Thân cuổi cùng lả thực tế hóa những nghiên cứu ở trên thông qua việc ap
đụng trong thực 1é 2 tool tka tác giả vào các hệ thống tại tổ chức: áp dụng (ool jmeter vdo kiểm thứ và giám sát hiệu năng hệ thông chăm sóc khách hang, ap dung tool Selenium WebDriver vào kiếm thử chức năng hệ thống BCMS
13 Cấu trúc luậnvăn Luận văn gồm được phân chia Jam 5 phẩn như sau:
Đây là phân trọng tâm của luận văm, tập chung nghiên cứu khái tiệm, vai lrò,
tác dụng của tool tự dộng trong kiểm thứ phần mềm Những hạn chế cản xem xét khi muốn áp dựng vào thực tế Phân loại tool theo phạm vi ứng dụng Giới thiệu một số tool đang được dùng phổ biến tại Việt Nam
Trân Mai Liên CB100650
Trang 12Phdn 4: Ung dung tool Jmeter vào kiểm thử liệu năng
Phan nay mô phỏng cach thuc thực biện và tiến hành cải dặt một tool kiếm
thử hiện năng — tool Imeter vào kiếm thữ hiệu năng hệ thống chăm sóc khách hang
Phân 5: Ứng dung tool Selenium WebDriver vio kiém thit hai qui
Phản này mô phỏng cách thức thục hiện và viét seript ty dong sử dụng tool Seleniưm WehDriver để kiếm thử hỏi quy chức năng của hệ thông ECMS
Phân 6: Kết luận và hướng nghiên cứu tiếp theo
Đánh giá tâm quan trọng của các kết quả đã nghiên cửu được, mở ra các hướng nghiên cứu nâng cao tiếp thee
Trong quá trình thực hiện luận văn, em xia gửi lỗi cảm ơn chân thành đến thấy giáo hưởng dẫn PGS.TS Phạm Minh Việt Trong luận văn chắc chắn không thể
không có thiếu sót, rất mong được ý kiến dong ghép và phản hỏi của các thay cô
Trân Mai Liên CB100650
Trang 13TT GIỚI THIẾU CITENG VE PIIAN MEM VA KIEM TOU PITAN MEM
2.1 Giới thiệu chung về phần mềm 2.1.1 Phần mém là gi?
Thân mềm là một (bộ) chương trình được cải đặt trên máy tính nhằm thực
luiện một nhiệm vụ tương dối độc lập nhằm phục vụ cho một ứng dụng cụ thể trong, việc quản lý hoạt động của máy tính hoặc áp dụng máy tỉnh trong các hoạt động kinh tế, quốc phòng, văn hóa, giáo dục, giải trí
Phin mam có thể được coi nhự là một phân thay đổi của máy tính và phản cửng lả
phân có định Phân mềm thường được chia thành phần mèm img dung (chong
trình mã người dimg lam việc Irực tiếp đến) và phần mềm hệ thống (báo gồm hệ diéu hành và bắt cử chương trình nào hỗ trợ phân mềm ứng dụng
Việc †ạo ra một phân mềm phải trải qua nhiều giai đoạn, người ta gọi là quy trình
phát triển phản mềm, bắt đầu từ khi có ý tưởng cho đến khí đưa ra sản phẩm phần
aném thực thí
2.1.2 Tai seo phan mém lại có lỗi
Các nghiên cứu từ trước đến nay đã chỉ ra rằng không thể có 1 hệ thông phân
Tnểm nào hoại động đứng theo mọi yên cầu của nguời dùng đặt ra, không một phan
mềm nào là không có lỗi Lỗi trên hóa đơn thanh toán, lỗi trễ xây ra trong quả trính
xử lý 1 giao địch thanh toán thẻ và một trang website không load được đữ liệu là những vi dụ về những vẫn dé có thể xảy ra bởi 1 phản mễm có lỗi Không phải tất
cả các phần mềm đều cô chung một mức độ lỗi và không phái tất cả các lỗi khi xây
7a có cừng một mức độ tác động đên hệ thống
Lai phan mém có thể đến từ tất cả các giải đoạn trong vòng đời phát triển của phần xnểm: từ lúc tìm hiểu phân tích yêu cầu của khách hàng đến khi phần mềm được triển khai Trong đó một số nguyên nhân phố biến sau thường gây ra lỗi cho phan mễm đó lả
‘Thi nhất lá lỗi từ giai đoạn tìm hiểu và phan tich yêu cầu của khách hàng, Nguời tìm hiểu có thể tìm hiểu không hết hoặc tiểu sai yêu cầu của khách hang, khi phân
Trân Mai Liên CB100650
Trang 14tích không đánh giá hết được ảnh hưởng của yêu cầu đến toàn bộ hệ thống và không nhìn ra dược tác động tương tác của hệ thống hiện tại với các hệ thủng khác Lỗi
xây ra trong giai đoạn này thường là những lỗi nghiêm trọng và chỉ phí sửa lễi là
ớn nhất so với lỗi xây ra trong các giai đoạn sau này, bởi lỗi từ yêu câu khi sửa sẽ
kéo theo toàn bộ các giai doạn sau này cũng phải sửa theo Do dỏ, việc tìm lỗi trong,
giai đoạn nay là rất quan trọng, góp phân quan trọng làm giảm chỉ phí sản xuất đo tránh được các lỗi nghiêm trọng,
'Thứ hai, lỗi đến tử người phát triển Lỗi nảy thưởng là lỗi chủ quan của người thực
tiện yêu câu, trong quá trình khai báo, viết ham, thủ tục, sử đụng thuật toán, tổ chúc
đữ liệu Các lỗi này thường được phát hiện trong, quả trình kiểm thử, Ngoài ra, lỗi cũng có thể xây ra trong chỉnh giai đoạn kiểm thứ Khi người thực hiện kiểm thứ
xác định chiến hrọc và phương pháp kiếm thử không rõ ràng, đầy đủ cũng sẽ để lọt
các lỗi của hệ thông
Ngoài ra cũng có những lỗi khách quan xảy ra, lỗi đến từ mỗi trường bên ngoài đội
đự án như bân thân khách hàng không rõ ràng về yêu cầu đưa ra, yêu cầu thay đối liên tục, mỗi trường triển khai hệ thống không hoàn toàn giống như môi trường dã
xác định ban đầu, công cụ phát triển bản thân cũng có lỗi
Thiệu nghiên cửu đã được thực hiện rên các dư án từ qui mô rất nhô đến các dự án
rất lơn và kết quả luôn giống nhau Số lỗi đo đặc tả yêu câu xảy ra là nhiều nhất,
chiêm đến 80% tổng số lỗi của tắt cả oác giai đoạn
Để nâng cao chất luợng phần mém dén tay người sử dụng, cố gắng loại bỗ được tối
da có thể các lỗi của phản mềm không có cách nao khác lả phải kiểm thử phần mềm trước khi đưa sản phẩm ra thị trường
2.2 Giới thiệu chung về kiếm thử phần mềm 2.2.1 Kiểm thử phân mễm là gì?
Kiểm thử phản mềm là quá trình khâo sát một hệ thông hay một thành phần dudi những điều kiện xác định, quan sải vá ghủ lại các kết quả, đánh giá một khia
cạnh nảo đó của hệ thẳng hay thành phần đó (Theo bang chứ giải thuật ngữ chuẩn
Trân Mai Liên CB100650
Trang 15TREE của Thuật ngữ kỹ rghê phần màn- TBEE Stardard Glossny o[ Solware nginccring Terninology}
Kiểm thử phân mẻm là quá trỉnh thực thi một chương trình với mục đích tìm lãi
(Theo “The Art of Sollware Tealing” — Nghệ thuật kiểm thứ phần mềm),
Kiểm thứ phần mềm là hoạt dộng khảo sát thực tiểu sản phẩm hay dịch vụ phần mém trong đứng môi trường chứng dự định sẽ được triển khai nhắm cung cấp cho người có lợi Ích liên quan những thông tín về chất lượng của sản phẩm hay địch vụ phần mềm ấy Mục địch của kiểm thứ phần mềm lả tìm ra các lỗi hay khiếm khuyết
phân mềm nhằm đảm bảo hiệu quả hoạt động tối tmì của phân mêm trong nhiều
nganh khie nhau (Theo Bach khea toan thu mé Wikipedia)
322 Vai trò cña kiếm thứ:
Như đã thảo luận ở trên, đề loại bố lỗi trên sản phẩm trên phần mẻm (tất nhiên là không thế loại bỏ được hoàn toản lỗi) và nâng cao chất lượng phần mềm thì kiểm thử là rất cần thiết trong suốt giai đoạn phát triển và bảo trí hệ thống Nó bao gồm quá trình tìm kiếm, kiểm tra những điểm trên giao điện người dùng, noi ma người ding có thể làm xuất hiện lỗi của đữ liện đâu vào hoặc trong việc hiển thị đứt liệu đầu ra, và lim kiếm những điểm yếu tiểm Ấn có thể gây ra lỗi Thực hiện kiểm
thứ giúp chúng ta làm tăng chất lượng của sản phẩm và dịch vụ, và nó chỉnh là một
đang của các phương thite Verification va Validation 4p dụng cho san phẩm Có rất nhiều phương thức có thê sử đụng trong kiểm thổ, một vài trong số dỏ được thực hiện bởi người tạo ra sản phẩm, một số khác được thực hiện nởi những nhỏm độc lập
Kiểm thử giúp chúng ta do được chất lượng, của phàm mẻm thông qua số lượng lỗi được tìm ra, số lượng bải test đã thực hiện và độ bao phủ hệ thống khi thực hiện kiểm thử Chúng ta có thế đánh giá được chất lượng trong cA 2 mặt vẻ các thuộc tính chửc năng vả phí chức năng của phản mêm Kiểm thứ cung cấp sự tim cậy về
chất hrợng phần mềm nếu né tim ra ít hoặc không tìm ra lỗi Dương nhiên, một bài
fest ngéo nan sé chỉ bao phủ được một phân rất nhỏ các khiếm quyết của hệ thông
và sẽ không còn đủ độ tin cậy dé dua ra đánh giá về phần mềm
Trân Mai Liên CB100650
Trang 16Kiểm thử giúp giảm thiểu rủi ro về chải lượng của phần mềm, về chỉ phí của phan
mềm cho việc sửa lỗi Việc kiểm thử phát hiện cảng sớm các lỗi sở ghúp phan quan
trọng vào việc giảm rủi ro trang việc phát sinh chỉ phí sửa lễi
Tuy nhiên, kiểm thủ cũng không phải là tuyệL đối Các nghiên cứu chỉ ra rằng quá trình kiểm thử chỉ có thẻ tìm ra dược 70% số lượng lỗi trong 1 phần mém Vi vay, việc thiệt kế kiểm thử, chiến hrọc và cách thức thực hiện kiếm thử la rat quan trong trong việc tìm ra tốt da số lỗi có thể, Điều này phụ thuộc nhiều vào công cụ và khả năng, của người thực hiện kiểm thứ
33.3 Tại sao phải kiểm thứ tự động và sit dung tool kiém thit?
Mỗi nhóm phát triển phần mềm tự kiếm thử chính sản phẩm của mình thì sản
phẩm cung cấp sẽ hiôn luôn có sai sói Kỹ sư kiểm thứ phân đầu để ngăn chăn các sai sót này trước khi sản phẩm được phát hành nhưng chúng thường xuất hiện trở lại, ngay cả với các quá trinh kiểm thử băng tay tốt nhất Kiếm tht phan mém br
động là cách tốt nhất để tăng tính khách quan, hiệu quả, liệu quất và bao phủ phân
xuêm cân kiểm thử của bạn
Kiểm thử phân mềm bằng tay được thực hiện bởi người sử dụng máy tính một cách cần thận thông cua mắn hình ứng đụng, cổ gắng sử dụng các cách khác khác nhau
và kết hợp các đầu vảo, so sánh các kết quả mong mưỗn với các kết quả ghỉ lại
những quan sát cửa họ Kiểm thử bằng lay được lập đi lặp lại thường xuyên trong chu ky phát triển mỗi khi có thay đổi mã nguồn và những thay déi khác về môi trường hoạt động và cầu hinh phân cứng Một công cụ phẩn mềm kiểm thứ tự động,
có thể lập lại hành động đã được ghỉ lại và được xác định Irước, so sánh kết quá với anh vi mong doi va dua ra bảo cáo thành công hay thất bại của những bài test tiảy tới kỹ sư kiểm tra Những bài test tự động được tạo ra một lằn và có thể đã đàng được lấp lại cũng như có thé được mỡ rộng để thục hiện các nhiệm vụ không thê kiểm tra thú công bằng tay Hới vị điều nảy, cdc nha quân lý có tâm nhịn đã nhận ra
rằng kiểm thủ phản mềm tự động là một thành phản thiết yếu cửa các dự án muốn
phat triển thành công
Trân Mai Liên CB100650
Trang 17Kiểm thử phân mềm tự đông Lừ lâu đã được xem xét ở nội vị trì (quan trọng trong,
các công ty phần mềm lớn nhưng đối với các công ty nhỏ hơn thì nó lại dược cho là
qua đắt tiên và khó khắn để thực hiện
Trân Mai Liên CB100650
Trang 18TH NGHTEN CUU TOOL KIEM THỨ TỰ ĐỘNG
3.1 Giới thiệu chung về tool kiểm thử tự động
31.1 Khải niệm toai kiểm thừ phần mâm
Tooi kiểm thử nĩi chung lả cơng cụ sử dụng dễ xác thực và kiểm tra các
chương trình phản mềm, các ứng dụng heặc các sản phẩm
Tòi kiểm thủ phân mêm thực chất là các chương trình phân tiệm sử đụng với mục dịch chỉnh lá dễ xác thực và kiểm tra các chương trình phần mềm cần kiểm thử cĩ hoạt động đúng với yêu cầu đã được đặt ra từ trước trong những điều kiện mơi trường hoạt động hốt định
Ở Việt Nam, trong những, năm gần đây việc áp dụng tool kiểm thử tự động trong,
*kiêm thử phần mẻm đang ngày cảng được coi trong tai các tổ chúc, cáo đơn vị sản
xuất phan mém Thy quy mơ của tổ chức mà mức đơ áp dụng tooÌ cĩ khác nhau Nhung tat ca déu đang hướng đến mục tiểu tự động hĩa và chuyên nghiệp quy trình kiểm thử
31.2 Những lợi ích ki sử dụng toal kiểm thử tự động
Tool kiểm thử hự động mạng đến rỗi nhiều lợi ích ho cơng việc kiểm thủ
phần mềm Ta sẽ xem xét ở một số lọi ích sau:
Kiểm thử phẫn mềm tự dộng tiết kiệm thời gian va chi phí
kiểm thứ phần mẻm thường, phải lập di lặp lại thường xuyên trong, chu kỹ phat triển để đảm bão chất lượng Mỗi khi source code chương trình cĩ sự thay đối thì cần phải tiến hành kiểm thử lại phần mễm Trước khi phần mềm được dua dén khách hàng, nỏ cần phái được kiểm thứ trên tất cả các hệ điều hành hỗ trợ vả các
câu hình phản cứng Nêu sử dụng kiếm thử thủ cơng sẽ rất tồn kém và mắt thời
gian Với kiểm thở tự dộng thì chỉ với 1 lần tạo ra cĩ thể sử dụng cho nhiều lần mà khơng phải thêm bắt kỷ chỉ phi phát sinh thêm nào vả những bài test sẽ được thực hiện nhanh hơn rất nhiều kiếm thử thủ cơng Kiểm thử phân mềm tự động cĩ thể
Trân Mai Liên CB100650
Trang 19làm giảm thời gian kiếm thử lặp đi lặp lại đến ngây, giờ Tiết kiệm thời gian đồng ghop trực tiếp vào việc tiết kiệm chi phi
iểm thứ phần mềm tự động nâng cao độ chính xác
Ngay cả những nhân viên kiểm thử cần thận nhật cũng sẽ mắc lỗi trong quá trinh kiểm thứ thủ công đơn lẻ Kiểm thứ tự động thực hiện tương tự các bước một cách chính xáo mỗi khi thực hiện bài test và không bao giờ quên ghỉ lại các kết quả
xmột cách chỉ tiết,
Kiểm thử phần mềm tự động tăng độ bao phủ kiểm thử
Kiểm thử phản mễm tự động có thể lãng độ sâu và phạm ví của các bài test
để cải thiện chất hượng phân mêm Các bài test đài thường bị tránh trong quá trình
kiểm thử thủ công thị có thể được chạy mà không cần giảm sát Thậm chỉ chúng có thể chay trên nhiều máy tính với các cầu hình khác nhau Kiểm thử phẩn mềm tự
động có thể kiếm tra sâu bên trong ứng dung va lây được các thẳng tin về bộ nhớ,
bảng dữ liệu, nội đụng ñile và trạng thải bên trong chương trình để xác định khi sân phẩm hoạt déng nhu mong dgi Kiém thir phan mém ty déng có thé dé dang thực thiện hàng ngàn trường hợp kiểm thủ phức tạp khác nhau trong tất cả các bài test mà
chúng có thể khó có thể thực hiện dược với kiếm thử thủ công Nhân viên kiểm thủ
được giải phóng khối các bái test thủ công lặp đi lặp lại để tạo các bái test tự động, mới cha các chức năng phức tạp khác
Kiểm thử tự động có thể thực hiện những việc mà kiểm thứ thủ công không thé làm được
Ngay cả các đơn vị phần mềm lớn nhái cũng không thể thực hiện điêu kiển ant bai test img dụng web với hang ngan user Kiểm thử tự động có thể mô phỏng, hàng chục, hàng trăm hoặc hang ngàn người đùng ảo tương tác với mạng hoặc phân
Trang 20Các bai test kiém thử tự động có thé được sử dụng cho các nhân viên phát triển dé
họ phát hiện ra sớm các van để trước khí ban giao chương trình cho QA Cac bai
†est có thể chạy tự động bắt cứ khi nào có thay đổi về souroe code và thông báo cha
đội ngũ phát triển khi có lỗi Các tính năng này tiết kiệm được thời gian cho đội phat triển và tăng, dộ tự tia của
Kiém thử phẫn mềm tự dộng nâng cao trình dộ chuyên môn cho các thành viên nhóm
Diéu nay khó do đếm được, nhưng vẫn có thể nói kiểm thử phần mềm tự
thành viên Tự động hóa đơn cá
việc lặp đi lặp lại với tool kiêm thử tự động cho phép nhỏm cửa bạn dành nhiều thời
gian hơn cho các vân đề của đự án nhiều mang tính thách thức và phức tạp hơn Các
thành
trong nhỏm nâng cao được kỹ năng và sự tụ tin, đồng ghớp được nhiền hơn cho tổ chức của họ Ngoài ra, việc sử dựng tool giúp nâng cao trinh độ của nhân viên kiêm thủ Việc reeord, viết các script phức tạp cũng giúp cho kiểm thử viền Tiểu hơn về chương trình, nâng cao gác kỹ răng về phần mém
3.1.3 Khi naa nén sit dung tool test?
Tool kiểm thủ là công cụ giúp thực hiện việc kiểm tra phan mém mot cach lit
động tuy nhiên không phải mọi việc kiểm tra đều có thể tự động hớa, câu hỏi đặt
ra là trong điều kiện hoặc tỉnh huỗng náo đừng tool kiểm thử là thích hợp? Việc ding tool kiểm thử thường được xem xét trong một sở tỉnh hudng sau:
'Không đủ tải nguyễn
Khi số lượng tỉnh huống kiểm tra (Iesi case) quả nhiều nà nhận viên kiểm thử không thể hoàn tất bằng tay trong thời gian cụ thể nào đó.Có thê lấy mét din chứng,
lá khi thực hiện kiểm tra chức nắng của một website Website này sẽ được kiếm tra với 6 môi trường gẫm 3 trình duyệt (TE, Nétcape, Opera) và 2 bệ điều hành
Trang 21"Kiểm thử hồi quy (regression test)
“Trong quả trình phát triển phần mềm, nhóm lập trình thưởng đưa ra nhiều
'phiên bản phản mẻm liên tiếp để kiểm tra Thực tế cho thấy việc đưa ra các phiên
bn phân mềm có thể là hàng ngày, mỗi phiên bản bao gồm những lính năng mới, hoặc tính năng cũ được sửa lỗi hay nang cấp Việc bổ sưng hoặc sửa lỗi code cho những tỉnh năng ở phiên bản mới có thê làm cho những tinh năng khác đã kiếm tra tốt chạy sai mặc dù phần code của nó không hệ chỉnh sửa Để khắc phục điều này,
di với từng, phiên bản, nhân viên kiểm thứ không, chỉ kiểm tra chức năng mới hoặc được sửa mà phải kiểm tra lại tất cả những tính năng đã kiếm tra tốt trước đó Điển nay khó khả thĩ về mặt thời gian cũng như tốn nhiều nỗ lực nếu tiền hành kiểm thủ thủ công Trong những trường hợp này tool kiểm thứ là một lựa chọn phủ hợp nhất Phải thường xuyên kiểm thử một số lượng lún trường hợp kiểm thử
Một lợi ich rỡ ràng của kiểm thử tự động đỏ chính là khá năng chạy một số lượng lớn case trong một khoăng thời gian giới hạn, vì thể nó khả thí trong trường, hợp phải (cai thường
xuyên Đây cũng là lý đo cho phép chúng ta tăng số lượng các case và tần suất kiểm thử Từ đó nâng cao độ bao phủ kiếm thử
Kiểm tra khả năng vận hành phần mêm trong môi trường đặc biệt
Đây là kiểm tra nhằm dành giá xem khá năng vận hành của phần mẻm trong, những điều kiện đặc biệt có thỏa mãn yêu cầu đặt ra hay không Thông qua đó nhân viên kiểm thử có thể xác định được các yêu Lô về phân cứng, phần miềm ảnh hướng
Trân Mai Liên CB100650
Trang 22đến khả răng vận hành của phần miễm Có thể liệt kẽ một số tình huôồng kiểm tra tiêu biểu thuộc loại nảy như sau:
+ Đa tắc độ tang bình xử lý một yêu cầu của web server,
* Thiết lập 10000 yéu cau, déng thoi giti dén web server, kiểm tra tỉnh huống, 10000 người dùng truy xuất web cùng lúc
+ Xáo đmh số yêu cầu tôi đa được xử lý bởi web sorver Hoặc xác dinh cau hình máy:
thấp nhất má tốc dộ xứ lý của phần mềm vẫn có thể hoạt dồng ở mức cho phép
'Việo kiêm thử thủ công cho những tỉnh huềng trên là cực khó và nhiều khi không, thể thực hiện được, ví dụ tạo ra 10000 người cùng log vào hệ thông 1 lúc việc chuẩn
bạ 10000 người dùng thực cùng sử dụng hệ thống vá phủ lại tit cá những tác động này là điều không thể Nhưng với việc sử dụng tool kiểm thử tư đồng, thì việc tạo ra cho bạn 10000 người dùng áo không phải lả việc khó trong khi không cân tiêu tốn lượng tài ngưyên lớn như kiểm thử thủ công,
Noi tom lại ímg với các giai đoạn kiêm thử trong quy lính kiểm thủ, ứn tooi kiểm
thứ thường được ap dụng trong các giai doạn: kiểm thứ hồi quy (regression test),
kiêm thứ tải hệ thông (performance test, load test, stress test)
3.1.4 Những han ché khi sit dung tool te dong
Ở trên, đã trình bẩy những lợi ích to lớn của tool tự động trong kiểm thủ
phan mém uy nhiên, bên cạnh những lợi ích này kiểm thử tự động không phải lá
sự lựa chọn tốt nhất trong mọi trường hợp Kiểm thử tự động trong nhiều trường
hep cing có những tran chế mà người sử đụng cần phải nắm được trước khi muốn
sử dụng
Kiém thủ tự động không thể thay thể hoàn toàn kiểm thử thủ công
Kiểm thủ tự động không thể thay thể được hoàn toàn kiểm thử thủ công,
cũng khỏng thẻ tự dộng, hỏa toàn bộ các hoạt dộng vá các trường hợp cần kiểm thử Trong nhiều trường hợp, kiểm thử thủ công sẽ được thực hiện đễ dàng hơn nhiêu
Trân Mai Liên CB100650
Trang 23kiểm thủ tự động hoặc quá khó để tự động hóa, không khả thi về mặt kinh tế nêu tiến hanh kiém thở tự động,
Những trường hợp không nên sử dựng kiểm thử tự động như là:
- Khi có những trường hợp kiểm thử rất íL khi phân thực hiện Ví dụ như một yêu cau kiểm thứ chỉ thực hiện 1 lân rong 1 năm, do dó không nên tự động,
hỏa những case test này
- Khi phần mẻm thường xuyên thay đối Ví dụ, nếu giao điên người đừng và các chức năng thay đổi quá nhiều từ phiên băn này sang phiên bán khác, khi
đỏ nễ lực bỏ ra để tụ động hỏa case kiểm thử sẽ làm tăng chỉ phí rất nhiều
-_ Những case kiểm thử mà kiểm tra kết quả để dàng nêu thực hiện thủ công nhưng quá khó để kiểm tra tự động Ví dụ, khi cần kiểm tra sự sắp xếp mẫu
sắc, cáo yêu tô thuộc về mỹ thuật của màn hình hoặc kiểm tra audio có được
bật dùng hay không?
-_ Những case có sự tương tac với phân củng, như là tương tác với card thông
qua card reađer, ngắt kết nối với một vài thiết bị, bật tắt nguễn
Không phải tất cả các casc kiểm thử thủ công đễu nên lự động hóa, chỉ những casœ
kha thi hoặc thường xuyên phải thục hiện Khi phẩn mềm thường xuyên thay đối thì
kiểm thủ thủ công sẽ tìm ra được lỗi rải nấu
Kiém thứ thủ công m được nhiều lỗi hơn kiểm thử tự động
Một bài test rất có thể tìm ra được lỗi ngay trong lần đầu tiên mà nó được
chạy Nếu một IesLcuse được thực hiện tự động, tê cần được Iest thủ công trước để đăm bảo tính chỉnh xác James Bach dã dưa ra kết luận dựa trên kinh nghiệm rằng, kiểm thử tự động chỉ tìm ra được 15% khuyến quyết trong khi kiểm thở thủ công là 85% (Nguồn: Bach, 1997) Khi ml test-suite tự động được xây dựng, nó (hưởng
sử dụng khi re-test Thông thường, các bài test này đã được thực hiện thủ công,
trước đỏ và do đó chúng sẽ tìm ra ngay được cáo lỗi trong khoảng thời gian này
Khi thực hiện chay với tool thực chất là thực hiện kiểm thứ lại, ví dụ như tool kiểm thứ hỗi quy
Thụ thuộc nhiền hơn vào chất hrợng của các bai test
Trân Mai Liên CB100650
Trang 24Một Iool kiểm thử chỉ có thể xác định được sự khác nhau giữa kết quả ưực
tế với đầu ra mong muốn Do đỏ, có một sự đôi hỏi khắt khc trong, việc kiểm tra
tính chính xác của các đầu ra mang muốn trong kiểm thử tự động Khi toal thông,
táo cho chúng ta kết quả kiểm: thử là pass nhưng thực ra là chúng chỉ trả vẻ kết quả sau khi sơ sánh đừng, dầu ra mong, muốn
Vi vậy, việc xác định chất lượng của những bài test cân tự động hóa là rất quan
trong Những 1estware cẩn phải dược xem xét và kiểm tra để đâm bão tính chính xác của chúng,
Kiểm thử tự động không nâng cao hiệu quả kiểm thứ
Tự dộng các bài test không làm chúng hiệu quả hơn trong việc tìm lỗi so với khi
thực hiện chúng thủ công Tự động hóa là khâu cuối cùng trong việc nâng cao hiệu quả của các bài test, đó là chỉ phí và thời gian thục hiện
'Todi không cỏ sự tưởng tượng,
Tool chi 14 phdn mềm và đo đó nó cũng chỉ hoạt động theo một câu trúc cho trước
Cả tool và nhân viên kiếm thử đêu có thế test theo mặt chỉ dẫn những với một nhân
viên kiểm thử, cùng một yêu cầu có thể thực hiện theo một cách khác Ví dụ, khí xnột nhân viên kiếm thử được giao thực hiện chuẫn bị và chạy test một thủ tục, khi
so sánh kết quả thực Lê với đầu ra mơng muôn và cả 2 đều sai, nhân viên kiểm thử
có thể nhận biết và điểu đưa vẫn để này ra giải quyết để nâng cao chất lượng của
phần mêm Trong khi nếu toa] kiếm thử thực hiện những trường hạp này, nó chỉ
đơm giản dua ra két qui false cho Lestcase
3.2 Quy trình kiểm thử sử dụng toal tự động
Kiểm thử hr động cũng tuân thea các bước phát triển phản mềm, chứng ta phải xem việc phát triển kiểm thử tự động giỏng như phát triển một dự án
Mặc đủ tool kiểm thử hiện nay rất phong phú và có nhiều đặc điểm khác nhan, tuy
nhiên khi áp đụng Lool vào kiểm thủ tự động thi co ban điều phải Luân theo các buớc
cơ ban sau:
Trân Mai Liên CB100650
Trang 25* Thu thập các đặc là yêu cầu hoặc tesL case, lựa chọn những phần cân thực hiện kiểm thử tự động
« Phả
tích và thiết kế mô hình phát triển kiểm thử tự động,
+ Phát triển lệnh dặc tả (scrip) cho kiểm thứ tự động
lẻm tra và theo đối lãi trong seript của kiếm thir tu động
Chỉ tiết các bước sẽ được xem xét sau đây:
3.2.1 Phân tích và Hiễt kế mô hình phú triển kiểm thứ tự động
Từ việc xác định yêu câu và mục đích của công đoạn kiểm thủ cần tiên hành ap dung tool, kiém thử viên sẽ phân tích và thiết kế mô hình sẽ triển khai để áp đụng tool Để thực hiện thì thường ta sẽ trả lời các câu hồi thường gặp sau:
1 Chức năng nào sẽ tiễn hành kiểm thứ tự dộng và yêu cầu đặt ra cho từng chức năng?
Đây là câu hồi rãi quan trọng mà kiểm thử viên trước khi đặt vẫn đè kiểm thứ tự động cần trả lời Như dã nói ở trên, không phải bất cứ một bài test nào cũng, có thể và cững nên kiểm thú tự động Cần phái xem xét tỉnh khả thị khi áp dụng thứ: Ioslcase có thể chuyển sang tự động hóa được không?, tự động héa cd dem fai loi ich hơn kiểm thử thứ công không ?, khả năng của tổ chức hiện tại cỏ dáp
Trân Mai Liên CB100650
Trang 26-_ Nếu lá kiểm thữ liệu năng (perfrtnanee tesil): xác đút các chức nắng cân kiểm thử, tiêu chí pass/fail hiệu năng (VD: 100 user củng thực hiện từn kiểm,
thời gian truy vẫn trung bình là 5s, tỷ lệ fail là 10% )
2 Môi trường sẽ thực hiện kiểm thứ và đữ liệu cần chuẩn bị kiểm thir
Môi trường thường, được xem xót ở gác điểm sau:
-_ Câu hình và dịa chỉ server ứng dụng va server database
-_ Hệ điểu hành, trình duyệt sử dụng, version
-_ Đường dẫn chương trình, phiên bản ứng dựng
-_ Câu hình, địa chỉ, số lượng các máy client để triển khai
3 Lựa chọn tooi kiêm thử
lệc lựa chọn tool kiêm thử nào đề áp dụng thì căn cứ vào nhiền tiêu chí:
~_ Từ ải nguyên sẵn có của tổ thúc Ví dụ như các ứng dung của tổ chức đang,
sử dựng tool Load Runner để kiểm thứ hiệu năng thi sẽ lựa chợn luôn tool nay dé kiém thử hiệu năng,
~_ Từ mục đích kiểm thử và mỗi trưởng kiểm thử ở các bước trên để xác định tool nào cho phủ hợp vì cò rất nhiều tool trong dỏ mỗi tool có 1 thế mạnh và phạm vị khác nhau khi áp dụng (VD có tool chỉ chạy trên trình đuyệt TE, tool chỉ lùu việc với hệ điều hành wimdown, tool chỉ hỗ trợ ứng dụng HTTP, .Net, các thông số kết quả mả tool sẽ lẫy được .) Kiểm thử viên phải có sự tham khảo và năm được các điểm này để lựa chọn cho phù hợp với ứng dụng, của mình
-_ Nếu tổ chức của bạn chưa có một tooi chính thông nào để sử dựng và cũng không có điều kiện sử dựng các tool cé licence thi tool open souree lả lựa chọn của bạn Hiện nay củng có rất nhiều tool miễn phi mả bạn có thể sự
đùng được
322 Tạo test script (lịch bản kiêm thử)
Đây là giai đoạn quan trọng của quy trình kiểm thử bằng tool Đòi hỏi nhân viên kiểm thử phâi có kiên thức về tool đang sử dụng đề record Mỗi tool kiếm thử
Trân Mai Liên CB100650
Trang 27đều có cơ chế cho phép record lại các thao tác khi người đăng tháo tác trên ứng dụng Các thao tác này sẽ dược lưu lại thành các seript, seript này được viết dưới
đạng các ngôn ngữ lập trình khác khau tủy theo tool sử đụng Mỗi kịch bản test sẽ
gồm nhiêu các seript bên trong, các soripL này chính là cơ sở để thực hiện các bài test của bạn Tuy nhiên chỉ dựa vào các script nảy thì thường bạn sẽ chưa thẻ thực hiện được bài test ngay mà sẽ phải trải qua công đoạn chính sửa chuẩn hóa lại seript thơo mục dích của bài text
3.2.3 Chỉnh sữa test script
Néu như ở bước lạo lesL seript, nhân viên kiếm thử chỉ cần có kiến thức sử
dụng tool thì ở phần chính sửa test script ngoài phải hiểu biển chỉ tiết hơn vé tool
ma còn đòi hỏi phải có kiễn thúc về chương trình đang cần đo và kiên thức về ngôn
Tigữ lập trình Nêu như ở bước tạo Iesl sorrpL chỉ yêu sầu 1 Iesler có trình độ chuyên
xôn trưng bình về tool thì ở công đoạn chỉnh sửa test script thì cần 1 tester phải có trình độ khá về tool sử dựng
“Thục Lễ cho thấy sau khi record thì seripL chưa thể chạy được ngay mà có rất rhiển ràng buộc từ phía ứng đựng cần do khiến †z phải chỉnh sửa cho phủ hợp Chỉnh vì lý
do dé ma day là công đoạn có thế cho là qnan trọng nhất và khó nhật khi sử đụng tool Lu động
Cáo công việc thường thực hiện trong giai đoạn này là:
-_ Chạy scripl, tim và gõ lỗi
- _ Add thêm các control cản thiết
- _ Add thêm các ñmetion cần thiết
- Add thém danh sách đữ hiện cần thiết
Chỉ khi kịch bản của bạn chạy ổn định, không, còn bắt kỳ một lỗi nảo thủ senpt nảy mới sin sing dé dura vào kiêm thử
2.2.4 Chay test script dé kiém thit te dong
Đây lá bước thực tu những seript mã bạn đã tạo được từ bước 2 trên mỏi
Trang 28trén céc may client va sit dung tool dé Rum va control cae script nay theo cac bước tủy thuộc vào tool sử đụng Những lưu ý trong qua trình chạy nảy cũng phải chú ý
đề thu được kết quả chính xác nhật Ví đụ như sau mỗi lần đo phải restart ứng dung,
TpalarL database, cache
2.5 Đảnh giá kết quả
Tương ứng với mỗi lần chạy test scripl thủ nhân viên kiểm thử sẽ thực hiện lưu lại kết quả nảy vào thư mục của dự án Tủy theo yêu cầu mã sẽ đánh giá sau andi lin chay hay đánh giá ở giai đoạn khi kết thúc tất cả các lần đo
Kết thúc giai đoạn kiểm thứ thì các test script cũng, dược coi như tải nguyên của dự
án, cn được lưu trữ lại dé tái sử đựng cho những lẳn kiếm thử sau
3.3 Phân loại Hiện nay, tool có thể hỗ trợ cho tất cả các giai doạn trong vòng đời phát triển của phân mềm Theo cach nay thi ta cd cdc nhém tool nhu la: test design tool, test
management tool, static analysis tool, coverage tool, debugging tool, dynamic tool,
sinulator,
Tuy nhiên †a sẽ thao luận sâu hơn với cách phân loại theo chức năng và pham vi ứng đựng của tool như sau đây
413.1 Taol ẩa tãi và hiệu năng
Các tool được sử đựng với mục đích test tải và hiệu năng cho các hệ thống Nguyên lắc chúng là Go ra nhiều người đùng ão, nhiều roquosl, nhiều seossin để
Trân Mai Liên CB100650
Trang 29gây ấp lực đến hệ thơng đồng thời hoặc trong 1 khoảng thời gian từ đĩ đánh giá khả năng chịu tải, khả năng, phục hỗi, điểm ngưỡng tải của ứng dụng
.Một số taol thuộc loại này đĩ là: Tsung, PerformanceXpert, LoadUl, AppViewWeb, ToadRumer, Ineter
3.3.2 Tòi kiểm thử cúc ứng dụng Java
Tả các Iaol phục vụ cho antomation tết với các ứng dụng viết bằng Java
Một số tool thuộc loại nảy đĩ lá: Arquillian, RTI, Yeurkit Java Profiler, VisualVM, Lapse, Checkmart, TestNG, LinkScan
3.3.3 Tool kiém tra đường dẫn tiên kết
La cac toot phục vụ che việc kiếm tra các link trên hệ thơng: kiểm tra hosted
tk, URL, xác định các tập lin khơng được khai báo, Tánk bị hỏng, Link lỗi cú pháp
Mat 36 tool thudc loai nay dé 1: LinkTiger, HiSoftware Link Validation Untintily, ChangeAgent, Link Checker Pro, Web! ink Validator, TinkSean
3.3.4 Tool kiểm thữ tink hap lệ
Là các tool hỗ trợ cho việc kiếm tra tính hợp lệ của Page linh, chính tả cú pháp HTML
Một số tool thuậc loại này dé 1a: Total Validator, ReaLValidater, TTTML Validator, CSE 3310 HTMI, Validater
3.3.5 Tool kiém thit chức năng Webvitest hi quy
Ta
¢ tool phuc vu cho vide automation tesL chức răng các ứng dụng Web
thường sử dụng trong quá trình Regression tost Nguyên tắc chung là roeord lại các đổi tượng và hành động thánh các script tự động để sứ dụng cho các lần test sau
Số lượng các tool ở loại này là rồi phong phú và được sử dụng thường xuyên trong, việc kiểm thứ, cĩ thể kế ra dây 1 số tool thuộc loại nay như: QuickTestPro, Rational Robot, Selenium, Fabasoft app.test, Janova, FuncUnit, qUnit, Twist, QU-Test,
WebDriver, QEngine, Test Complete Enterprise, SimpleTest
Trân Mai Liên CB100650
Trang 303.3.6 Tool text bảo một cho ngủ dụng Web
Tả cae lool quét các lễ hổng về bão mật cho các ứng dụng Web như các lỗ hổng SQL injection, X88, CERS, các van dé bao mat vé File,
Một sỏ tool thuộc loại nảy đó là: Vega, Aribisee Web Analyzer, Golem, Skipfish, Secker, WebSccurily, Archni, Tarantula, RATS, beSTORM, Proxy Zed, SPIKE Proxy, AppScan
33.7 Taol test cúc eng dung cho Mobile
Là các tool hỗ trợ giá lập để test các ứng dụng phát triển cho Mobile trên nền Tpad, Iphone, Android
Một số lool thuộc loại này đỏ lê SeeTesOMGbile, ZAP-ñX for Mobile, Mobiltest, M-oux, Android APK for Sclenium, Instruments for Xeode 4, Perfecto Mobile, Robotium, FoneMonkey TestQuest CountDown, Intent Fuzzer, MITE
3.4 Giới thiệu chỉ tiết về một số tool đang sit dung phổ biến ở Việt Nam
Về lĩnh vực kiểm thử phần mẻm, ở Việt Nam hiện nay có rit nhiéu tool test đang được sử đụng Tùy vào mục đích sử dựng và khả năng của doanh nghiệp và tool test co thé 1a tool kiểm thử hiệu năng hoặc chức năng, miễn phi mã nguồn mở
hoặc các tool thương mại
Các tool thường được các công ty phân mềm của Việt Nam sử đụng vi độ phù hợp với các sản phẩm phần mềm dang phat triển tại Việt Nam như là:
- Cac tool thương mại: QuickTestPro, Rational Robot, TestComplete, Load Runner
- Cac tool mA nguén mé mién phi: Jmeter, Selenium, Ruby
Dưới đây xin giới thiệu chỉ tiết hơn về đặc điểm, tính năng của một số tool đang, được sử dụng
Trân Mai Liên CB100650 28
Trang 313.41 QuickTestPro (QuickTest Professional)
3.4.1.1 Giới thiệu
Trong lĩnh vực kiểm thử tự động hiện có khá nhiều tool tesl thương mại nỗi tiếng, phé bién uhu QuickTest Professional, WinRunner, Rational Robot, SilkTest, STest, ‘Trong s6 dé, Quickest Professional cita hing Mercury khả tốt và mạnh, bao gồm nhiều chức răng điển hình của một công cự kiểm tra tự động,
QuickTestPro 14 tool test ding dé kiếm thử chức nang {functional test) va cho phép thực hiện kiểm thử hỏi quy (repression test) miột cách tự động Đây cũng lả công cụ
áp dung phương pháp Keyword-Driven, một kỹ thuật seripting (lập trình trong kiếm thử tự động) biên đại, cho phép nhân viên kiếm thử bỗ sưng Iesicase bằng cách tao file mỏ tả cho nó mà không cần phât chỉnh sửa hay bỗ sung bắt cứ seript nào cả Nó
cũng phủ hợp trong tình huỗng chuyến giao công việc mà người mới tiếp nhận chưa
có thời gian hoặc không hiểu seript van có thể thực hiện kiểm thử phần mém theo đúng yêu cầu
Loại phần mềm hỗ trợ
Quickï estPro giúp chúng ta kiểm thử phần mềm theo hưởng chức năng trên
rất nhiều loại chương trình phân ruẻm khác nhau Tuy nhiễn Mercury chỉ hỗ trợ sẵn
xột số loại chương trình thông dung như:
Trang 32Một số loại chương trình khác đời hỏi chúng ta phải cài đặt thêm thành phần
bổ sung của QuickTestPro thì mới thực hiện kiểm tra dược Các loại chương trình
6 li:
NEL
+ NET Eramework 1.0, 1.1, 2.0 beta
+ Cáo đối tượng chuẩn của NET va cac đối tượng khác thừa kế từ các đối tượng
Trang 33Repository (OR — duve giải thích ở phần sau) dé QuickTestPro nhận ra sự thay đối
đó mà không cân thay đổi bất car test script nao
+ Hỗ trợ làm việc theo nhóm thông qua sự chỉa sẽ thư viện, thông nhất quần lý
+ QuickTestPro có khú năng hiểu test soript của Mercury Winrunner (một công cự
kiêm tra khác của Mereury))
3.4.1.3 Các thành phẫn quan trong trong QuickTestPro
Action:
Giống như thú tục hay ham trong các ngôn ngữ lập trinh khác, Action gìu lại các bước thực hiện kiểm thứ ny động và nó có thể được sử địmg lại nhiều lần Trong Tnột Icsl scripL có thể có nhiều Action
DataTable:
Nơi lưu dữ liệu phục vụ cho k thử tự đồng Một test script sé cd mat
DataTable được dùng chưng cho tắt cả các Action liên cạnh đó mỗi Action cũng có
mét DataTable cho riéng min
Trân Mai Liên CB100650
Trang 34Object Repository (OR):
Cân tric theo đạng cây, mô tả các đổi Lượng trong phân mềm được kiểm tra Đây dược xem là cầu nồi dễ tost seript tương tác với phần mềm được kiểm tra
Khi ra lệnh cho QuiekTestPro ghi lai thao tac ngwdi dùng lên phần mềm thi trong OR sé ty động phát sinh thành phản đại điện cho những đổi tượng trên phần
mêm vừa được thao lá
OR có thể tổ chức thánh 2 loại, một loại đủng chưng trong nhiéu test script,
loại khác dùng theo từng Action
PE xem OR, chon menu Tools -> Object Repository
Checkpoint:
Có thể hiểu là nơi kiểm tra trong test soript, khi chạy nó sẽ thực hiện so sánh kết quá thực tế khi kiểm tra phần mềm với kết quá mong đợi Sau khi tién hinh so sảnh QuickTesiPro sẽ tự động ghỉ lại kết quả vào Test Results (nơi lưu kết quả khi
chay test script)
Ngén ngit sit dung viet script
QuickTestPro sir dung ngôn ngữ VSeripl để việt test serip! Đây là ngôn
ngữ đễ học; rất giống ngôn ngữ VA Chế độ Ixpert View của QuickTestPro là chế
độ soạn thảo đành cho VBScript Ngoai viée dimg VPScript để tương tác với phân xuổm được kiểm tra, QuickTestPro còn có khả nặng cấu hình hệ thống bằng ngôn ngữ Windows SeripL
Với nhiều chức năng ưu việt như đã dé cập bên trên, QuickIestPro là một Test Tool mạnh mẽ có khả nắng hỗ trợ đắc lực cho kiểm thử Việc ứng đụng nó hợp
lý chắc chắn sẽ giúp giảm công sức của nhân viên kiểm thử dễng thời làm tăng chat lượng phần mềm Trong điều kiện Việt Nam hiện nay, với tý trọng gia công phần miểm ngày cảng lớn tại các công ty phản mềm, người viết cho rằng kiếm tra phần
Trang 35© La tool hỗ trợ mạnh cho cáo ứng đụng Web (đặc biệt trình duyệt FireFox)
—> phù hợp cho nhiều hệ thông đang phải triển tại tìng lâm phần mềm Ngoài ra có thể hỗ trợ bát kỳ 1 trình duyệt nào trong khi chỉ cần tạo soript trên Ì trình duyệt
Hỗ trợ nhiều loại ngôn ngữ lập trình: HTML, Iava, Cũ, Ơ cho phép người số dụng ngôn ngữ sở trường của mình để tạo Soipt
3.4.2.2 Cau tric Selenium
Selenium gồm nhiều module, méi module có chức năng riêng Bao gồm các
module
* Selenium IDE (integrated Development Environment)
* Selenium Core Selenium RC (Selenium Remote Control)
* Selenium Gnd Trên day 1d 4 module thuge Selenium 1 Dén Selenium 2, Selenium RC đã được thay thể bởi Seleniun WebDriver Dây là một sự mở rồng mạnh mẽ vẻ quan trọng góp phan dưa Selenium ngày càng trở thành một tool kiểm thử chức năng rất smanh va được nhiều đoanh nghiệp lựa chọn
Mỗi module có một chức năng và nhiệm vụ riêng, có vai trò hỗ trợ khác nhau trong, quá trình kiểm thể
Trân Mai Liên CB100650
Trang 36
a, Selenium IDE
Selenium IDE 1a Module dau tién cia Selenium La module quan trong va
cần tiếp cân đầu tiên khi muốn hiểu vả sử dụng Selenium
Ele Edt Options Help
Vale
tncbleFarm.lzin Hsin) ncbleFarn.seril $iserl}
mmeblsForm.imsi Hirsi
‘mobaleForm status ‘Hlact_status) mncbleFarm in
mebleFarm seril mcbleForn iwel
‘ ‘mableForm status
TC Sewch fo podpsd sự | (Idw[@idzsubscriberReolerl
TC Sexch fo postpaid vit {ioiv(@id='subscriberRegion I
‘edkInfoSubBution {icivE@id= bret dkinfoCust Wb
{idk @id= prechangesin bat deietebutton
{idl @id= preblockOpentsub'Y
{divide preManBlockSub'l
T[#N[Đid=subscrlberRegon]]/
JêM(@ddelpreChangevAS'Jou
{ictv( ide prechangeProduct)
Trang 37-_ Seleniun TDE1à 1 add-on cia FireFox, cho phép nhân viên kiểm thữ và nhân viên phát triển ghi lại các luồng chức nắng trên màn hình chương trình Do
dé Selenium IDE phu hop cho việc kiếm thử GUI vả các chức năng cản kiểm
tra chủ yếu về luỗng chức năng theo màn hình của các hệ thống sử đụng trình duyệt EireFox
- Selenium IDE cung cấp sẵn 1 thư viện các lệnh tuong tac man hinh, dap ứng, được hâu hết các sự kiện màn hình khi người đùng cần Cách gọi lệnh rất trực quan dé dimg, khong đòi hỏi người dùng phải c6 kiến thúc nhiều về ngôn ngũ lập trinh
- Selenium cưng cấp cơ chế mở rộng linh hoạt, cho phép người dùng để dàng
mở rộng thư viện lệnh theo nhu cầu Sử dụng TavaSeript — ngôn ngữ lập trình
khả đơn giãn hiện nay
Command trong Selenium IDE
Một đòng lênh trong Selenium IDE duoc c4u thanh tir 3 tham sé: command, targel, value
‘Trong dé command duge chia lam 3 nhom: Actions, Accessors va Assertions Méi
nhóm có chức năng và nhiệm vụ khác nhau
b, Selenium RC
Nhu ching ta di biét Selenium IDE chi st: dung duoc wén trình duyệt Firefox Trong khi dé nbu cau st dung hién nay không chỉ trên 1 trình duyệt như
Firefox mà còn rất nhiều trình đuyệt kháo như Internet Explorer, Crome
Selenimu RC cho phép chúng ra test trên nhiều trình đuyệt khác nhan mà không cần phai cai dit Selenium core trên web server cũng không cần thay đôi gì trên script
Trân Mai Liên CB100650
Trang 38Sự thay đổi này cho phép developer và lester có thể sử đụng các ngôn ngữ lập trình
để gửi conunand tới rowser cho phép thục hiện các tcstcasc phức tạp mà Selenium IDE khéng lam duoc nhu database testing Khéng don gidn nhu Selenium IDE, 48
sử dụng duce Selenium RC doi héi người sử dụng cần có kiến thức về ngôn ngữ lập
trình, biết cách bự tạo ra script test
8elcminn RC hỗ trợ chạy trực tiến cae script duge tao tr Sclenium IDE vai nhidu trình duyệt khác ngoài FireFox
Run Script tir Selenium IDE với Selentum RC
Trên mản hình conmand Prompt chạy cầu lệnh sau:
Java jar selenuam-server-standalonejJar hữnlsuile "trình duyệt
Dia chi trang cần test "Duong din dén file testsuite”
"Đường dẫn dến file chứa kết quả test"
VD:
java -jar selenium-server-astandalone-2220jar -htmlsuite *ñrefox
hitp:/10.58 4.43:8127/ "D:Kiem thứ hiew
nang\selenium I\Dau noi tra sau\TS MobilePosiPaidConnect html" "D:\Kiem
thú lieu nanglselenium_T\Dau nơi tra, saLlresulLhhul"
Trang 39
Jha mutnemce ons
gor Tam ›neildt=`\wirldơwe2sn(^wirdowppoougl HEre4”,“BUỊ J tty
Hình 2: Cửa s6 Selenium Core Framework
1 cửa số khác mở ra trình duyệt tương ứng va load đường dẫn URL tương ứng trong
command Sau đó sẽ thực thi testsuite trên cửa sỏ này Kết thúc sẽ ghi kết quả test ra file result.htm] tương ứng
sjaxbutton (ryretprenant ave bounded wah a tee
hang hơi
để Ahdhai —— Ínkechaytez scenes Jing{@xaUe-'9blng Button’)
'YenfyElemertPteseTt //mput@name="ventybutton’ and Øvalue+'hocolate'}
Hinh 3:File chita két qua result.himl
c, Selenium Core
Selenium Core yéu cau may client chay 1a 1 web server cho tmg dung can do
va can file Selenium Core zip Selenium Core giúp thực thi các seript test đã được
Trần Mai Liên - CB100650 37
Trang 40tạo ra bằng Selenium TDE với bắt kỳ một trình đuyệt nào trơng đó máy chạy script đóng luôn vai trỏ là server của ửng dụng
d, Selenium Grid
Selenium Grid là m&t sy mé réng cho Selenium RC cho phép run với số lượng lớn 1esL suile và trêu nhiều môi trudng Selenium Grid cho phép bạn chạy nhiều bài test song, song và nhiều bài test khác nhau cỏ thẻ chạy củng lúc trên nhiều Tnáy từ xa
Điều này có 2 ưu điển, Thứ nhất, nếu bạn có Ï số lượng lớn test suite và 1 test suite chạy chậm bạn có thể tăng hiệu suất bằng cách sử dụng Selenium Grid,
cho phép điêu khiến test suite để chạy nhiều bài test khác nhan tại cùng lúc trên
nhiểu máy Thú hai, nêu bạn cần phải chạy tesl suite lrên nhiều môi trường khác nhau Seleneum Grid sẽ giúp bạn chạy test trên nhiều may cing hic Selenium Grid ghép phản giảm một phân rất lớn thời gian chạy test suite bằng cách xử lý song song,
Diém khác của WebDriver so với Seleniam
Selenium WebDriver sử đùng lệnh goi trực tiếp đến trình duyét vén có sẵn xmột cách tự động Vì sử dụng trực tiếp những trình duyệt có săn nên những tính
nang duoc ha tro sẽ phụ thuộc vào trình duyét được sử dụng Trong khi Selenium
RC Iam việc như nhau trên các trình duyệt được hỗ trợ
Trân Mai Liên CB100650