Quy trình phát triển phần mềm theo hướng hành vi

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát triển phần mềm hướng hành vi ứng dụng công cụ behat 001 (Trang 35 - 39)

CHƯƠNG 2. PHÁT TRIỂN PHẦN MỀM HƯỚNG HÀNH VI

2.3. Quy trình phát triển phần mềm theo hướng hành vi

Để phát triển mô ̣t phần mềm , người ta thường sử dụng các pha đặc tả yêu cầu, thiết kế, cài đặt và kiểm thử. Tùy thuộc vào tƣ̀ng loa ̣i quy trình phát triển phần mềm sƣ̣ sắp xếp cá c giai đoa ̣n này có thể khác nhau . Phát triển phần mềm hướng hành vi BDD là một quy trình lặp và mỗi vòng lặp của BDD đều trải qua

dự án phải hoàn thiện một số yêu cầu cho từng pha. Mỗi pha có các hoạt động, vai trò và sản phẩm riêng[5].

 Hoạt động (Activitie):là các nhiệm vụ mà những người tham gia vào quá trình thực hiện.

 Vai trò (Role):mỗi người tham gia dự án có thể có một hoặc nhiều vai trò, mỗi vai trò có một số hoạt động.

 Sản phẩm: mỗi quy trình phần mềm thường tạo ra sản phẩm là mã nguồn phần mềm, tuy nhiên cũng có nhiều sản phẩm khác đi kèmnhƣ tài liệu, báo cáo, hướng dẫn, …

Để thƣ̣c hiê ̣n mô ̣t dƣ̣ án phần mềm , sau khi xác đi ̣nh mu ̣c đích và phân tích tính khả thi của dự án, đô ̣i phát triển sẽ phải làm viê ̣c với khách hàng để thu thâ ̣p các yêu cầu ban đầu trước khi tiến hành các vòng lặp.Giai đoa ̣n này nhằm đưa ra các mục tiêu của dự án , đó là các kết quả mà người dùng mong đợi ở hê ̣ thống trong tương lai . Người phân tích yêu cầu sẽ làm viê ̣c với khách hàng để mô tả

các mục tiêu đó dưới da ̣ng các câu lê ̣nh phục vụ cho quá trì nh phát triển ở các giai đoa ̣n sau . Hệ thống được phát triển từ ý tưởng của khách hàng, có thể ban đầu mục tiêu của khách hàng chưa rõ ràng nhưng chúng sẽ tiếp tu ̣c được sửa đổi, bổ sung trong quá trình phát triển hê ̣ thống.

Phát triển phần mềm hướng hành vi đă ̣t kiểm thử chấp nhâ ̣n làm trọng tâm của tiến trình thiết kế . Các kiểm thử chấp nhận đều dƣ̣a trên các kịch bản của các tính năng đƣợc viết bằng ngôn ngữ tự nhiên . Áp dụng BDD cho mỗi dự án phần mềm có thể có các biến thể khác nhau tùy thuộc vào sở thích người dùng . Các dự án sử dụng kỹ thuật phát triển hướng hành vi thường được thực hiện theo tiến trình nhƣHình 2-1.

Hình 2-1 Tiến trình phát triển phần mềm hướng hành vi

 Scenario (Kịch bản): Sƣ̉ du ̣ng ngôn ngƣ̃ tƣ̣ nhiên viết mô ̣t ki ̣ch bản mô tả

hành vi của ứng dụng.

 Step Definition (Đi ̣nh nghĩa bước):Từ tài liê ̣u đă ̣c tả được viết bằng ngôn ngữ tự nhiên là các ki ̣ch bản , lâ ̣p trình viên sẽ thiết kế cài đă ̣t mã nguồn tương ứng với mô tả . Viê ̣c viết các đi ̣nh nghĩa bước n hằm mu ̣c đích kiểm tra sự phù

hợp của mã nguồn ứng du ̣ng và tài liê ̣u đă ̣c tả yêu cầu . Mỗi đi ̣nh nghĩa bước

Scenario Step Definition Code

Skeleton Implementation

gồm hai phần : mô ̣t biểu thức chính quy tương ứng với đi ̣nh nghĩa bước (hay câu) và một khối mã nguồn tương ứng với định nghĩa đó khi được thực hiê ̣n.

 Code skeleton (Viết khung mã nguồn): Viết các mã nguồn cơ bản để đi ̣nh nghĩa bước có thể biên di ̣ch được.

 Implementation (Cài đặt): Cài đặt, bổ sung các mã nguồn chi tiết để các phương thức kiểm thử thành công.

2.3.1. Đặc tả hành vi của ứng dụng

Phần lớn các dƣ̣ án phần mềm , tại thời điểm bắt đầu chỉ thu thập đƣợc một phần nhỏ các yêu cầu của hệ thống do khách hàng khó có thể mô tả đầy đủ và

chính xác các yêu cầu của họ đối với hê ̣ thống. Chính vì vậy, quá trình phát triển phần mềm nên cho phép khách hàng có thể bổ sung, loại bỏ hay điều chỉnh yêu cầu của mình. Trước mỗi vòng lă ̣p , đô ̣i phát triển sẽ phải làm viê ̣c với người sử

