Luận văn Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng Selenium và Webdriver
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ HẢI YẾN
XÂY DỰNG ỨNG DỤNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG
SỬ DỤNG SELENIUM VÀ WEBDRIVER
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2020
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM THỊ HẢI YẾN
XÂY DỰNG ỨNG DỤNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG
SỬ DỤNG SELENIUM VÀ WEBDRIVER
Ngành: Khoa học máy tính
Chuyên ngành: Khoa học máy tính
Mã số: 08480101.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. HOÀNG XUÂN HUẤN
HÀ NỘI - 2020
1
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của cá nhân tôi,
thực hiện dưới sự hướng dẫn của PGS. TS Hoàng Xuân Huấn. Trong toàn bộ nội dung
của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ
nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích
dẫn đúng quy định.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định
cho lời cam đoan của mình.
Hà Nội, ngày …. tháng ... năm 2020
Học viên
Phạm Thị Hải Yến
2
LỜI CẢM ƠN
Để hoàn thành luận văn này tôi xin chân thành gửi lời cảm ơn đến PGS. TS. Hoàng
Xuân Huấn cùng các thầy cô trong khoa Công nghệ thông tin – Đại học Quốc Gia Hà Nội
đã đóng góp ý kiến, nhận xét, quan tâm chỉ bảo và tạo cho tôi những điều kiện tốt nhất từ
khi bắt đầu cho tới khi hoàn thành luận văn của mình.
Đồng thời, tôi cũng xin gửi lời cảm ơn đến gia đình, bạn bè và đồng nghiệp đã
luôn quan tâm, chia sẻ, động viên và tạo mọi điều kiện để tôi có thể hoàn thành tốt mọi
công việc trong quá trình thực hiện luận văn.
Mặc dù đã rất cố gắng trong quá trình thực hiện nhưng luận văn không thể tránh
khỏi những thiếu sót, tôi rất mong nhận được sự góp ý của các thầy cô và bạn bè.
Học viên
Phạm Thị Hải Yến
3
MỤC LỤC
LỜI CAM ĐOAN ..........................................................................................................1
LỜI CẢM ƠN ................................................................................................................2
MỤC LỤC ......................................................................................................................3
DANH MỤC HÌNH VẼ.................................................................................................6
DANH MỤC BẢNG BIỂU ...........................................................................................8
LỜI MỞ ĐẦU ..............................................................................................................10
1.1. Giới thiệu về kiểm thử phần mềm.........................................................................12
1.2.1. Khái niệm.....................................................................................................13
1.2.2. Các cấp độ TDD...........................................................................................16
1.2.3. Các lỗi thường gặp khi áp dụng TDD..........................................................16
1.3.1. Khái niệm.....................................................................................................16
1.3.3. Quy trình phát triển theo hướng BDD .........................................................18
2.1. Công cụ kiểm thử tự động Cucumber ..................................................................20
2.1.1. Khái niệm.....................................................................................................20
2.1.2. Ngôn ngữ Gherkin........................................................................................20
2.1.3. Cách chạy một Cucumber Junit test.............................................................22
2.1.4. Chu trình.......................................................................................................23
2.1.6. Cấu trúc dự án cài đặt Cucumber.................................................................28
2.2. Selenium WebDriver ..............................................................................................29
2.2.1. Khái niệm.....................................................................................................29
2.2.2. Giới thiệu về đối tượng UI (Locators) .........................................................31
4
2.3. Giới thiệu mẫu thiết kế (Design pattern)..............................................................38
2.3.1. Khái niệm......................................................................................................38
2.3.2. Phân loại mẫu thiết kế (Design Pattern).......................................................39
2.4. Mô hình thiết kế Page Object Model (POM) .......................................................41
2.4.4. Ví dụ.............................................................................................................44
3.1. Hệ thống tích hợp liên tục (CI)..............................................................................48
3.1.1. Khái niệm.....................................................................................................48
3.1.2. Áp dụng hệ thống tích hợp liên tục..............................................................50
3.1.3. Lợi ích của việc tích hợp liên tục.................................................................50
3.1.4. Jenkins..........................................................................................................52
ĐÁNH GIÁ KẾT QUẢ ...............................................................................................54
động.................................................................................................................................54
4.1.2. Quy trình kiểm thử trước đây tại VIVAS ....................................................55
4.2.1. Cấu trúc dự án ..............................................................................................58
4.2.2. Cấu trúc mã nguồn .......................................................................................60
4.2.3. Tích hợp Jenkins ..........................................................................................64
5
4.3.1. Tiết kiệm thời gian........................................................................................68
4.3.2. Tiết kiệm nguồn nhân lực.............................................................................70
4.5. Hướng phát triển tiếp theo của framework .........................................................72
6
DANH MỤC HÌNH VẼ
Hình 1.3. TDD kết hợp với BDD...................................................................................17
Hình 1.4. Chu trình làm việc kết hợp TDD và BDD .....................................................17
Hình 1.5. Quy trình phát triển truyền thống..................................................................18
Hình 1.6. Quy trình phát triển BDD..............................................................................19
Hình 2.1. Mã nguồn viết bằng ngôn ngữ Gherkin.........................................................21
Hình 2.2. Mã nguồn viết bằng ngôn ngữ Gherkin.........................................................21
Hình 2.3. Mã nguồn để chạy Cucumber........................................................................22
Hình 2.4. Chương trình chạy kiểm thử với Cucumber ..................................................23
Hình 2.5. Mã nguồn viết bằng ngôn ngữ Gherkin.........................................................24
Hình 2.9. Kết quả chạy các kịch bản kiểm thử đã đúng................................................26
Hình 2.10. Chu trình làm việc trong Cucumber............................................................27
Hình 2.11. Cấu trúc dự án cài đặt Cucumber ...............................................................28
Hình 2.12. Thư viện Cucumber cần cài đặt...................................................................28
Hình 2.13. Sử dụng Maven để cài đặt các thư viện.......................................................29
Hình 2.14. Các hệ điều hành phổ biến..........................................................................30
Hình 2.15. 7 cách xác định phần tử Web ......................................................................31
Hình 2.16. Xác định phần tử Web bằng ID ...................................................................32
Hình 2.17. Xác định phần tử Web bằng Name..............................................................32
Hình 2.18. Xác định phần tử Web bằng Linktext ..........................................................33
Hình 2.19. Xác định phần tử Web bằng Tagname ........................................................33
Hình 2.20. Xác định phần tử Web bằng Classname......................................................33
Hình 2.21. Xác định phần tử Web bằng CSS.................................................................34
Hình 2.22. Ví dụ minh họa cách xác định phần tử........................................................34
Hình 2.24. Sử dụng Maven để cài đặt các thư viện.......................................................36
7
Hình 2.27. Cấu trúc POM .............................................................................................43
Hình 2.28. Cấu trúc Page Object Model.......................................................................44
Hình 2.29. Mã nguồn trang Đăng nhập ........................................................................45
Hình 2.31. Mã nguồn chạy nhiều trình duyệt................................................................47
Hình 3.1. Vòng đời CI cơ bản .......................................................................................48
Hình 3.2. Quá trình tích hợp liên tục CI .......................................................................49
Hình 3.3. Hệ thống tích hợp liên tục .............................................................................49
Hình 3.4. 10 hệ thống CI sử dụng với GitHub ..............................................................52
Hình 3.5. Giao diện Jenkins ..........................................................................................53
Hình 4.1. Quy trình kiểm thử trước đây tại VIVAS .......................................................56
Hình 4.2. Cấu trúc dự án thực tế...................................................................................58
Hình 4.3. Quản lý mã nguồn bằng Github ....................................................................59
Hình 4.4. Cấu trúc mã nguồn cài đặt thực tế ................................................................60
Hình 4.5. Cấu hình thông số cho Jenkins......................................................................65
Hình 4.6. Báo cáo kết quả kiểm thử trên Jenkins..........................................................65
Hình 4.7. Biểu đồ kết quả kiểm thử trên Jenkins...........................................................65
Hình 4.8. Biểu đồ kết quả kiểm thử trên Jenkins...........................................................66
Hình 4.9. Báo cáo kết quả kiểm thử trên Extent reports...............................................66
Hình 4.10. Báo cáo kết quả kiểm thử trên TestNG report.............................................67
trình duyệt......................................................................................................................69
8
DANH MỤC BẢNG BIỂU
Bảng 2.3. Bảng phân loại Xpath ...................................................................................35
Bảng 2.4. Một số cú pháp trong Xpath..........................................................................35
Bảng 2.5. Xác định phần tử sử dụng Webdriver ...........................................................37
Bảng 2.7. 5 mẫu thiết kế trong mẫu thiết kế kiến tạo....................................................39
9
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT VÀ CÁC THUẬT NGỮ
STT
Tiếng Anh
Automation Test
Business Analyst
Behavior Driven
Development
Tiếng Việt
Kiểm thử tự động
Viết tắt
AT
1
2
3
Nhân viên phân tích nghiệp vụ
Phát triển hướng hành vi
BA
BDD
4
5
6
7
8
9
Continuous Integration
Developer
Tích hợp liên tục
Lập trình viên
CI
Maintenance
Bảo hành, bảo trì
Kiểm thử thủ công
Mô hình Page Object
Tái cấu trúc
Manual Test
Page Object Model
Refactor
POM
10 Regression Test
11 Software Testing
12 Test case
Kiểm thử hồi quy
Kiểm thử phần mềm
Trường hợp kiểm thử
Phát triển hướng kiểm thử
Kiểm thử viên
13 Test Driven Development
14 Tester
TDD
15 Test script
Kịch bản kiểm thử
10
LỜI MỞ ĐẦU
Trong nhiều năm qua, tự động hóa được ứng dụng ở rất nhiều lĩnh vực nhằm giảm
thời gian, nhân lực và sai sót. Ngành công nghệ thông tin mà cụ thể là phát triển phần
mềm cũng không ngoại lệ. Một sản phẩm công nghệ thông tin hay phần mềm có chất
lượng không thể thiếu hoạt động kiểm thử phần mềm, trong khi đó 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 dự án. Do vậy, nhu cầu tự
động hoá kiểm thử phần mềm cũng được đặt ra. Việc áp dụng kiểm thử tự động hợp lý sẽ
mang lại thành công cho hoạt động kiểm thử phần mềm cũng như nâng cao chất lượng
của sản phẩm phần mềm. Kiểm thử tự động giúp giảm bớt công sức thực hiện, tăng độ
tin cậy và rèn luyện kỹ năng lập trình cho kiểm thử viên.
Selenium là bộ kiểm thử tự động miễn phí (mã nguồn mở) dành cho các ứng dụng
web trên các trình duyệt và nền tảng khác nhau. Với selenium cùng một số công cụ hỗ trợ
khác như Cucumber, Jenkins, Maven,… kiểm thử viên có thể phát triển thành các
framework hỗ trợ cho viết các kịch bản kiểm thử và chạy các kịch bản này một cách tự
động, giảm nguồn lực, tăng độ tin cậy và nhàm chán của công việc kiểm thử.
Ngoài ra, hiện nay, nhu cầu kiểm thử tự động khá cao nhưng nhân lực trong ngành
này không nhiều, đặc biệt là ở Hà Nội. Các công ty muốn áp dụng kiểm thử tự động trong
quá trình phát triển dự án nhưng việc hiểu biết về kiểm thử tự động khá là mơ hồ và chưa
xây dựng được một framework chuẩn áp dụng cho dự án tại công ty mình.
Dựa vào những lý do trên cùng với những kinh nghiệm 4 năm tôi có được trong
lĩnh vực kiểm thử. Tôi muốn xây dựng một framework kiểm thử tự động hỗ trợ các kiểm
thử viên. Đó là lý do tôi chọn đề tài “Xây dựng ứng dụng kiểm thử phần mềm tự động sử
dụng selenium và webdriver”
Đề tài tìm hiểu cơ sở lý thuyết và kinh nghiệm thực tế về kiểm thử cũng như xây
dựng ứng dụng kiểm thử phần mềm tự động để giảm nhân lực kiểm thử và đảm bảo chất
lượng phần mềm hơn với công việc kiểm thử bằng tay.
Mục tiêu chính của đề tài bao gồm:
Đưa ra những khái niệm cơ bản về quy trình phát triển hiện nay cũng như
việc áp dụng kiểm thử tự động trong quy trình phát triển phần mềm (TDD,
BDD)
Đưa ra những khái niệm cơ bản về các công cụ cần thiết như: Cucumber,
Selenium, Jenkins
Đưa ra một framework nhỏ (kết hợp Cucumber và Selenium) và cách chạy
các kịch bản kiểm thử này bằng Jenkins.
Ngoài phần mở đầu, kết luận và phụ lục phần còn lại của luận văn được chia làm
4 chương, cụ thể như sau:
Chương 1 giới thiệu về kiểm thử phần mềm
11
Chương 2 giới thiệu về công cụ kiểm thử tự động và các loại mô hình thiết
kế và phân tích lý do chọn cũng như ưu nhược điểm của mô hình Page
Object Model (POM)
Chương 3 giới thiệu về hệ thống tích hợp liên tục và giới thiệu công cụ
Jenkins được sử dụng trong dự án thí điểm.
Chương 4 giới thiệu về công ty VIVAS và đánh giá hiệu quả của kiểm thử
tự động khi áp dụng vào dự án của công ty VIVAS.
12
CHƯƠNG 1: GIỚI THIỆU VỀ KIỂM THỬ PHẦN MỀM
Một nghiên cứu được tiến hành bởi NIST trong những năm gần đây cho biết rằng
các lỗi phần mềm gây tổn thất cho nền kinh tế Mỹ một con số đáng kể, hơn một phần ba
chi phí này có thể tránh được nếu việc kiểm thử phần mềm được thực hiện tốt hơn. Người
ta thường tin rằng, một kiếm khuyết nếu được tìm ra sớm hơn thì chi phí để sửa chữa nó
sẽ rẻ hơn. Do vậy kiểm thử phần mềm là hoạt động vô cùng quan trọng trong chu trình
phát triển phần mềm ở các công ty công nghệ hiện nay.
1.1. Giới thiệu về kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực thi 1 chương trình với mục đích tìm ra lỗi.
Kiểm thử phần mềm đảm bảo phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu cầu
của khách hàng, yêu cầu của sản phẩm đã đặt ra. Kiểm thử có thể cung cấp cho doanh
nghiệp một quan điểm, một cách nhìn độc lập về phần mềm để từ đó cho phép đánh giá
và thấu hiểu được những rủi ro trong quá trình triển khai phần mềm [1].
Các mục tiêu chính của kiểm thử phần mềm:
Trong thời gian xác định trước, kiểm thử viên tìm được càng nhiều lỗi càng tốt.
Đảm bảo rằng phần mềm cuối cùng phù hợp với các yêu cầu đặc tả của nó.
Đo lường chất lượng của sản phẩm và dự án.
Viết kịch bản kiểm thử (testcase) chất lượng cao, thực hiện kiểm thử hiệu quả
và đưa ra các báo cáo chính xác.
Kiểm thử tự động là thực hiện kiểm thử phần mềm bằng một chương trình đặc biệt
với rất ít hoặc không có sự tương tác của con người, giúp kiểm thử viên không phải lặp
đi lặp lại các bước nhàm chán. Trong kiểm thử tự động, có các Testscript được viết sẵn
và chạy tự động để so sánh kết quả thực tế với kết quả mong đợi. Kiểm thử tự động hoạt
động rất hiệu quả khi cần thực hiện các kiểm tra lặp lại và hồi quy để đảm bảo rằng một
ứng dụng hoạt động chính xác sau khi có thay đổi mới. Các TestScript chạy với sự trợ
giúp của các công cụ, tập lệnh và phần mềm để thực hiện các hành động được xác định
trước được viết trong kịch bản kiểm thử.
Trong một số dự án, kiểm thử phần mềm chiếm khoảng trên 50% tổng giá phát
triển phần mềm. Do đó một trong các mục tiêu của kiểm thử là tự động hóa kiểm thử, nhờ
đó mà giảm thiểu chi phí rất nhiều, tối thiểu hóa các lỗi do người gây ra, đặc biệt giúp
việc kiểm thử hồi qui dễ dàng và nhanh chóng hơn.
Ưu điểm của kiểm thử tự động
a. Tính hiệu quả trong công việc: Ưu điểm lớn nhất của kiểm thử tự động là thay thế
con người lặp đi lặp lại đúng quy tắc các bước kiểm thử nhàm chán, tránh được
hao phí về mặt thời gian.
b. Độ tin cậy: Dù lặp đi lặp lại nhiều lần vẫn cho ra kết quả giống nhau do vậy độ ổn
định cao, tránh được rủi ro có thể phát sinh.
13
c. Cải thiện chất lượng: Kiểm thử tự động làm giảm rủi ro về mặt chất lượng sản
phẩm, việc kiểm thử được thực hiện một cách nhanh chóng. Có thể tái sử dụng các
trường hợp kiểm thử.
d. Tốc độ xử lý cực nhanh: Nếu mất 5 phút để kiểm thử thủ công thì chỉ cần mất 30s
nếu sử dụng kiểm thử tự động.
e. Chi phí thấp: Việc rút ngắn thời gian và tiết kiệm nhân lực giúp cho việc kiểm thử
tự động trở nên hiệu quả.
Nhược điểm của kiểm thử tự động
a. Ban đầu thì chi phí cho kiểm thử tự động sẽ cao hơn kiểm thử thủ công
b. Để kiểm thử tự động thực hiện được thì vẫn cần con người phải bỏ thời gian, công
sức và tiền bạc, ...
c. Mất chi phí cho các công cụ tự động hóa như bản quyền, bảo trì, tìm hiểu, training.
d. Khó mở rộng hơn nhiều so với kiểm thử thủ công
e. Yêu cầu những người có trình độ chuyên môn cao mới thực hiện được
f. Số lượng công việc phải làm để mở rộng cho kiểm thử tự động sẽ nhiều và khó
hơn so với kiểm thử thủ công.
1.2. Phát triển hướng kiểm thử TDD (Test Driven Development)
1.2.1. Khái niệm
Phát triển hướng kiểm thử TDD (Test Driven Development) là một phương thức
làm việc, hay một quy trình viết mã hiện đại. Lập trình viên sẽ thực hiện thông qua các
bước nhỏ và tiến độ được đảm bảo liên tục bằng cách viết và chạy các bài kiểm thử tự
động. Quá trình lập trình trong TDD cực kỳ chú trọng vào các bước liên tục sau:
a. Viết 1 kịch bản kiểm thử cho hàm mới. Đảm bảo rằng kiểm thử sẽ bị sai.
b. Chuyển qua lập trình sơ khai nhất cho hàm đó để kiểm thử có thể đúng
c. Tối ưu hóa đoạn mã nguồn của hàm vừa viết sao cho đảm bảo kiểm thử vẫn đúng
và tối ưu nhất cho việc lập trình kế tiếp
d. Lặp lại cho các hàm khác từ bước 1. Thực tế, nên sử dụng UnitTestFramework
cho TDD (như JUnit trong Java), chúng ta có thể có được môi trường hiệu quả vì
các kiểm thử được thông báo rõ ràng thông qua màu sắc:
Đỏ: kiểm thử sai, chuyển sang viết chức năng cho kiểm thử đúng
Xanh lá: viết một kiểm thử mới hoặc tối ưu mã nguồn đã viết trong màu đỏ.
Phát triển hướng kiểm thử TDD (Test-Driven Development) là kết hợp phương
pháp Phát triển kiểm thử trước (Test First Development) và phương pháp Điều chỉnh lại
mã nguồn (Refactoring).
Mục tiêu quan trọng nhất của TDD là nghĩ về thiết kế trước khi viết mã nguồn cho
chức năng. Một quan điểm khác lại cho rằng TDD là một kỹ thuật lập trình. Nhưng nhìn
chung, mục tiêu của TDD là viết mã nguồn sáng sủa, rõ ràng và có thể chạy được.
14
Hình 1.1. Chu trình TDD qua màu sắc (từ trang 1minus1.com)
Ba điều luật khi áp dụng TDD
Không cho phép viết bất kỳ một mã chương trình nào cho tới khi nó làm một kiểm
thử bị sai trở nên đúng.
Không cho phép viết nhiều hơn một kiểm thử đơn vị mà nếu chỉ cần 1 kiểm thử
đơn vị cũng đã đủ để sai. Hãy chuyển sang lập trình chức năng để làm đúng kiểm
thử đó trước.
Không cho phép viết nhiều hơn 1 mã chương trình mà nó đã đủ làm một kiểm thử
bị sai chuyển sang đúng.
Các bước thực hiện trong chu trình TDD
16
1.2.2. Các cấp độ TDD
Mức chấp nhận (Acceptance TDD (ATDD)): với ATDD thì bạn viết một kiểm thử
chấp nhận đơn hoặc một đặc tả hành vi (behavioral specification) tùy theo cách gọi của
bạn; mà kiểm thử đó chỉ cần đủ cho các mã chương trình sản phẩm thực hiện (đúng hoặc
sai) được kiểm thử đó. Mức chấp nhận (Acceptance TDD) còn được gọi là Behavior
Driven Development (BDD).
Mức lập trình (Lập trình viên TDD): với mức này bạn cần viết một kiểm thử lập
trình đơn (single lập trình viên test) đôi khi được gọi là kiểm thử đơn vị mà kiểm thử đó
chỉ cần đủ cho các mã chương trình sản phẩm thực hiện (đúng hoặc sai) được kiểm thử
đó. Mức lập trình (Lập trình viên TDD) thông thường được gọi là TDD.Vậy nên, thực
chất BDD là 1 loại TDD, và người ta thường gọi Lập trình viên TDD là TDD.
1.2.3. Các lỗi thường gặp khi áp dụng TDD
●
●
●
●
●
●
●
Không quan tâm đến các kịch bản kiểm thử bị sai
Quên đi thao tác tối ưu sau khi viết mã nguồn cho kịch bản kiểm thử đúng
Thực hiện tối ưu mã nguồn trong lúc viết mã nguồn cho kiểm thử đúng
Đặt tên các kịch bản kiểm thử khó hiểu và tối nghĩa
Không bắt đầu từ các kiểm thử đơn giản nhất và không theo các bước nhỏ.
Chỉ chạy mỗi kịch bản kiểm thử đang bị sai hiện tại
Viết một kịch bản kiểm thử với kịch bản quá phức tạp
1.3. Phát triển hướng hành vi BDD (Behaviour Driven Development)
1.3.1. Khái niệm
Phát triển hướng hành vi Behaviour Driven Development (BDD) là một quá trình
phát triển phần mềm có nguồn gốc từ Test Driven Development (TDD). BDD sử dụng
các ví dụ để minh họa hành vi của hệ thống được viết bằng ngôn ngữ dễ đọc và dễ hiểu
đối với tất cả mọi người tham gia vào quá trình phát triển
Thay vì chờ đợi sản phẩm hoàn thành và kiểm thử, đội ngũ phát triển tham gia vào
quá trình xây dựng mã nguồn với vai trò phân tích và xây dựng hệ thống kịch bản kiểm
thử dưới góc độ ngôn ngữ tự nhiên dễ hiểu từ các yêu cầu (requirement). Đồng thời, họ
giúp đỡ lập trình viên trong việc giải thích và đưa ra các phương án xây dựng mã nguồn
mang tính thực tiễn với người dùng ngay trước khi bắt tay xây dựng. Người lập trình viên
liên hệ mật thiết với người kiểm thử viên và xây dựng mã nguồn với những phương án
mà kiểm thử viên cung cấp theo mô hình TDD.
18
1.3.2. Quy trình phát triển phần mềm truyền thống
Hình 1.5. Quy trình phát triển truyền thống
(Từ trang BDD in action (Behavior-Driven Development for the whole software
lifecycle) - John Ferguson Smart (Foreword by Dan North))
Trong quy trình phát triển truyền thống, việc phân tích các yêu cầu (requirements)
thường được tiến hành bởi chuyên viên phân tích nghiệp vụ (BA) một cách chuyên hóa
và khi đến giai đoạn xây dựng (implementing phase) thì đa phần các lập trình viên tiếp
xúc với các yêu cầu phần mềm dưới dạng các bản thiết kế. Họ chỉ quan tâm đến đầu vào,
đầu ra (Input, Output) của tính năng mình xây dựng mà thiếu đi cái nhìn thực tiễn từ góc
nhìn người dùng (end-users). Một hệ quả tất yếu là lỗi phần mềm đến từ việc sản phẩm
ko tiện dụng với người dùng.
1.3.3. Quy trình phát triển theo hướng BDD
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng Selenium và Webdriver", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
luan_van_xay_dung_ung_dung_kiem_thu_phan_mem_tu_dong_su_dung.pdf

