4® Hiển thị trong Không gian làm việc Mau v ad Tìm hiếu yêu cầu khách hàng Nghiệp vụ cần thực hiện a ác vụ cụ thé hoặc thông tin, một cách khoa học ở các gø1ai đoạn khác nhau của ti
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ CÔNG NGHIỆP LONG AN
KHOA CÔNG NGHỆ
BAO CAO DO AN MON HOC
DE TAI: XAY DUNG PHAN MEM QUAN LY DICH VU CAT
TOC
Giảng viên hướng dẫn : TS Ngô Thanh Hùng Sinh viên thực hiện
: Nguyễn Hoàng Nhân : Đễ Phú Duy
: Nguyễn Minh Luân : Nguyễn Lê Quốc Đại
: Nguyễn Duy Hùng :Lê Hoàng Huy
: Võ Thanh Bình :Võ Khải Duy
Mã số sinh viên : 2152010034 :2152010015
: 2152010023 :2152010026
:2152010051 :2152010021
:2152010022 :2152010012
Lép: 21TH
Trang 2LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sự trí ân sâu sắc đối với các thầy cô của
trường, đặc biệt là các thầy cô khoa Công Nghệ của trường Đại học Kinh tế và Công
nghiệp Long An đã giúp đỡ em về tải liệu tham khảo để em có thể hoàn thành tốt báo cao Và em cũng xin chân thành cám ơn thầy đã nhiệt tình hướng dẫn hướng dẫn em
trong việc lựa chọn đề tải nghiên cứu, hướng tiếp cận và giúp em chỉnh sửa những thiếu sót trong quá trình nghiên cứu Trong quá trình nghiên cứu, khó tránh khỏi sai sót, rất mong các Thầy, Cô bỏ qua và giúp em hoản thiện hơn cho em Đồng thời do trinh độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không
thê tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp từ phía Thây,
Cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn
Em xin chân thành cảm ơn!
Long An, ngày ÌÌ tháng 08 năm 2023 Sinh viên thực hiện
Nguyễn Hoàng Nhân
Sinh viên thực hiện
Nguyễn Minh Luân
Sinh viên thực hiện
Nguyễn Duy Hùng
Sinh viên thực hiện
Võ Thanh Bình
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Long An, ngày tháng năm 2023 Giáng viên hướng dẫn
TS Ngô Thanh Hùng
Trang 4MỤC LỤC
1.2.1 Giới thiệu TrelÏo - - 0002226125110 11 1111111 111111111 1 2111151111115 5551111 xẻ 6
ID N2: cao ¿00 i1 ăă aa 9
1.2.4 Kết luận - sS11221211211221221221121121121211211221121122121222 re 12 1.3 GITHUE S552 22 2212211271222 1.211011122112121121212211212 221kg 13 1.3.1 Giới thiệu GitHub 5s 2s 21222152211221122211 1112112101220 re 13 1.3.2 Tính năng GitHub 2 2s 211 12111271127112111211121222211222 20 1 re 14
1.3.3 Cách thức hoạt động trên GitHub là ø1? - - c2 222222 e2 16
1.3.4 Các yếu tô cần thiết của GitHub là gì2 5 5c c2 S2E1E111 111221 te 19 1.3.5 GIỚI THIỆU VỀ GITHUB DESK.TOP 2221222122122 xe 20 1.4 GITHUB TRONG VISUAL STUDIO 22-522 2212212221111 22c 22 1.4.1 MỞ GITHUB TRONG VISUAL STUDIO s 552252 22 1.4.2 THAO TÁC VỚI NHÁNH (BRANCH) à S222 222122 xe 24 1.4.3 PULL VÀ PUSH DỮ LIỆU 52-2212 221222122211221.E1.2121 1 xe 27 1.5 UNIT TEST 52 s2 112112211221122121112112211211211211221101122212 21a 30 1.5.1 KHÁI NIỆM VỀ UNIT TEST - 5-2 E111 11211111211 111211 211 2 y6 30 1.5.2 ỨNG DỤNG CỦA UNIT TEST - -222222112212711212221 27112252 sre 31 1.5.3 LOI ICH CUA UNIT TEST ceccccccccccececsssesseesseesreseresseesresesenseessesanenete 31 1.5.4 VIET CODE TEST VỚI UNIT TEST 222222 2122122122222 xe 32
Trang 5CHƯƠNG 2: GIỚI THIỆU VỀ ĐÈ TÀI QUẢN LÝ CẮT TÓC 37
2.4 Nhóm Công Việc Tìn học: - c1 c1 2112111121121 1 11211112211 21111 15011118211 xk 40
CHƯƠNG 3: XÂY DỰNG PHẢN MÈM QUẢN LÝ CẮT TÓC 41 3.2 THIẾT KÉ CƠ SỞ DỮ LIỆU - + 2S 2E 11212111 1121111211121 121 ca 41 3.2.1 Bảng BANNER 55s 2122112211 2112212221212 e1 ererag 4I 3.2.2 Bảng NHAN VIEN 5s 2n 2122212122112 errrag 4I 3.2.3 Bảng DANHGIA 5 222 11121221121112111221121121212 re 42 3.2.4 Bảng DICHVU 52 21 21222112111221221122211111 21212221 eerrag 42 3.3 XÂY DỰNG WEBSITES 52 2112212711 11222.1121222221222 1 re 43
1.1 TIM HIEU VE CONG NGHE PHAN MEM
1.1.1 CO BAN CONG NGHE PHAN MEM
® Khải niệm:
Trang 6Công nghệ phần mềm là chuyên ngành nghiên cứu hệ thống kỹ thuật, phần mềm máy tính, thông thường là tập trung nhiều vào hạ tầng phần mềm, cơ
sở đữ liệu, sự phát triển của ứng dụng và hệ thống
® - Hướng nghiên cửu công nghệ phân mêm trong báo cáo:
Unit Test Xây dựng CSDL Xây dựng phần mềm WindowForm
1.1.2 GIGI THIEU VE USE CASE
- Hiéu don gian thi UC la mét m6 ta dang van ban ghi lai sw tuong tac giữa người dùng và hệ thống để đạt được một kết quả có ý nehĩa Điều nảy thực
sự quan trọng Đó là sự tương tác giữa người dùng và hệ thống phần mềm
và phải đạt được một kết quả và kết quả đó phải có ý nghĩa
- _ Khác với quy trình nghiệp vụ, cái mà nhờ nó chúng ta có thê nắm bắt tất cả những điều mà người dùng sẽ làm để đạt được mục tiêu tong thể hoặc kết quả của tô chức UC sẽ chỉ tiết hơn và liên quan đến cách người dùng thực
sự tương tác với hệ thống phần mềm để đạt được mục tiêu có nghĩa
1.2 TRELLO 1.2.1 Gidi thiéu Trello Trello là công cụ quản lý công việc linh hoạt, nơi các nhóm có thé lap ké hoach, cộng tác trên các dự án, tô chức quy trình làm việc và theo dõi tiên độ một cách trực
quan, hiệu quả và bô ích Từ lên ý tướng, lập kế hoạch cho đến thực hiện, Trello quan
Trang 7lý các dấu mốc quan trọng và những nhiệm vụ hàng ngày khi làm việc cùng nhau và
giúp nhóm hoàn thành công việc
Eiỉ [HTrellO Các Không gian làm việc ⁄ Gầnđây ⁄ Đã đánh dấusao x⁄
Dùng thử miễn phí Premium dành cho CNPM sẽ kết thúc sau 12 ngày
t# Bảng v Phân tích và đặt tả yêu cầu # Sau
Tim hiểu yêu cầu khách hàng Nghiệp vụ cần thực hiện
4® Hiển thị trong Không gian làm việc Mau v ad
Tìm hiếu yêu cầu khách hàng Nghiệp vụ cần thực hiện
a
ác vụ cụ thé hoặc thông tin, một cách khoa học ở các gø1ai đoạn khác nhau của tiên trình Danh sách có thê được sử dụng dé tao ra một quy trinh làm việc, trong đó thẻ được di chuyên qua từng bước trong quá trình từ
đâu đên cuôi, hoặc đơn giản đóng vai trò như một nơi đề theo dõi các ý tưởng va thông
7
'Yêu cầu hệ thống
Trang 8tin Không có giới hạn về sô lượng danh sách có thê thêm vào bảng, đông thời bạn có thê sắp xếp và đặt tiêu de theo y minh
Trang 9có thể xem tất cả các hoạt động đã diễn ra trên một bảng trong thông báo hoạt động của menu
Vé bang nay Thém mé ta vao bang cua ban
Trang 10+Quản trỊ viên: có thể xem và chỉnh sửa thẻ, loại bỏ thành viên và thay đổi mọi cài đặt của bảng Phù hợp cho trướng nhóm hoặc người quản lý dự án, những
người có toàn quyền kiểm soát đối với dự án
+Người giám sát: có thể truy cập nội dung hiến thị trên bảng, họ không thể chỉnh sửa thẻ nhưng bạn có thể cho phép họ nhận xét, tương tác emoji và tham gia theo cấp độ bạn xác định với bảng Phù hợp cho các bảng dùng để cung cấp thông tin cho những người như khách hàng, người quản lý, bên thứ ba, v.v
2) Thêm bảng
® Tạo bảng thông thường Việc thêm bảng tương đương với việc thêm một danh sách công việc
10
Trang 11Tìm hiểu Unit Test “°
cae Gidi thiéu Unit Test
= _«»s Remote Team Meetings
„ _ Xem hàng trăm mẫu từ cộng đồng
F TT Trello
Khám phá các mẫu
3) Thêm thẻ
11
Trang 12@ Đính kèm +# Hoạt động Hiện chi tiết Q Vi trí
AT Viết bình luận @ Anh bia
& Trường tùy chỉnh
Thời gian hoàn thành
Những thẻ file đính kèm Cac theo tac di chuyên, sao chép, tạo mẫu, lưu trữ và chia sẽ
Trang 131.2.4 Kết luận
- _ Cấu trúc thực hiện trên Trello đễ thực hiện
- _ Việc tạo bảng, danh sách, thẻ không quá khó khăc cho người mới sử dụng
- _ Có hệ thống câp nhật thông tin linh động, dễ kiếm soát thời gian công việc được hoàn thành
- _ Cung cấp các biểu mẫu dễ sử dụng, tạo nhiều suy nghĩ sáng tạo trong người dùng Trello
- _ Dễ đảng quản lý người dùng theo thời gian thực vả kiểm soát quyền quản lý
nội dung chỉ bằng vài cú nhấp chuột
- _ Tạo một quy trình rõ ràng để thúc đấy công việc với hệ thông tự động hóa tích hợp của Trello Chạy lệnh và thiết lập các quy tắc được tự động hóa cho hầu hết mọi thao tác trong Trello để có thể tập trung vào những việc quan trọng nhất
- - Tích hợp trơn tru với các ứng dụng và dịch vụ mà nhóm của bạn tin dùng như Slack, Dropbox, Outlook, Gmail, Salesforce, InVision, Jira cùng hàng trăm ứng dụng và dịch vụ khác
Iypefotrrr:
-hanty Catalogue cố : Googie Docs Gmail Survey monkey
= Google doc Canva S C k % o Google Drive
Š wnatist Office 365 Œ - 5 > Eventbrite
i Google analytics Microsoft teams ° 7 as 2 0) 5 , ira coniiuence hipchat Do : Ỗ 8
13
Trang 141.3 GITHUB 1.3.1 Gidi thiệu GitHub Git duoc hiéu la một hệ quan tri phién ban duoc phat trién bi Linus Torvalds Github được hiểu là một hệ thống quản ly tất cả dự án và bao gồm thêm phiên
bản code dựa trên nền tảng web Bạn có thê hình dung Github giống như một mạng xã
hội đành cho các lập trình viên Mà ở đó, mỗi người đều có thể clone lại mã nguồn từ một Reposttory Và sau đó tạo ra các kho chứa cho riêng mình
®© Vài thông tin về GIT:
Là công cụ giúp quản lý source code tô chức theo dạng dữ liệu phân tán Giúp đồng bộ source code của team lên 1 server
Trang 151.3.2 Tính năng GitHub Hiện tại, Github được xem là một trang mạng xã hội dành cho lập trình viên lớn nhất toàn cầu Cùng với đó là yêu tô dễ dàng sử dụng với các tính năng cốt lõi sau:
> Wiki, issue, thống kê, đổi tên project và project di duoc dat vao namespace la user
>» Watch project: Day là tính năng giúp bạn theo dõi hoat déng project tu người khác Bên cạnh đó còn có thê xem quá trình người ta phát triển nhu thé nao, project phat trién ra sao
>» Follow user: Day là tính năng giúp bạn theo dõi hoạt động của người
Trang 16© Quan ly source code dé dang Khi tao m6t repo, toan b6 source code cua repo do duoc luu trén GitHub Tai đây, ta có thể coi lại quá trình làm việc thông qua các comment sau mỗi lan commit Lợi ích đầu tiên, chính là ta biết được ai đã commit và commit cái øì Tiếp theo, source của bạn có thê phát triển theo nhiều nhánh Nhưng cuối cùng, bạn phải merge lại vào nhanh MASTER dé ra duoc project hoan chinh
Pullrequests lssues Marketplace Explore
Discover interesting projects and people to populate your personal news feed
Khi có nhiều member củng thực hiện một dự án thì khả là phức tạp để theo dõi revisons — ai thay đôi cái gì, lúc nào và máy cái files đó được stored ở đâu Đừng lo vì GitHub đã tính đến chuyện này giúp bạn, bằng cách luôn lưu lại những thay đôi bạn đã push lên repository Cũng tương tự với Microsoft Word hay Goople Drive, bạn có một lịch sử phiên bản để phòng trường hợp các phiên bản trước đó bị mất hay không được lưu
16
Trang 171.3.3 Cách thức hoạt động trên GitHub là gì?
Biết về khái niệm GitHub là gì thôi là chưa đủ Bạn muốn tìm hiểu rõ hơn về
GitHub thì bạn phải nắm được cách thức hoạt dong cua no GitHub gom hai nén tang khi làm việc đó là local workflow va server workflow
Voi local workflow, ban cé thé thay đổi source code, sau đó mới xác nhận các thay đổi tại server workflow Nhưng cũng cần lưu ý rằng, bản xác nhận trên server
phải là bản hoản chỉnh, nếu chưa hoản chỉnh có thê ảnh hướng đến các thành viên khác
trong team khi sử dụng kho lưu trữ
Bạn sử dụng kho lưu trữ của server, người dùng phải cung cấp mã xác nhận, từ
do sé so sanh SSH key ở local của bạn và SSH key trên server tương ứng với tài khoản
Trang 18thao tac repository:
Thường sẽ sử dụng 2 lệnh là p1t add va git commit:
¢ Git add: Ding dé add file đã thay đôi vao stage
¢ Git commit: Dùng để xác nhận cac file di add vao satge 1én repository trén local
Repository trén server GitHub:
Đề có một bản hoàn chỉnh và ổn định đề xác nhận cap nhat lén repository server VỚI:
® push: Thay déi từ repository local lên repository server
e fetch: Cap nhat thay déi tir repository server vé repository local
¢ pull/rebase: Sao chép source code từ server vé local workspace
18
Trang 19Một vài khái niệm cân nắm:
¢ Repository: Noi chira tat cả thông tin cần thiết dé duy trì và quản lý các
dữ liệu, mã nguồn của project
® git: La prefix cua cac lệnh được sử dụng dưới CLI
® Snapshot: Lưu lại nội dung tất cả các tập tin, thư mục dưới dạng ảnh chụp
¢ branch: Cé thé coi là nhánh, thể hiện sự phân chía các phiên bản khi 2
® folk: Folk là thao tác thực hiện sao chép repository của chủ sở hữu khác
về tài khoản của mình
® tao: Sử dụng để đánh dấu một commit trong trường hợp có quá nhiều
commit không thế kiêm soát được
e© remote: Su dụng để điều khiển các nhánh từ một repository trên máy chủ, đối xử với các nhánh trên remote tương tự như đối xử với các nhánh trên local
e diff: So sánh sự khác piữa phiên bản hiện tại với phiên bản muốn so sánh, nó sẽ thể hiện các sự khác nhau
® gitignore: File mac định của øIt sử dụng để loại bỏ (ignore) cac thu muc, file mà mình không muốn push lên git server
19
Trang 201.3.4 Các yếu tổ cần thiết của GitHub là gì?
¢ GitHub Repository GitHub repository co thể được sử dụng để lưu trữ một dự án phát triển Nó có thê chứa các thư mục và bat ky loai file nao (HTML, CSS, JavaScript, Documents, Data, Images) GitHub repository cing bao gém licence file va file README vé du
án GitHub repository có thê được sử dụng để lưu trữ ý tướng hoặc bất kỳ tài nguyên nào bạn muốn chia sẻ
¢ GitHub Branch M6ét GitHub branch được sử dụng để làm việc với các phiên bản khác nhau của kho lưu trữ cùng một lúc Theo mặc định một repository có một master branch (nhánh chính) Bất kỳ nhánh nào khác đều là một bản sao của nhánh chính
Các nhánh mới dành cho sửa lỗi và tính năng hoạt động tách biệt với nhánh chính Khi các thay đôi đã sẵn sàng, chúng có thê được hợp nhất vào nhánh chính Nếu bạn thay đôi nhánh chính trong khi làm việc trên nhánh mới, những thay đổi này có thể được cập nhật vào
¢ GitHub Commits Commit la thao tac ghi lai viéc thém/thay déi file hay thư mục vào kho lưu trữ Các commit sẽ được ghi lại theo thứ tự thời gian chỉnh sửa Chỉ cần theo dõi ở đây bạn
có thể thấy được lịch sử chỉnh sửa và thay đổi các file Các lập trình viên có thể nhận được các thay đổi theo tiễn trình update
¢ GitHub Pull Requests Pull Requests la trai tim cua sw hop tac GitHub V6i mot Pull Requests, khi người dùng đề xuất các thay đổi của họ thì sẽ được hợp nhất với master Pull requests hiến thị sự khác biệt về nội dung , thay đổi, bỗ sung va subtractions bang mau sắc (xanh lá cây và đỏ)
Sau khi bạn có một sự thay đổi, bạn có thể mở một Pull requests và bắt đầu một cuộc thảo luận, ngay cả trước khi code được kết thúc Một cách tuyét vời dé hoc GitHub, trước khi thực hiện các dự án lớn hon, là mở các Pull requests trong kho lưu trữ của riêng bạn và tự hợp nhất chúng
20
Trang 211.3.5 GIỚI THIEU VE GITHUB DESKTOP
Nói một cách hiểu biết với lập trình viên thì từ ngữ “git”, “github” qua quen thuộc Vậy với các đối tượng mới tiếp cận voi git hay github thi còn khó dé hiéu va str dung ngay Vi vay ma Github DeskTop duoc sinh ra voi muc dich nhắm đến các bạn đang và muốn tìm hiểu về Git, Github
Co-Authorec-By: Markus Olsson <niik@users.noreply.github.com>
Add event handler to dropdown compon
a) iAmWillshepherd and Markus Olsson co app\src\ui\toolbar\dropdown.tsx DỊ 8# -145,6 +145,18 @@ export class ToolbarDropdown ex
tends React Component<
Move escape behavior to correct compo 1E 145 this.state = { clientRect: mull }
146 } Remove event handler from the branches - a
148 pri isOpen() {
149 + is.props.dropdownState === ‘open Merge branch ‘master’ into esc-pr iso |+ }
nm @@ -249,6 4253,13 @@ export class ToolbarDropdown ex
Địa điểm file mà bạn muốn gói lại đến gữi lên githup(web_cloud)
desktop
® Branch Gém cac nhánh và nhánh master luôn là nhánh chính -_ Có 2 phương thức nhánh:
+ Trực tiếp merge với nhánh chính: không cần phải thông qua ý kiến của master vẫn có thể đưa đữ liệu lên web_cloud
+ Yéu cau merge: phai cho master kiém duyệt mới được đưa lén web_ cloud
¢ Changes / History
21
Trang 22Nơi để xem các file đã thay đổi và lịch sử đã được tải lên web_cloud
Changes History Appease linter
& iAmWillShepherd committed a day ago Add event handler to dropdown compon
Ai] iAmWillShepherd and Markus Olsson co
Move escape behavior to correct compo
Ai] iAmWillShepherd and Markus Olsson co Remove event handler from the branches
al iAmWillShepherd and Markus Olsson co Merge branch ‘master’ into esc-pr
& iAmWillShepherd committed a day ago Merge pull request #4044 from desktop/
a Neha Batra committed a day ago Merge pull request #4070 from desktop/
F2 Brendan Forster committed 2 days ago
bump to beta3 F2 Brendan Forster committed 2 days ago Merge pull request #4057 from desktop/
F2 Brendan Forster committed 2 days ago Merge pull request #4067 from desktop/
F2 Brendan Forster committed 2 days ago
Giao dién hién thi file chi tiét
Add event handler to dropdown component Ua] iAmwilisheoterd and Markus Olsson committed O c79e? 1c [51 changed file Co-Authored-By: Markus Olsson <niik@users.noreply github.com app\src\ui\toolbar\dropdown.tsx fol @2 -145,6 4145,20 @@ export class ToolbarDropdown ex
tends React Component<
145 145 this.stete = { clientRect: rull }
146 146 }
1) 141
148 + private get isOpen() {
149 + return this.props.dropdounState === ‘open’
22
Trang 231.4 GITHUB TRONG VISUAL STUDIO 1.4.1 MO GITHUB TRONG VISUAL STUDIO View => Git change
fi = Type here to search
Chon View > Team Explorer, cra so Team Explorer xuat hién:
Team Explorer - Home vox
f BooksShopOnline.sin
23
Trang 24Chon Sync, tai myc Push to Remote Repository chon Publish Git Repo
Publish Git Repo
4 Push to Remote Repository There is no remote configured ng Establish the remote by publishing t®wJe URL of an existing empty repository
Publish Git Repo
Xuất hiện yêu cầu nhập URL của một Repo từ xa (tức Repo trén GitHub)
4 Push to Remote Repository
There is no remote configured for this local repository
Establish the remote by publishing to the URL of an existing empty repository
Publish Git Repo
24
Trang 25Sao chép đường dẫn đến Repo này bằng cách nhấn nút Clone or download
Go to file P-] Clone
1.4.2 THAO TÁC VOI NHANH (BRANCH)
Chúng ta tạo một nhánh mới tên first branch cục bộ tại Visual Studio bằng
cách tìm đến mục Branches trong Team Explorer:
Trang 26Tạo một nhánh mới bằng cách chọn New Branch
© 8 & #/G (Search Work items (Ctr) P=
~ {Al
Branches | BooksShopOnline
New Branch ~ | Merge ~ | Rebase ~ | Actions +
4 Active Git Repositories Type here to filter the list P
Bây giờ chúng ta có hai nhánh 1a master (mac dinh) va first_ branch:
O° @ | G Search Work Items (Ctrl+ 2-
+ | al
Branches | BooksShopOnline
j New Branch ~| Merge ~ | Rebase ~| Actions ~
4 Active Git Repositori Type here to filter the list P
CommitAll w Actions +
4 Changes (3) + Type here to filter the list 2 Name Path ^
® Default.aspx * BooksShopOnline\Books
C* Default.aspx.cs * BooksShopOnline\Books
€® Default.aspx.designe BooksShopOnline\Books
26
Trang 27Nhan Push tai Outgoing Commits
© Successfully pushed branch first_branch to origin X
Branch: first_branch Sync | Fetch | Pull | Push | Actions
4 Incoming Commits
Fetch | Pull
There are no incoming commits
4 Outgoing Commits
Push | View Summary
There are no outgoing commits
Kiểm tra trên GitHub chúng ta đã có hai nhánh và các cập nhật tương ứng:
Manage topics
3 commits P 2 branches ao
A We found a potential security vulnerability in one of your dependencies
Only the owner of this repository can see this message
Manage your netificotion settings or learn more about security alerts
Your recently pushed branches:
P first_branch (1 minute ago) <=
Branch: master New pullrequst
@, TranNgocMinh Adding something to Default.aspx file
fim BooksShopOnline Adding something to Default.aspx file
© 0 releases 28 1 contributor
See security alert
Whe ee ener Create new file | Upload files Find File Clone or download ~
Latest commit 522110 21 minutes ago
21 minutes ago
27
Trang 281.4.3 PULL VÀ PUSH DỮ LIỆU
® PULL
Chúng ta tạo một ít thay đổi trong tập tin Default.aspx và muốn cập nhật đến GitHub Mo dy an trong Team Explorer (View > Team Explorer), chon Changes
Trang 30Nhắn Commit All and Push
Changes | BooksShopOnline x | al Branch: master
Adding something to Default.aspx file
Commit All ~ Actions +
Trang 311.5 UNIT TEST
1.5.1 KHAI NIEM VE UNIT TEST
Unit Test là một loại kiểm thử phần mềm trong đó các đơn vị hay thành phan riêng lẻ của phan mềm được kiểm thử Kiểm thử đơn vị được thực hiện trong quá trinh phát triển ứng dụng Mục tiêu của Kiểm thử đơn vị là cô lập một phần code và xác minh tính chính xác của đơn vị đó
com mit; difference % Maris
time treat system a single
pờ me Les
ti | ï = = zed
mm COSTS aa
S| Ht code Class take
Một Unit là một thành phần PM nhỏ nhất mà ta có thể kiểm tra được như các
Kent
pl something gg
fauit
speed might
want °
ham (Function), thu tuc (Procedure), lép (Class), hoac các phương thire (Method)
Vi Unit được chọn để kiểm tra thường có kích thước nhỏ và chức năng hoạt động đơn giản, chúng ta không khó khăn gì trong việc tổ chức, kiểm tra, ghi nhận và phân tích kết quả kiểm tra nên việc phát hiện lỗi sẽ dễ dàng xác định nguyên nhân và khắc phục cũng tương đối đễ dàng vì chỉ khoanh vùng trong một Unit đang kiểm tra Mỗi UT sẽ gửi đi một thông điệp và kiểm tra câu trả lời nhận được đúng hay
không, bao gồm:
® - Các lôi ngoại lệ mong muôn
31
Trang 321.5.2 UNG DUNG CUA UNIT TEST
Kiểm tra mọi đơn vị nhỏ nhất là các thuộc tính, sự kiện, thủ tục và hàm Kiểm tra các trạng thái và ràng buộc của đối tượng ở các mức sâu hơn
mà thông thường chúng ta không thể truy cập được
Kiểm tra các quy trình (process) và mở rộng hơn là các khung làm việc(workflow - tập hợp của nhiều quy trình)
1.5.3 LOT ICH CUA UNIT TEST
Tạo ra môi trường lý tưởng để kiểm tra bất kỳ đoạn code nảo, có khả năng thăm dò và phát hiện lỗi chính xác, duy trì sự ổn định của toàn bộ
PM và giúp tiết kiệm thời gian so với công việc gỡ rỗi truyền thông Phát hiện các thuật toán thực thi không hiệu quả, các thủ tục chạy vượt quá giới hạn thoi gian
Phát hiện các vấn đề về thiết kế, xử lý hệ thống, thậm chí các mô hình
Giải phóng chuyên viên QA khói các công việc kiểm tra phức tạp Tăng sự tự tin khi hoàn thành một công việc Chúng ta thường có cảm giac không chắc chắn về các đoạn mã của mình như liệu các lỗi có quay lại không, hoạt động của module hiện hành có bị tác động không, hoặc liệu công việc hiệu chỉnh mã có gây hu hong dau do
Là công cụ đánh giá năng lực của bạn Số lượng các tình huống kiểm tra (test case) chuyên trang thái “pass” sẽ thế hiện tốc độ làm việc, năng suất của bạn
32
Trang 331.5.4, VIET CODE TEST VOI UNIT TEST
® Tạo một Unit Test mới Click phải vao tén Solution => Add => New project => tim Unit Test Project
Add a new project
Recent project templates
P Type here to search
Add Service Reference
Manage Connected Services Add Analyzer
Manage NuGet Packages
Migrate packages.config to PackageReference
33
Trang 34e_ Viết code chương trình chính và Unit Test
private readonly string m_customerName;
private double m_balance;
private BankAccount() { } public BankAccount(string customerName, double balance)
' get { return m_balance; } public void Debit(double amount)
if (amount > m_balance)
{
throw new ArgumentQut0OfRangeException ("amount");
if (amount < 6) // throw new ArgumentOutOfRangeException ("amount") ; m_balance -= amount; // intentionally incorrect code
}
public void Credit(double amount)
{
if (amount < Q) throw new ArgumentQut0OfRangeException ("amount");