phƯƠng phÁp mÔ hÌnh hoÁ

25
LOGO GVHD: P.GSTS Vũ Thanh Nguyên PHƯƠNG PHÁP MÔ HÌNH HOÁ

Upload: blake-yates

Post on 31-Dec-2015

84 views

Category:

Documents


5 download

DESCRIPTION

PHƯƠNG PHÁP MÔ HÌNH HOÁ. GVHD: P.GSTS Vũ Thanh Nguyên. MÔ HÌNH PTPM HƯỚNG KIỂM THỬ (TDD) ỨNG DỤNG XÂY DỰNG CMS. Sinh viên thực hiện : Nguyễn Thăng Long – 07520198 Lê Tự Thạch Sinh - 07520302. 1. 2. 3. 3. 4. 4. NỘI DUNG CHÍNH. UNIT TEST. MÔ HÌNH PTPM TDD. CÁC BƯỚC THỰC HIỆN. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PHƯƠNG PHÁP MÔ HÌNH HOÁ

LOGO

GVHD: P.GSTS Vũ Thanh Nguyên

PHƯƠNG PHÁP MÔ HÌNH HOÁPHƯƠNG PHÁP MÔ HÌNH HOÁ

Page 2: PHƯƠNG PHÁP MÔ HÌNH HOÁ

LOGO

Sinh viên thực hiện:

Nguyễn Thăng Long – 07520198

Lê Tự Thạch Sinh - 07520302

MÔ HÌNH PTPM HƯỚNG KIỂM THỬ (TDD)ỨNG DỤNG XÂY DỰNG CMS

MÔ HÌNH PTPM HƯỚNG KIỂM THỬ (TDD)ỨNG DỤNG XÂY DỰNG CMS

Page 3: PHƯƠNG PHÁP MÔ HÌNH HOÁ

NỘI DUNG CHÍNH

1

2

33

44

UNIT TEST

MÔ HÌNH PTPM TDD

CÁC BƯỚC THỰC HIỆN

ỨNG DỤNG TDD

Page 4: PHƯƠNG PHÁP MÔ HÌNH HOÁ

1. UNIT TEST

Unit Test là kỹ thuật kiểm nghiệm các hoạt động của mọi chi tiết mã (code) với một quy trình tách biệt với quy trình phát triển PM, giúp phát hiện sai sót kịp thời.

Page 5: PHƯƠNG PHÁP MÔ HÌNH HOÁ

2. MÔ HÌNH PTPM HƯỚNG KIỂM THỬ

TDD

1

4

2

3

5Refactor

Add a test

Run it and see it fails

Run the test again and see it

passes

Write code to cover the test

Page 6: PHƯƠNG PHÁP MÔ HÌNH HOÁ

2. MÔ HÌNH PTPM HƯỚNG KIỂM THỬ

Phát triển dựa trên kiểm thử (Test-Driven Development-TDD) là một phương pháp tiếp cận cải tiến để phát triển phần mềm trong đó 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).

Page 7: PHƯƠNG PHÁP MÔ HÌNH HOÁ

3. CÁC BƯỚC THỰC HIỆN

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test

Page 8: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4. ỨNG DỤNG TDD

MODULE QUẢN LÝ TIN TỨC

TRONG HỆ THỐNG CMS

Page 9: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.1. PHÂN TÍCH YÊU CẦU

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test

1

Xác định yêu cầu

Page 10: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.1. PHÂN TÍCH

Thêm tin Sửa tin Xoá tin Tìm kiếm tin

Xem tinĐăng nhập

<<

extend>><<include>> <<include>>

<<include>>

Độc giảNgười quản trị

Page 11: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.2. LẬP TEST CASE

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test

2

3

Page 12: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.2. TEST CASE

Page 13: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.2. TEST CASE

Page 14: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.2. TEST CASE

Page 15: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.2. TEST CASE

Page 16: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.3. VIẾT MÃ CHO UNIT TEST

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test4

Viết mã cho Unit Test

Page 17: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.3. VIẾT MÃ CHO UNIT TEST

/* Ví dụ: Một số hàm testchức năng login */

// Không nhập dữ liệupublic function testNoneInput(){

// Dữ liệu nhập vào$username = null;$password = null;

// Hàm kiểm tra kết quả test (Đúng khi trả về false)$this->assertEquals(false, $this->LPermission->isValid($username, $password));

}

// Không nhập Usernamepublic function testNoneUsernameInput(){

// Dữ liệu nhập vào$username = null;$password = 'long1234';

// Hàm kiểm tra kết quả test (Đúng khi trả về false)$this->assertEquals(false, $this->LPermission->isValid($username, $password));

}

Page 18: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.4. CHẠY UNIT TEST

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test

5

Thực thi Unit Test

Page 19: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.4. CHẠY UNIT TEST

# Kết quả khi chạy unit test cho chức năng Login

Time: 1 second, Memory: 4.25Mb

There were 2 failures:

1) TestsLogin::testNoneInputFailed asserting that <boolean:false> matches expected <boolean:true>.

D:\www\public_html\krcms\tests\login.php:47

2) TestsLogin::testNoneUsernameInputFailed asserting that <boolean:false> matches expected <boolean:true>.

D:\www\public_html\krcms\tests\login.php:56

FAILURES!Tests: 5, Assertions: 5, Failures: 2.

Page 20: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.4. VIẾT MÃ CHO CHƯƠNG TRÌNH

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test

6

Viết mã CT để thay đổiTrạng thái của Unit Test

Page 21: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.4. VIẾT MÃ CHO CHƯƠNG TRÌNH

class LPermission{

function isValid($username,$password){

global $MySQL,$LSession;if($LSession->getSession('permission') == true){

// Already exist loginreturn true;

}else{

$username = trim($username);$password = md5($password);

...}

Page 22: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.5. CHẠY LẠI UNIT TEST

1

2

3

4

Xác định yêu cầu

5

6

78

Tạo Test Suite cho Module

Viết mã cho Unit Test

Thực thi Unit Test

Viết mã CT để thay đổiTrạng thái của Unit Test

Chạy lại Test SuiteHiệu chỉnh mã nguồn

Viết Unit Test

7

Chạy lại Test Suite

Page 23: PHƯƠNG PHÁP MÔ HÌNH HOÁ

4.5. CHẠY LẠI UNIT TEST

.....

Time: 1 second, Memory: 4.00Mb

OK (5 tests, 5 assertions)

Page 24: PHƯƠNG PHÁP MÔ HÌNH HOÁ

HỆ THỐNG CMS

Page 25: PHƯƠNG PHÁP MÔ HÌNH HOÁ

Q&A