250 likes | 652 Views
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.
E N D
PHƯƠNG PHÁP MÔ HÌNH HOÁ GVHD: P.GSTS VũThanhNguyên
MÔ HÌNH PTPM HƯỚNG KIỂM THỬ (TDD)ỨNG DỤNG XÂY DỰNG CMS Sinhviênthựchiện: NguyễnThăng Long – 07520198 LêTựThạchSinh - 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 ứngdụngTDD
1. UNIT TEST Unit Test làkỹthuậtkiểmnghiệmcáchoạtđộngcủamọi chi tiếtmã (code) vớimộtquytrìnhtáchbiệtvớiquytrìnhpháttriển PM, giúppháthiệnsaisótkịpthời.
Add a test 1 5 2 Refactor Run it and see it fails TDD 3 4 Run the test again and see it passes Write code to cover the test 2. MÔ HÌNH PTPM HƯỚNG KIỂM THỬ
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 Viết mã cho Unit Test Xác định yêu cầu 4 Viết Unit Test 1 3 Thực thi Unit Test 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn 7 8
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 Viết mã cho Unit Test Xác định yêu cầu Xác định yêu cầu 4 Viết Unit Test 1 1 3 Thực thi Unit Test 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn 7 8
4.1. PHÂN TÍCH Đăngnhập Xem tin <<include>> <<extend>> <<include>> <<include>> Tìmkiếm tin Thêm tin Sửa tin Xoá tin Độcgiả Ngườiquảntrị
4.2. LẬP TEST CASE Viết mã cho Unit Test Xác định yêu cầu 4 Viết Unit Test 1 3 3 Thực thi Unit Test 2 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn 7 8
4.3. VIẾT MÃ CHO UNIT TEST Viết mã cho Unit Test Viết mã cho Unit Test Xác định yêu cầu 4 Viết Unit Test 4 1 3 Thực thi Unit Test 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn 7 8
4.3. VIẾT MÃ CHO UNIT TEST /* Vídụ: Mộtsốhàmtestchứcnăng login */ // Khôngnhậpdữliệu public function testNoneInput() { // Dữliệunhậpvào $username = null; $password = null; // Hàmkiểmtrakếtquả test (Đúngkhitrảvề false) $this->assertEquals(false, $this->LPermission->isValid($username, $password)); } // Khôngnhập Username public function testNoneUsernameInput() { // Dữliệunhậpvào $username = null; $password = 'long1234'; // Hàmkiểmtrakếtquả test (Đúngkhitrảvề false) $this->assertEquals(false, $this->LPermission->isValid($username, $password)); }
4.4. CHẠY UNIT TEST Viết mã cho Unit Test Xác định yêu cầu 4 Viết Unit Test 1 3 Thực thi Unit Test Thực thi Unit Test 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test 5 Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn 7 8
4.4. CHẠY UNIT TEST # Kếtquảkhichạy unit test chochứcnăng Login Time: 1 second, Memory: 4.25Mb There were 2 failures: 1) TestsLogin::testNoneInput Failed asserting that <boolean:false> matches expected <boolean:true>. D:\www\public_html\krcms\tests\login.php:47 2) TestsLogin::testNoneUsernameInput Failed 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 Viết mã cho Unit Test Xác định yêu cầu 4 Viết Unit Test 1 3 Thực thi Unit Test 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test Viết mã CT để thay đổi Trạng thái của Unit Test Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn 6 7 8
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 login return true; } else { $username = trim($username); $password = md5($password); ... }
4.5. CHẠY LẠI UNIT TEST Viết mã cho Unit Test Xác định yêu cầu 4 Viết Unit Test 1 3 Thực thi Unit Test 2 5 Viết mã CT để thay đổi Trạng thái của Unit Test Tạo Test Suite cho Module Chạy lại Test Suite 6 Hiệu chỉnh mã nguồn Chạy lại Test Suite 7 8 7
4.5. CHẠY LẠI UNIT TEST ..... Time: 1 second, Memory: 4.00Mb OK (5 tests, 5 assertions)