Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 108 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
108
Dung lượng
3,15 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ I TH NGHI N C NG NG HƯ NG NG HƯ NG H Đ CT TR NG H T TRI N H N H N L ẬN ĂN THẠC SĨ HÀ NỘI, 2015 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ I TH NGHI N C H N NG HƯ NG NG NG HƯ NG H Đ CT TR NG H T TRI N H N Ngành: C Chuyên ngành: Mã số: 60480103 L ẬN ĂN THẠC SĨ NGƯỜI HƯỚNG ẪN KH A HỌC TS H TƯỜNG INH HÀ NỘI, 2015 TIEU LUAN MOI download : skknchat@gmail.com i LỜI CA Đ AN T x ca đoa l vă ày ững nghiên cứu thân Những kiến thức lu vă ày thể hi n dựa vi c tổng hợp kiến thức từ nhi u nguồn, từ kinh nghi m thực tế ể c c ự c y đa vi c Mọ trích dẫn lu vă đ u tuân theo lu t sở hữu trí tu lu t quy n tác giả, li t kê mộ c c đ y đủ xác Tơi xin hoàn toàn chịu trách nhi m với nội dung viết lu vă ày Học viên thực hi n T TIEU LUAN MOI download : skknchat@gmail.com ii LỜI C N Tơi xin bày tỏ lịng biế sâ sắc đến tất mọ ườ ú đỡ, hỗ trợ thực hi n lu vă ày, x oa a Đ Học, T ườ Đ Học C N , Đ Học Q ốc G a Hà Nộ c o o đ u ki để thực hi n lu vă ày Tôi xin chân thành ú đỡ bảo t n tình Th y o, T ế s Hồ Tườ , ả v ướng dẫn Th y c ỉ bảo, đị ướng nghiên cứu thực hi n, hỗ trợ, t o nhữ đ u ki n tốt cho tơi suốt q trình thực hi đ tài Tơi xin bày tỏ lịng biế sâ sắc đế ữ ườ â o ađ đ c ố, M , Chồ o đ u ki , động viên, ủng hộ lúc khó k ă để tơi hồn thành lu vă ày Xin chân thành ất quý Th y, C bảo, rèn luy n, truy đ t tri thức, k ă , k ữ ă ọc vừa qua o oa, T ườ n tình m q báu cho tơi suố Học viên thực hi n T TIEU LUAN MOI download : skknchat@gmail.com iii CL C MỞ ĐẦU 1 C ươ 1: Tổ q a v A le 1.1 Gớ v A le 1.2 Tuyên ngôn Agile 1.3 N 1.4 Đ c y 1.4.1 Tí lý A le A le l (I e a ve) 1.4.2 Tí ế (I c e e al) ế 1.4.3 Tí íc ứ ( ay 1.4.4 N ó ự ổ c ức l 1.4.5 Q ả lý ế íc ực óa (Evol o a y) – Adaptive) c ức ă (E cal ocess Co ol) 1.4.6 G ao ế ực (Face-to-face communication) ể ựa ị ( al e-based development) 1.4.7 1.5 TDD 10 1.5.1 Lịc sử 10 1.5.2 Ý ưở 11 1.5.3 Nguyên lý 11 1.5.4 Quy trình 14 1.5.5 C cụ ỗ ợ 15 í ụ 1.5.6 1.5.7 Đ 1.6 ọa 15 20 ATDD 21 1.6.1 Lịc sử 21 1.6.2 Ý ưở 21 1.6.3 Nguyên lý 22 1.6.4 Quy trình 24 1.6.5 C cụ ỗ ợ 26 í ụ 1.6.6 1.6.7 Đ ọa 27 28 TIEU LUAN MOI download : skknchat@gmail.com iv 1.7 BDD 29 1.7.1 Lịc sử 29 1.7.2 Ý ưở 29 1.7.3 Nguyên lý 30 1.7.4 Quy trình 31 1.7.5 C cụ ỗ ợ 32 í ụ 1.7.6 ọa 32 1.7.7 Đ 1.8 38 Tổ C ươ ợ TDD, ATDD, DD 39 2: ươ đ c ả ằ ví ụ 41 2.1 Lịc sử 41 2.2 Ý ưở 2.3 Nguyên lý 42 41 2.3.1 X c đị v 2.3.2 Đ c ả y c ục 43 ộ c c cộ c o ó ực ự 46 2.3.3 M ọa sử ụ 2.3.4 Là ị đ c ả 50 2.3.5 Tự độ ẩ 2.3.6 T ẩ đị 2.3.7 L ục ế ví ụ 48 đị ườ àk x y c ay đổ đ c ả 51 55 óa l ố 57 2.4 Quy trình 58 2.5 C cụ ỗ ợ 63 2.6 í ụ 2.7 os 2.8 Đ 2.8.1 C c ọa 64 Đ c ả ằ ví ụ UML 64 65 c ức v c ày ay 65 2.8.2 N ữ lợ íc ươ đ c ả q a ví ụ a l để vượ q a c c c ức 66 2.8.3 Đ ể 2.8.4 Đ yế 67 độ ự 67 C ươ 3: T đ v c đưa ec f ca o y Exa le vào ực ế 69 TIEU LUAN MOI download : skknchat@gmail.com v 3.1 Mục đíc 69 3.2 Q y ể c c ự 3.2.1 Đ c đ ể ự 69 3.2.2 M ể 3.2.3 M 3.2.4 3.3 70 ế ụ đ c ả q a ví ụ 74 ươ ụ vào o c c độ ự o c ty 77 T ực q ể eo ec f ca o y Exa le 78 3.3.1 Đố vớ 3.3.2 Đố vớ 3.3.3 Dự 3.4 II 69 Đ ữ ự ự đa " o q ể we s e ướ ể 78 ẫ lịc " 80 94 94 3.4.1 Đ ả 3.4.2 Đ độ â 94 ự 95 KẾT LUẬN 96 TIEU LUAN MOI download : skknchat@gmail.com vi DANH M C TỪ VIẾT TẮT, THUẬT NGỮ ATDD Acceptance Test Driven Development BDD Behaviour Driven Development TDD Test Driven Development ODC Offshore Development Center UML Unified Modeling Language VSII Vietsoftware international TIEU LUAN MOI download : skknchat@gmail.com vii NG TH ẬT NGỮ ANH IỆT Tế A Specification by example Tế Đ c ả ằ ví ụ ể ướ kể Behaviour Driven Development ể ướ Test Driven Development ể ướ kể Acceptance Test Driven Development User story Câ c y Iterative Tí Incremental T Evolutionary Tế Adaptive T íc Empirical Process Control Q ả lý ế Face to face communication G ao ế ực ể ựa v ườ sử ụ l ế óa Value based development Team Độ Developer L ực ị ể v ể Tester ửc ấ Bussiness analyst N Goal Mục ửv â íc vụ v Scope Validation T ẩ Living document Tà l đị số í ụ k óa Key Example Test case Ca k ể Cross functionality L Self organizing Tự ổ c ức c ức ă TIEU LUAN MOI download : skknchat@gmail.com viii ANH C NG I H NH H NH H 1.1 Mộ số ươ A le H 1.2 C c â đo n l đ l p l i Agile H 1.3 Mức độ phổ biến c c ươ 2009 – 2010 [9] 10 H 1.4 TFD Cycle [13] 12 H 1.5 TDD cycle and Traditional Cycle [10] 13 H 1.6 TDD step [15] 14 H T o o ec k ể 15 H T lớ ss ess 16 H 1.9 Lớp nghi p vụ 18 H 1.10 Lớ đố ượng li u trung gian 19 H 1.11 Thêm tham chiếu 19 H 1.12 Acceptance - Test Driven Development (ATDD) Cycle [6] 23 H 1.13 Chu kỳ ản ATDD [12] 25 H 1.14 ATDD TDD [12] 26 H nh 1.15 ATDD mơ hình l p [12] 26 H 1.16 Mối liên h BDD, ATDD, TDD 40 H 2.1 Mơ hình specification by example [3] 42 H 2.2 M x c đị v ục 44 H 2.3 T o câ c y ườ sử ụ [3] 45 H M ọa sử ụ ví ụ 49 H 2.5 Mộ đ c tả tự động thực hi n với Concordion[3] 52 H 2.6 Mộ đ c tả thực với FitNesse[3] 52 H 3.1 M ể 70 H 3.2 T o o ec k ể 86 H 3.3 Cà đ s ec flow 86 H Cà đ s ec 87 H 3.5 T o f le fea e 87 H T o kịc ả 88 H T o s e c o kịc ả – ước 88 H T o s e c o kịc ả – ước 89 H 3.9 T o s e c o kịc ả – ước 89 H 3.10 C y kịc ả 91 TIEU LUAN MOI download : skknchat@gmail.com 83 and supporting rate 12 Để có Là ểl ộ T ố có ộ kế o c v lịc đă ể xe ợ lý ký lịc l c ữ v k c In order to make a reasonable traveling plan As a registered user I want to view a published schedule by other members 13 Để có ể c ọ lịc Là se ỗ ợ ộ Tộ ố có ợ ý ợ lý ểc ấ ộ lịc ấ ỗ ợ In order to choose the most suitable suggested schedule As a registered user I want to be able to accept a supported schedule 14 Để có Là ể lo ộ ỏ ữ lịc ườ T ố có (lịc ể ) ợ ýk ợ lý ợ ý ể lo ỏ ộ lịc ỗ ợ In order to eliminate unreasonably suggested schedules As a registered user I want to be able to eliminate a supported schedule ả 3.2 ả ớc Ước lượ c cy c c câ c y lượ a đ ớc L v c ườ ườ kế o c T q a v c ọ vớ k c chia làm s , ỗ s ớc L kế o c v sả ự ể we s e ướ ẩ đ a ựa ẫ lịc acklo , đưa a co số ước lượ v â lực c (Tươ đươ vớ ườ o g tháng) ể c cv l s độ ự ể o ể c c ế Ước v kế o c ể , ự s vụ sprint TIEU LUAN MOI download : skknchat@gmail.com 84 Dựa vào o k ể sau: ố k c , ữ ỗ s N ữ câ c y 1: Câ c y 1,2 2: Câ c y 3, ớc T o a k a ắ xế c ỗ C ẩ ớc C c Họ vớ ví ụ c ị ả ắ v ắ ay ay ực ký vào ườ c ọ ọ v k vực ự s s c ọ o 2s đ ước ườ o ự c , kế q ả c c kịc đă y c c o ấ a c oc c , ú vế ảo l v y ọa cụ ể í ụ vớ c ức ă v c cộ câ c ườ ố ả c o c c câ c vớ c c ườ y y ườ c sau: Email Address: Là ườ ắ ộc Max length=100 ký ự M le = ký ự Password: Là ườ ắ ộc Max length=32 characters, Min length=8 ý ự Password (Confirm): Validate the same as password Where you live: o Country: Da s c c c q ốc a ế o City: Da s c c c ố ựa q ốc a c ọ Ta có hai kịc ả sa : Scenario Outline: Register with invalid email Given I am on the registration page And I have completed the form with:< email >,< password >,< passwordConfirm >,< country >,< city > When I have clicked on the register button Then I will get an error message "Your email is invalid." Examples: | email | password | passwordConfirm | country| city | abc | 12345678 | 12345678 |Viet Nam| Ha Noi | 12345678 (101 ký ự) | 12345678 | 12345678 |Viet Nam| Ha Noi Scenario Outline: Register with valid email Given I am on the registration page And I have completed the form with:< email >,< password >,< passwordConfirm >,< country >,< city > TIEU LUAN MOI download : skknchat@gmail.com 85 When I have clicked on the register button Then I will get an error message "Your email is invalid." Examples: | email | password | passwordConfirm | country| city | phuong@gmail.com | 12345678 | 12345678 |Viet Nam| Ha Noi | abcd | 12345678 | 12345678 |Viet Nam| Ha Noi | abcde | 12345678 | 12345678 |Viet Nam| Ha Noi | 12345678 (100 ký ự) | 12345678 | 12345678 |Viet Nam| Ha Noi ọ ảo ể ó ữ v T o ví ụ ợ ư: số ký í Dướ ă o lịc l để có ể có kịc ả vớ ữ ví ụ, k ể ửv có ví ụ ựa kế ức c c xe x vấ đ ộ k ể ,kể ửv có ể đưa a ữ ví ụ v k ể c c ườ ự ký ự, ký ự, 100 ký ự, 101 ký ự s ể vớ ọa v c ộ l ộ sce a o sa : v ụ kể ự độ vớ ộ Feature: CreateSchedule In order to create details schedule for traveller As as registered user I want create master schedule Scenario: Create with valid schedule Given Iam a registered user with user id is "050c16da-47b0-4311-9d7e40385d8ab6a4" And I have not any master schedule And I have completed the form create schedule with: | ThemOfTraveler | HandleName | CountryId | CityId | DepartingDate | ReturningDate | | Du lich Chau Au | PhuongBT | | 283 | 01/06/2015 | 01/06/2015 | When I have clicked on the Create button Then I see this master schedule in list my schedule a status of it is open M ườ ể : Visual studio 2013 Microsoft SQL server 2008 R2 í T o ă ộ o lịc o ec để k ể ể c , c c ước àl v ày s sa : TIEU LUAN MOI download : skknchat@gmail.com 86 H 3.2 T o o ec k ể Cà đ s ec flow: H 3.3 Cà đ s ec flow TIEU LUAN MOI download : skknchat@gmail.com 87 Cà đ s ec : H T o ộ f le fea 3.4 Cà đ s ec e c o c ức ă H o lịc ể c ung: 3.5 T o f le fea e TIEU LUAN MOI download : skknchat@gmail.com 88 ế c c kịc Tự độ ả c o í ă ày, c ỉ lấy ví ụ H 3.6 T o kịc ả o c c s e vớ c c kịc H ộ kịc ả : ả : 3.7 T o s e c o kịc ả – ước TIEU LUAN MOI download : skknchat@gmail.com 89 F le s e s sa k H 3.8 T o s e c o kịc ả – ước H 3.9 T o s e c o kịc ả – ước o a sa : TIEU LUAN MOI download : skknchat@gmail.com 90 using using using using using System; TechTalk.SpecFlow; BusinessLogicLayer; DataTranferObject; Microsoft.VisualStudio.TestTools.UnitTesting; namespace Travelling.Spec.Steps { [Binding] public class CreateScheduleSteps { private static String ownerId; private static CreateSchedule tmpSchedule; [Given(@"Iam a registered user with user id is ""(.*)""")] public void GivenIamARegisteredUserWithUserIdIs(string p0) { ScenarioContext.Current.Pending(); } [Given(@"I have not any master schedule")] public void GivenIHaveNotAnyMasterSchedule() { ScenarioContext.Current.Pending(); } [Given(@"I have completed the form create schedule with:")] public void GivenIHaveCompletedTheFormCreateScheduleWith(Table table) { ScenarioContext.Current.Pending(); } [When(@"I have clicked on the Create button")] public void WhenIHaveClickedOnTheCreateButton() { ScenarioContext.Current.Pending(); } [Then(@"I see this master schedule in list my schedule a status of it is open")] public void ThenISeeThisMasterScheduleInListMyScheduleAStatusOfItIsOpen() { ScenarioContext.Current.Pending(); } } } C y kịc ả ày: TIEU LUAN MOI download : skknchat@gmail.com 91 H T để ày, v c ưa v ế 3.10 C y kịc ã c o kịc ả ả kế q ả s sa : SpecRun: running tests in D:\O E\Cao hoc\Luan van\Source Code example\TravellingApp\Travelling.Spec\bin\Debug\Travelling.Spec.dll Profile: Default Evaluation mode: test execution starts in seconds (this delay is removed in the registered version) Scenario: Create with valid schedule in CreateSchedule -> Pending on thread #0 Result: pending tests Total: Succeeded: Ignored: Pending: Skipped: Failed: kể Gờvế ãkể ửc o ày c y đú using using using using using ữ v ày, sa s v ế mã l p trình để System; TechTalk.SpecFlow; BusinessLogicLayer; DataTranferObject; Microsoft.VisualStudio.TestTools.UnitTesting; namespace Travelling.Spec.Steps { [Binding] public class CreateScheduleSteps { TIEU LUAN MOI download : skknchat@gmail.com ữ 92 private static String ownerId; private static CreateSchedule tmpSchedule; [Given(@"Iam a registered user with user id is ""(.*)""")] public void GivenIamARegisteredUserWithUserIdIs(string p0) { //ScenarioContext.Current.Add("OwnerId", p0); ownerId = p0; } [Given(@"I have not any master schedule")] public void GivenIHaveNotAnyMasterSchedule() { try { IScheduleBLL bll = new ScheduleBLL(Configs.ConnectionString); //string userId = ScenarioContext.Current["OwnerId"].ToString(); bll.DeleteAllByUser(ownerId); } catch (Exception) { string msg = "Loi"; throw; } } [Given(@"I have completed the form create schedule with:")] public void GivenIHaveCompletedTheFormCreateScheduleWith(Table table) { CreateSchedule model = new CreateSchedule(); foreach (var row in table.Rows) { if (row["ThemOfTraveler"] != null) model.ThemOfTraveler = row["ThemOfTraveler"]; if (row["HandleName"] != null) model.HandleName = row["HandleName"]; if (row["CountryId"] != null) model.CountryId = row["CountryId"]; if (row["CityId"] != null) model.CityId = row["CityId"]; if (row["DepartingDate"] != null) model.DepartingDate = row["DepartingDate"]; if (row["ReturningDate"] != null) model.ReturningDate = row["ReturningDate"]; model.OwnerId = ownerId; model.Status = Status.Open.ToString(); //ScenarioContext.Current.Add("newSchedule", model); tmpSchedule = model; break; } } [When(@"I have clicked on the Create button")] public void WhenIHaveClickedOnTheCreateButton() { IScheduleBLL bll = new ScheduleBLL(Configs.ConnectionString); //CreateSchedule model =(CreateSchedule) TIEU LUAN MOI download : skknchat@gmail.com 93 ScenarioContext.Current["newSchedule"]; ModelResults result = bll.Create(tmpSchedule); if (result.Result == Result.Fail) Assert.Fail(); } [Then(@"I see this master schedule in list my schedule a status of it is open")] public void ThenISeeThisMasterScheduleInListMyScheduleAStatusOfItIsOpen() { IScheduleBLL bll = new ScheduleBLL(Configs.ConnectionString); //Select by name //var listSchedule = bll.GetByUser(ScenarioContext.Current["OwnerId"].ToString()); var listSchedule = bll.GetByUser(ownerId); //Check status if (listSchedule == null || listSchedule.Count > 1) Assert.Fail(); Assert.AreEqual(Status.Open, listSchedule[0].Status); } } } ế ãl để k ể có ể c y ass, kế q ả sa : Run test started -SpecRun Evaluation Mode: Please purchase at http://specrun.com to remove test execution delay SpecRun: running tests in D:\O E\Cao hoc\Luan van\Source Code example\TravellingApp\Travelling.Spec\bin\Debug\Travelling.Spec.dll Profile: Default Evaluation mode: test execution starts in seconds (this delay is removed in the registered version) Scenario: Create with valid schedule in CreateSchedule -> Succeeded on thread #0 Result: all tests passed Total: Succeeded: Ignored: Pending: Skipped: Failed: Execution Time: 00:00:00.8825697 Report file: file:///D:\O%20E\Cao%20hoc\Luan%20van\Source%20Code%20example\TravellingApp\TestResults\Travell ing.Spec_Default_2015-05-27T205933.html Log file: file:///D:\O%20E\Cao%20hoc\Luan%20van\Source%20Code%20example\TravellingApp\TestResults\Travell ing.Spec_Default_2015-05-27T205933.log ========== Run test finished: run (0:00:10.0001053) ========== ớc 7: Mọ ườ Đị kỳ ỗ v c C c o c o s oà ữ v c o c o kế q ả để ế ục ày ọ l đ ờs vào c c vấ đ : Đ o l ao đổ ế v c k oả 15 ữ eo; có ữ ú để o c o kế q ả c so vớ l ao đổ ước; o q TIEU LUAN MOI download : skknchat@gmail.com 94 ớc Tổ ợ kế q ả Đây ức a a ước lượ c ớc Xe ổ q v ữ v c l có ể đ c ỉ l x để oà c c v c ố , o c đẩy l c o v ớc 10 Đ , ựá t 3.3.3 ể đồ được, ữ v c c ưa được, ấ ó c v c oà l sa ả l có a ọ ay đổ s ị l ệm Hi n t i công ty VSII đa ực hi n thử nghi m dự án ch y từ đ u theo quy đưa a, dự án mức nội nên khách hàng thành viên nghiên cứu phát triển công ty, ườ đưa a ý ưởng v sản phẩm Đội dự án gồm thành viên: quản lý dự án, kiểm thử viên, nhà phân tích nghi p vụ, l p trình viên M ường cơng cụ áp dụng: Visual tudio 2013, Microsoft SQL 2008 R2 Specflow, Spec run, WaitN, NUnit sa : Tuy nhiên nội dung áp dụng g p số h n chế - Vi c họp dự để đưa a scenario ví dụ khơng yêu c khách hàng tham gia trực tiếp - Đội dự án họp, đưa a ống kịch ví dụ a íc vụ xem xét l , ế c bổ sung ho c yêu c u chỉnh sửa c độ ự để â íc q yế đị 3.4 Đá 3.4.1 Đá ả t â c c ẫ Đ c ả ằ ví ụ để ổ s c oc c đ kể v c ấ lượ sả ẩ , ả c í ảo , l , k ể v c ụ vẫ c ưa để o ữ vấ đ : - ụ có T â ọ c l độ a để ể a a ườ ế v c cc ể , đào o x y cụ k ể k c c c đe T y v c ấ ,c có TIEU LUAN MOI download : skknchat@gmail.com 95 C k ắc ục - T yế ục k c - Đ o ov kể 3.4.2 Đá ược đ ể ụ : c c ự độ để có c oc c v o a a c c ự ườ x y độ dự c ụ v , ữa c ã l Để ữ ụ Đ c ả ằ ví ụ â a ịc o ọ ữ kế c có ướ ố - Đào o v c c c - Nâ c - Có c : cụ k ể cao ă lực c c ưk ă a a cao c ấ lượ ã c c l ức v k ể để ự đả ảo c ấ lượ ể đú đắ , k ả ườ x y ườ x y v o k c ự ằ v c đào ov k TIEU LUAN MOI download : skknchat@gmail.com ấ 96 KẾT L ẬN Q aq c c ươ ọa c o ằ ví ụ vào ực c ụ C ỉ số v - Để l ữ leaka e C ấ lượ vă ắ õ ý ưở TDD, ATDD, DD, Đ ,đ c Đ c ả ằ ví ể c y , y lý, q y c ả ằ ví ụ Có ví ụ ụ T ụ Đ c ả đa c c c độ sả ả íc cực c ấ lượ đ ã c c v (Customer Satisfaction) ă o ự Gả c íkể ử, o k ể ửv k í kể ửv , có a c o v c k ể lượ sả ẩ c có ụ - C ưa có a - C ưa độ ao sâ v c c c …) ục vụ c o - C c - C ưa côn cụ ỗ ợ q ả lý y ợ q ả lý l , ể đồ câ c y ườ v ốc độ ườ ă ả kể ă ,v c a ữ ẩ : kể v l k c v ức độ ể y c ục đ ọ T y ươ đ - ể đe - - l ,k có ữ ,đ c lỗ sa ằ ay , ă ,c c ấ c ế: x y k c cụ k ể ự độ ( í ụ ụ Đ c ả ằ ví ụ o độ ự c ưa ể c c ov c cc cụ k ể kể ự ự độ c ( í ụ eclo : c cụ ỗ , ữ vớ c c ví ) Do v c ụ c ưa ế để Để ụ để đe l lợ íc lớ ấ, ế eo s sâ v c c c cụ kể ự độ , c cụ q ả lý y c , xây ự l l để có ể ướ ẫ , đào oc c v k c o c y để â ộ v c ụ , o đ c o c c c ự T q aq , đúc ú k , ực c ỉ v c l ụ Đ c ả ằ ví ụ vào c c ự ụ để đ q ả cao ấ TIEU LUAN MOI download : skknchat@gmail.com 97 T I LIỆ THA KH Tiếng anh Robert C.Martin and Mical Martin(2006), Agile Principles, Patterns, and Practices in C# , pp 27-36 Kent Beck (2002), Test - Driven Development By Example , pp Gojko Adzic (2011), SPECIFICATION BY EXAMPLE How successful team deliver e sof wa e , pp 3-197 Mario E.Moreira, Michael Lester, Steve Holzner (2010), A le Fo D Ma k s Ga e (2012), ATDD D ve Develo e y Exa Elisabeth Hendrickso (200 ), D v pp le: A Develo ac cal G e w es , pp e o Acce a ce Tes Tes : ATDD a TDD , e (2011), Lea -Agile Acceptance Test-Driven Development: Better of wa e T o Colla o a o , pp 2-6 John Ferguson Smart (2014), BDD in Action: Behaviour Driven Development for the whole software lifecycle , pp 12-30 Website http://www.hanoiscrum.net/hnscrum/learning/106-tongquanAgile 10 http://derekbarber.ca/blog/2012/03/27/why-test-driven-development 11 http://blog.codeship.com/behavior-driven-development/ 12 http://www.methodsandtools.com/archive/archive.php?id=72p10 ( Part – Part 10) 13 http://agiledata.org/essays/tdd.html 14 http://en.wikipedia.org/wiki/Behavior-driven_development 15 http://www.softwaresprint.com/2012/11/missing-step-in-test-driven-development.html TIEU LUAN MOI download : skknchat@gmail.com ... ươ phát triển linh ho t: TDD, ATDD, BDD C Đặc tả ví dụ: Trình bày khái ni ả , ý ưởng, nguyên lý, quy trình ươ Đ c tả ví dụ C Thử nghiệm đá v ệc đ a p p áp Đặc tả ví dụ vào thực tế: Mô tả. .. Ph n m m Vi t Quốc Tế, lựa chọ đ tài "Nghiên cứu ứng dụ p p áp đặc tả phần mềm ví dụ phát triển phần mềm" Mục tiêu đề tài Nghiên cứu tìm hiểu nhằm hiể õ c c ươ : ể ướ k ể (TDD – Test Driven Development),... "Đ c tả ví dụ" , mộ ươ t vời giải vấ đ ả k ể ự Với mục đíc cứu, thử nghi đ xuất cách thức để triể k a ươ pháp thực tiễn công ty Cổ ph n Ph n m m Vi t Quốc Tế, lựa chọ đ tài "Nghiên cứu ứng dụ p