dụng để xác định các yêu cầu cần đƣa vào vòng lặp đó. Trong kỹ thuâ ̣t phát triển phần mềm hướng hành vi , quá trình thu thập yêu cầu sẽ xác định các sản phẩm sau:

 Tính năng(Feature):là một dạng biểu diễn của yêu cầu hệ thống ở mức cao thường được sử du ̣ng trong kỹ thuâ ̣t phát triển phần mềm hướng hành vi . Mỗi tính năng mô tả các thuộc tính về người sử du ̣ng , các hoạt động và kết quả của yêu cầu dưới dạng ngôn ngữ tự nhiên có cấu trúc. Mỗi tính năng có dạng như sau:

Feature: <feature name>

In order to <bussiness value>

As a <role>

I should <behaviuor>

Ví dụ một mô tả tính năng sử dụng forum

Feature: Create new forum topic In order to discuss a topic As a site user

I should be able to post a new forum topic

 Kịch bản (Scenario): Kịch bản là các trường hợp sử dụng của một tính năng dưới những điều kiê ̣n khác nhau. Mỗi ki ̣ch bản bao gồmcác bước thực hiê ̣n kịch bản đó theo các khía cạnh nhƣ ngữ cảnh sƣ̉ du ̣ng, các hoạt động và kết quả

tương ứng. Kịch bản là yếu tố chính của kiểm thử chấp nhâ ̣n. Mỗi kịch bản được hiểu tương tự như mô ̣t ca kiểm thử, nó cung cấp các dữ liệu kiểm thử và tiêu chí để xác định trạng thái của kiểm thử . Các thành phần của kịch bản thường được BDD mô tả bằng mô ̣t tâ ̣p các tƣ̀ vƣ̣ng , chúng cũng đƣợc sử dụng nhƣ các tiêu

chí kiểm thử chấp nhậ n trong các giai đoa ̣n phát triểntiếp theo. Ví dụ kịch bản của tính năng “create new topic"

Scenario: View the forum topic page When I follow "Support"

And I follow "Forums"

Then I should be on "/forum"

And I should see the link "Add new Forum topic"

And I should see "New forum topics" block in the right sidebar And I should see at least "5" links in the "right sidebar"

region

2.3.2. Viết kiểm thử cho các bước

Trong các dự án phần mềm hướng hành vi , sau khi đi ̣nh nghĩa các tính năng các kịch bản c ũng như các bước tương ứng , đô ̣i phát triển cần viết các kiểm thử. Mỗi bước của ki ̣ch bản được mô tả bằng mô ̣t câu theo ngôn ngữ tự

nhiên, vì thế để hệ thống có thể kiểm thử tự động cần phải có cách để liên kết chúng với mã nguồn được cài đặt . Mỗi phương thức kiểm thử tươn g ứng mô ̣t bước còn được go ̣i là các đi ̣nh nghĩa bước, đó là mô ̣t cấu trúc gồm hai phần:

 Phần đầu là mô ̣t biểu thức chính quy tương ứng với mô tả bước

 Phần thứ hai là mô ̣t phương thức được viết bằng mã chương trình.

Các ph ương thức kiểm thử thường được viết trước khi cài đă ̣t mã nguồn tương ứng để thực hiê ̣n tính năng đó , chính vì thế , ở trạng thái ban đầu các phương thức kiểm thử này đều ở tra ̣ng thái thất ba ̣i . BDD thường đi kèm với mô ̣t công cu ̣ hỗ trợ để viê ̣c sinh và kiểm thử các bước diễn ra nhanh chóng , chính xác.

Ví dụ định nghĩa bước „I should see link “Create new topic” ‟

/**

* @Then /^I should see link "([^"]*)"$/

*/

public function iShouldSeeLink($agr) {

$element = $this->getSession()->getPage();

$result = $element->findLink($agr);

if (empty($result)) {

throw new \Exception(sprintf("No link to '%s' on the page %s",

$link, $this->getSession()->getCurrentUrl()));

}

//throw new PendingException();

}

2.3.3. Lă ̣p để cài đă ̣t ƣ́ng du ̣ng

Phát triển phần mềm hướng hành vi là kỹ thuật hoạt động theo nguyên lý lă ̣p. Trước mỗi vòng lă ̣p đô ̣i phát triển sẽ xác đi ̣nh các t ính năng đưa vào vòng lă ̣p đó và viết các kiểm thƣ̉ cho chúng , sau đó sẽ tiến hành cài đă ̣t mã nguồn để

các tính năng hoạt động . Viê ̣c viết mã nguồn cho các tính năng được thực hiê ̣n nhằm mu ̣c đích để các phương thức kiểm thử đa ̣t tra ̣ng thái thành công. Sau mỗi vòng lặp toàn bộ tính năng đƣợc phát triển sẽ đƣợc kiểm thử chấp nhận . BDD giúp cho mã nguồn của ứng dụng thường xuyên được kiểm tra theo hướng phù

hợp với các tiêu chí kiểm thƣ̉ ch ấp nhận mà khách hàng đã liê ̣t kê trong bản mô tả tính năng. Các tính năng đƣa vào vòng lă ̣p sớm hay muô ̣n dƣ̣a vào đô ̣ ƣu tiên của chúng, do đó các tính năng quan tro ̣ng được thực hiê ̣n sớm hơn. Điều này giúp cho chúng đượ c kiểm tra thường xuyên nhằm sớm phát hiê ̣n các lỗi để có

nhƣ̃ng điều chỉnh phủ hợp.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu phát triển phần mềm hướng hành vi ứng dụng công cụ behat 001 (Trang 35 - 39)

Tải bản đầy đủ (PDF)

(112 trang)