phƯƠng phÁp mÔ hÌnh hoÁ
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 PresentationTRANSCRIPT
LOGO
GVHD: P.GSTS Vũ Thanh Nguyên
PHƯƠNG PHÁP MÔ HÌNH HOÁ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
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
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.
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
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).
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
4. ỨNG DỤNG TDD
MODULE QUẢN LÝ TIN TỨC
TRONG HỆ THỐNG CMS
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
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ị
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
4.2. TEST CASE
4.2. TEST CASE
4.2. TEST CASE
4.2. TEST CASE
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
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));
}
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
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.
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
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);
...}
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
4.5. CHẠY LẠI UNIT TEST
.....
Time: 1 second, Memory: 4.00Mb
OK (5 tests, 5 assertions)
HỆ THỐNG CMS
Q&A