langthangvn33

New Member
Link tải luận văn miễn phí cho ae Kết Nối
CHƢƠNG – MỞ ĐẦ U ........................................................................................ 1
CHƢƠNG 1. KIỂM THỬ TRONG PHƢƠNG PHÁ P PHAT TRIỂN PHÂN
MỀ M LINH HOAṬ ............................................................................................. 5
1.1. Mô hình phát triển lặp trong phƣơng pháp phát triển linh hoạt........... 5
1.1.1. Quy trình Scrum........................................................................................ 6
1.1.2. Lập trình cực hạn .................................................................................... 10
1.2. Kiểm thử trong phƣơng pháp triển linh hoạt ........................................ 11
1.2.1. Kiểm thử đơn vị ...................................................................................... 13
1.2.2. Kiểm thử chấp nhận trong lâp̣ trình cƣc̣ haṇ XP .................................... 13
1.3. Đặc tả yêu cầu hệ thống bằng câu chuyện ngƣời dùng ......................... 13
1.4. Các kỹ thuâṭ phát triển phần mềm theo hƣớng kiểm thử .................... 16
1.4.1. Phát triển phần mềm theo hƣớng kiểm thử............................................. 16
1.4.2. Phát triển phần mềm theo hƣớng kiểm thử chấp nhận ........................... 20
1.4.3. Môṭ số vấn đề của phát triển phần mềm dƣạ vào kiểm thƣ̉ .................... 22
CHƢƠNG 2. PHAT TRIỂN PHẦ N MỀM HƢỚNG HÀNH VI................. 24
2.1. Tổng quan về phát triển phần mềm hƣớng hành vi.............................. 24
2.2. Nguyên lý hoạt động.................................................................................. 25
2.3. Quy trình phát triển phần mềm theo hƣớng hành vi ............................ 27
2.3.1. Đặc tả hành vi của ƣ́ ng duṇ g................................................................... 29
2.3.2. Viết kiểm thƣ̉ cho các bƣớ c .................................................................... 30
2.3.3. Lăp̣ để cài đăṭ ƣ́ ng duṇ g.......................................................................... 31
2.4. Ngôn ngữ đặc tả ứng dụng ....................................................................... 31
CHƢƠNG 3. CÔNG CU BEHAT................................................................... 35
3.1. Giới thiệu công cụ Behat .......................................................................... 35
3.1.1. Công cụ dòng lệnh của Behat ................................................................. 35
3.1.2. Cấu trúc thƣ mục..................................................................................... 36
3.2. Cách sử dụng Behat .................................................................................. 36
3.2.1. Xác định các chức năng............................................................................ 36
3.2.2. Sử dụng Gherkin để viết các chức năng................................................... 37
3.2.3. Xây dƣṇ g các định nghĩa bƣớc ............................................................... 43
3.2.4. Móc nối quá trình kiểm thử và các sự kiện............................................. 48
3.2.4.1. Các sự kiện trong Behat .................................................................. 48 3.2.4.2. Hooks .............................................................................................. 49
3.2.5. Kiểm thử các chức năng – lớp FeatureContext........................................ 50
3.3. Phát triển ứng dụng Web với Mink ........................................................ 51
3.4. Lớ p MinkContext...................................................................................... 52
3.5. Cấu hình Behat với behat.yml ................................................................. 55
CHƢƠNG 4. AP DUNG PHAT TRIỂN PHẦ N MỀ M HƢỚ NG HÀNH VI
VÀ CÔNG CU BEHAT..................................................................................... 60
4.1. Giai đoaṇ chuẩn bi................................ ̣ .................................................... 60
4.2. Tiến triǹ h thƣc̣ hiêṇ ƣ́ ng duṇ g................................................................. 61
4.3. Ap dụng phát triển hƣớng hành vi và công cụ Behat............................ 63
4.3.1. chức năng “Xem trang chủ”.................................................................... 63
4.3.2. chức năng “Đăng ký thành viên” ............................................................ 70
4.4. Nhận xét và kết luận ................................................................................. 92
KẾ T LUÂṆ 95
TÀI LIỆU THAM KHẢO................................................................................... 97
PHỤ LỤC............................................................................................................ 98 CHƢƠNG – MỞ ĐẦ U
Chất lƣơṇ g là môṭ trong nhƣ̃ng yếu tố quan troṇ g nhất của sản phẩm phần
mềm. Lỗi phần mềm không chỉ ảnh hƣở ng đến dƣ̃ liêụ , hoạt động của cơ quan tổ
chƣ́ c sƣ̉ duṇ g phần mềm mà đôi khi còn ảnh hƣở ng đến tính maṇ g con ngƣờ i.
Nhƣ̃ng haṇ chế hay lỗi phần mềm sẽ che lấp các chức năng và tiêṇ ích mà hê ̣
thống đó mang laị. Đặc biệt, trong thi ̣trƣờ ng caṇ h tranh chất lƣơṇ g cao nhƣ hiêṇ
nay môṭ phần mềm phát sinh lỗi trong quá trình sƣ̉ duṇ g sẽ là m ảnh hƣở ng
nghiêm troṇ g tớ i danh tiếng , thƣơng hiêụ và uy tín của công ty sản xuất phần
mềm. Chính vì lý do đó đảm bảo chất lƣợng phần mềm là một vấn đề quan trọng
và ngày càng cần đƣơc̣ quan tâm hàng đầu trong liñ h vƣc̣ phát triển phần mềm.
Tuy nhiên, môṭ phần mềm chất lƣơṇ g cao cũng có thể găp̣ thất baị trên thi ̣
trƣờ ng nếu phần mềm đó không đáp ƣ́ ng đƣơc̣ nhu cầu của khách hàng. Các
công ty sản xuất phần mềm luôn cố gắng đƣa ra các hệ thống vớ i các chức năng
mớ i để caṇ h tranh vớ i các nhà cung cấp khác . Vớ i đa phần các hê ̣thống thƣơng
mại, tại thời điểm bắt đầu dự án , có thể đội phát triển không thu thập đƣợc các
yêu cầu thƣc̣ sƣ̣ tƣ̀ khách hàng , phần mềm sẽ đƣơc̣ phát triển dƣạ trên các tính
năng phỏng đoán và trong trƣờ ng hơp̣ tồi tê ̣các chức năng đó có thể không phù
hơp̣ vớ i mong muốn của khách hàng . Viêc̣ thu thâp̣ yêu cầu khách hàng và sử
dụng các mô tả tƣờng minh đ ể yêu cầu đó không bị sai lệch trong quá trình phát
triển phần mềm là vấn đề lớ n của các nhà sản xuất.
Thông qua quá trình sƣ̉ duṇ g phần mềm , ngƣờ i sƣ̉ duṇ g sẽ dễ hình dung ra
các hoạt động của hệ thống và hiểu rõ hơn về nghiêp̣ vu ̣và miền ƣ́ ng duṇ g , khi
đó khách hàng dễ đƣa ra các ý tƣở ng cho chức năng mớ i và bổ sung chúng. Đây
là hạn chế lớn nhất của các phƣơng pháp phát triển phần mềm truyền thống , bở i
khi có sƣ̣ bổ sung hoăc̣ thay đổi yêu cầu phần mềm đang phát triển sẽ dễ phá vỡ
cấu trúc hê ̣thống. Trong phƣơng pháp phát triển phần mềm truyền thống , khách
hàng cung chỉ đƣợc tiếp xúc với phần mềm sau khi các yêu cầu phần mềm đã
đƣơc̣ cài đăṭ hoàn thiện, do đó viêc̣ phát hiêṇ sai sót hoăc̣ cài đăṭ hê ̣thống không
đúng vớ i yêu cầu khách hàng rất dễ xảy ra . Quy trình phát triển phần mềm lăp̣
hiêṇ đaị đƣơc̣ coi là môṭ giải pháp khắc phuc̣ vấn đề thay đổi yêu cầu củ a ngƣờ i
sƣ̉ duṇ g. Y tƣởng cơ bản trong các quy trình lặp hiêṇ đaị là phần mềm đƣợc sản
xuất theo tƣ̀ ng bƣớ c, mỗi bƣớ c chỉ thƣc̣ hiêṇ môṭ số chức năng tƣơng đối đôc̣ lâp̣
để đƣa ra một phần mềm nhỏ có thể dung đƣợc . Sau mỗi vòng lăp̣ , khách hàng
có thể dung thử phần mềm để đƣa ra các phản hồi về hệ thống và dƣạ vào các
phản hồi đó đội phát triển sẽ bổ sung các chức năng hữu ích hay cải thiện các
chức năng đã đƣợc phát triển theo hƣ ớng tốt hơn cho khách hàng . Viêc̣ choṇ các chức năng để đƣa vào mỗi vòng lặp thƣờng căn cứ vào độ ƣu tiên của chúng , do
đó các chức năng quan troṇ g thƣờ ng đƣơc̣ choṇ để phát triển trƣớ c. Điều này cho
phép khách hàng sử dụ ng hê ̣thống sớ m hơn các phƣơng pháp phát triển phần
mềm truyền thống.
Bên caṇ h nhƣ̃ng lơị ích đáp ƣ́ ng sƣ̣ thay đổi yêu cầu , các quy trình phát
triển phần mềm theo phƣơng pháp lăp̣ cũng taọ ra nhƣ̃ng thách thƣ́ c mớ i cho
giai đoaṇ kiểm thƣ̉ phần mềm . Ở quy trình phát triển truyền thống , kiểm thƣ̉ là
môṭ pha đƣơc̣ thƣc̣ hiêṇ và o cuối dƣ̣ án, khi hê ̣thống đã đƣơc̣ cài đăṭ hoàn thiện,
nhƣngvớ i các hê ̣thống sƣ̉ duṇ g phƣơng pháp lăp̣ , phần mềm sẽ đƣơc̣ kiểm tra
trong mỗi vòng lăp̣ . Khách hàng thƣờng xuyên đƣợc sử dụng các phiên bản nhỏ
của hệ thống , nên lỗi phần mềm hoăc̣ các chức năng sai sót sẽ sớ m đƣơc̣ phát
hiêṇ và giải quyết trƣớ c khi sản phẩm chính thƣ́ c đƣơc̣ bàn giao cho khách hàng.
Trong điều kiêṇ lý tƣở ng , sau mỗi vòng lăp̣ khách hàng sẽ nhận đƣợc môṭ sản
phẩm có chất lƣợng cao, phu hợp với yêu cầu.
Trong phƣơng pháp phát triển phần mềm linh hoaṭ , nhu cầu kiểm thƣ̉ đƣơc̣
hiểu là c ác quy tắc hay hoạt động đƣợc sử dụng để đảm bảo chất lƣợng phần
mềm. Quá trình phát triển phần mềm thƣờng sử dụng các kỹ thuật và công cụ hỗ
trợ để mã nguồn viết cho mỗi chức năng hoạt động đúng , chẳng haṇ nhƣ các kỹ
thuâṭ lâp̣ trình theo căp̣ , kỹ thuật phát triển hệ thống lấy kiểm thử làm trọng tâm
hay kỹ thuật kiểm thƣ̉ trƣớ c, ... . Tuy nhiên, môṭ chức năng đúngchƣa hẳn đã phu
hơp̣ yêu cầu của khách hàng, và để kiểm tra điều đó cần môṭ phƣơng pháp kiểm
thƣ̉ ở mƣ́ c đô ̣cao hơn , đó là kiểm thƣ̉ chấp nhâṇ hay kiểm thƣ̉ của khách hàng .
Yêu cầu của khác h hàng là yếu tố quan troṇ g nhất để xác điṇ h các trƣờ ng hơp̣
kiểm thƣ̉ , viêc̣ kiểm thƣ̉ nhằm đảm bảo phần mềm làm ra đáp ƣ́ ng nhu cầu của
khách hàng.
Trong quy trình lăp̣ , phần mềm đƣơc̣ phát triển qua các vòng lăp̣ và có sƣ̣
thay đổi liên tuc̣ sẽ có lơị cho viêc̣ kiểm tra các chức năng . Mỗi chức năng đƣơc̣
kiểm thƣ̉ ít nhất m ột lần, thâṃ chí nhƣ̃ng chức năng quan troṇ g đƣơc̣ kiểm thƣ̉
nhiều lần thông qua các vòng lăp̣ khi bổ sung các chức năng mớ i . Chính vì
thế,kiểm thƣ̉ hồi quy trở nên n hàm chán và khó thực hiện ; càng gần cuối chu
trình phát triển phần mềm, viêc̣ kiểm thƣ̉ các chức năng ban đầu quan troṇ g nhất
dễ bi ̣tiến hành lỏng leo bởi tâm lý chủ quan của kiểm thử viên . Trái lại, khi tích
hơp̣ thêm các chức năng mớ i, rất dễ phát sinh các lỗi ảnh hƣở ng tớ i toàn hệ thống
và lỗi đó phát hiện càng muộn t hì chi phí sữa lỗi càng cao . Đặc biệt ở nhƣ̃ng
vòng lặp cuối thì rất khó để thực hiện , lúc này kiểm thử tự động trở thành một
giải pháp hữu hiệu để giải quyết vấn đề tr ên. Kiểm thƣ̉ tƣ̣ đôṇ g là viêc̣ sƣ̉ duṇ g các phần mềm , các công cụ để kiểm thử phần mềm khác nhăm hỗ trợ cho con
ngƣờ i tƣ̣ đôṇ g hóa quá trình kiểm thƣ̉ . Kiểm thƣ̉ tƣ̣ đôṇ g giúp công viêc̣ thƣc̣
hiêṇ môṭ cách nhanh chóng , chính xác hơn , giải quyết các vấn đề về tâm lý
trong quá trình kiểm thƣ̉ . Kiểm thƣ̉ tƣ̣ đôṇ g đăc̣ biêṭ hƣ̃u hiêụ trong vấn đề kiểm
thƣ̉ hồi quy , bở i có thể thƣc̣ hiêṇ hằng ngày , hằng giờ , cho moị vòng lăp̣ mà
không hề nhàm chán.
Hiêṇ nay có khá nhiều công cu ̣để kiểm thƣ̉ tƣ̣ đôṇ g và nó trở thành môṭ
phần không thể thiếu đối vớ i các hê ̣thống phát triển theo phƣơng pháp linh hoaṭ.
Tuy nhiên, để tự động hóa quá trình kiểm thử chấp nhận thì cần lựa chọn
môṭ kỹ thuâṭ phù hơp̣ để mô tả yêu cầu của khách hàng . Viêc̣ sƣ̉ duṇ g công cu ̣
phần lớ n phu ̣thuôc̣ vào ngôn ngƣ̃ lâp̣ trình và kỹ thuâṭ đăc̣ tả yêu cầu ngƣờ i
dung. Vớ i sƣ̣ phát triển maṇ h mẽ của các quy trình phát triển phần mềm theo
phƣơng pháp linh hoaṭ thì thời gian gần đây có rất nhiều công cụ hỗ trợ chẳng
hạn nhƣ PHPUnit, Selenium, TestPro, …
Nghiên cứu và tìm hiểu môṭ kỹ thuật phát triển phần mềm, có thể đặc tả
những tiêu chí kiểm thử chấp nhận từ ngƣời sử dụng và tái sử dụng các tiêu chí
đó cho việc tự động hóa kiểm thử chấp nhậnlà rất cần thiết. Chính vì lí do đó tôi
chọn đề tài “Nghiên cứu phát triển phần mềm hƣớng hành vi và ứng dụng
công cụ Behat”.
Nôị dung luâṇ văn tâp̣ trung vào những vấn đề sau:
 Giớ i thiêụ tổng quan về phƣơng pháp phát triển phần mềm linh hoaṭ ; Giớ i
thiêụ hai quy trình đƣơc̣ sƣ̉ duṇ g phổ biến trong Agile là quy trình Scrum và lâp̣
trình cực hạn XP; Tổng kết mục đích và vai trò của kiểm thử trong phƣơng pháp
phát triển phần mềm linh hoạt , chỉ ra các mức kiểm thử thƣờng đƣợc áp dụng
nhƣ kiểm thƣ̉ đơn vi,̣ kiểm thƣ̉ chấp nhâṇ , …
 Tìm hiểu một số kỹ thuật phát triển phần mềm thƣờng áp dụng trong
phƣơng pháp phát triển linh hoaṭ . Phần này chủ yếu trình bày phƣơng pháp phát
triển phần mềm lấy kiểm thƣ̉ làm troṇ g tâm ; đƣa ra các khái niêṃ và quy trình
thƣc̣ hiêṇ của phƣơng pháp phát triển dƣạ vào kiểm thƣ̉ (TDD) và phƣơng pháp
phát triển dựa vào kiểm thử chấp nhận (ATDD). Phần này cũng nêu lên môṭ số
hạn chế của các kỹ thuật này.
 Nghiên cƣ́ u phƣơng pháp phát triển phần mềm hƣớ ng hành vi . Đây là môṭ
phƣơng pháp mớ i , chƣa đƣơc̣ áp duṇ g phổ biến trong sản xuất phần mềm . Tuy
nhiên, thông qua nghiên cƣ́ u của mình tui thấy đây là môṭ kỹ thuâṭ hay, có thể áp
dụng rộng rãi, vì thế trong phần này , tui trình bày nhƣ̃ng kiến thƣ́ c cơ bản nhất And I select "1984" from "nam"
And I select "Nữ" from “gioitinh”
And I press "Đăng ký"
Then I should be on "/index.php"
And I should see text "Đăng ký thành công"
Sử dụng Behat để kiểm thử, kết quả gọi lệnh Behat lần thứ nhất nhƣ sau:
18 scenarios (17 passed, 1 failed)
156 steps (154 passed, 1 undefined, 1 failed)
1m23.816s
You can implement step definitions for undefined steps with these
snippets:
/**
* @Given /^I should see text "([^"]*)"$/
*/
public function iShouldSeeText($arg1)
{
throw new PendingException();
}
Bổ sung định nghĩa bƣớc còn thiếu cho lớp ngữ cảnh FeatureContext
/**
* @Given /^I should see text "([^"]*)"$/
*/
public function iShouldSeeText($text)
{
return new Given("I should see text matching \"$text\"");
}
Sử dụng Behat để kiểm tra kịch bản, kết quả gọi lệnh Behat lần thứ hai nhƣ
sau:
18 scenarios (17 passed, 1 failed)
156 steps (154 passed, 1 skipped, 1 failed)
1m23.978s
Cài đặt mã chƣơng trình cho các bƣớc chƣa ở trạng thái thành công. Kết
quả kiểm thử lần thứ ba nhƣ sau:
18 scenarios (18 passed)
156 steps (156 passed, )
1m27.301s
Kich ban thứ sáu: Kiểm tra Tên đăng nhâp̣ : Tên đăng nhập đã tồn tại trong
hệ thống
Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 

lethanhduy95

New Member
Re: [Free] Nghiên cứu phát triển phần mềm hướng hành vi ứng dụng công cụ Behat

Chào các MOD, mình muốn lấy link của bài viết này, mà link hiện tại đã hỏng, nhờ các bạn đăng lại link mới giúp ạ. Xin cảm ơn
 

lethanhduy95

New Member
Re: [Free] Nghiên cứu phát triển phần mềm hướng hành vi ứng dụng công cụ Behat

Thank bạn :D
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Nghiên cứu chính sách, giải pháp và xây dựng mô hình liên kết vùng, tiểu vùng trong phát triển du lịch ở vùng Tây Bắc Văn hóa, Xã hội 0
D Sử dụng nghiên cứu bài học để phát triển năng lực giao tiếp toán học cho học sinh trung học cơ sở Luận văn Sư phạm 0
D Nghiên Cứu Đặc Điểm Lâm Sàng, Cận Lâm Sàng Và Kết Quả Điều Trị Đợt Bùng Phát Bệnh Phổi Tắc Nghẽn Y dược 0
D Nghiên Cứu Phát Triển Du Lịch Tại Các Di Tích Lịch Sử - Văn Hóa Thị Xã Gò Công, Tỉnh Tiền Giang Văn hóa, Xã hội 0
D Nghiên Cứu Phát Triển Du Lịch Biển Tỉnh Cà Mau Văn hóa, Xã hội 0
D Nghiên Cứu Khả Năng Sinh Trưởng, Phát Triển Của Một Số Dòng Giống Đậu Tương Tại Huyện Vị Xuyên - Tỉnh Hà Giang Nông Lâm Thủy sản 0
D Nghiên cứu phát triển du lịch gắn với cộng đồng dân tộc thiểu số ở Sa Pa theo hướng phát triển bền vững Văn hóa, Xã hội 1
D Nghiên cứu ảnh hưởng của phân bón vi sinh đến sinh trưởng và phát triển của măng tây xanh trồng tại Thái Nguyên Nông Lâm Thủy sản 0
D Phát triển năng lực nghiên cứu khoa học của học sinh thông qua dạy học lĩnh vực khoa học tự nhiên ở trường trung học cơ sở Luận văn Sư phạm 0
A Nghiên cứu ảnh hưởng của các mức năng lượng trao đổi và protein thô trên sự sinh trưởng phát dục và tỷ lệ đẻ của gà nòi ở đồng bằng sông cửu long Khoa học Tự nhiên 0

Các chủ đề có liên quan khác

Top