TỔNG QUAN VỀ DOANH NGHIỆP VÀ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM
Cơ hội việc làm đối với ngành
1.1 Giới thiệu tổng quát về doanh nghiệp thực tập
1.1.1 Tổng quan về TMA Solutions Bình Định Được thành lập năm 1997, TMA là tập đoàn công nghệ hàng đầu Việt Nam với
TMA hiện có 4000 kỹ sư và phục vụ khách hàng là các tập đoàn công nghệ cao hàng đầu thế giới từ 30 quốc gia Công ty có 7 chi nhánh tại Việt Nam, trong đó 6 chi nhánh ở TP.HCM và 1 chi nhánh tại TP Quy Nhơn, cùng với 6 chi nhánh quốc tế tại Mỹ, Úc, Canada, Đức, Nhật Bản và Singapore.
Tháng 6 năm 2018, TMA đã mở chi nhánh tại Bình Định Sau 5 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 600 kỹ sư, trong đó có nhiều kỹ sư đang làm việc tại TP.HCM đã trở về làm việc tại quê hương
Tháng 8 năm 2018, TMA đã khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park – TIP) trên 10 hecta tại Thung lũng Sáng tạo Quy Nhơn (Quy Nhon Innovation Park – QNIVY) với vốn đầu tư hàng trăm tỷ đồng
1.2 Cơ hội việc làm đối với ngành
Nhu cầu tuyển dụng trong lĩnh vực kiểm thử phần mềm đang tăng cao, mang lại cơ hội nghề nghiệp ổn định Theo đuổi nghề tester, bạn sẽ thường xuyên được cập nhật các công việc mới và có cơ hội làm việc trên nhiều dự án đa dạng.
Hình 1 1 Logo Công ty TMA Hình 1 1 Logo TMA
Nghề Tester không bị giới hạn bởi độ tuổi, vì kinh nghiệm tích lũy qua nhiều năm là yếu tố quan trọng nhất Trong khi sự nhạy bén của tuổi trẻ có thể có lợi cho nghề lập trình, thì đối với Tester, khả năng tiếng Anh tốt mở ra nhiều cơ hội làm việc tại các công ty phần mềm lớn, đặc biệt là trong các dự án outsourcing nước ngoài với mức lương hấp dẫn.
Mô tả vị trí việc làm:
- Chuyên viên Tester phần mềm:
● Phân tích yêu cầu dự án phần mềm, lập kế hoạch test và thiết kế kịch bản test, chuẩn bị, dữ liệu test
● Test các dự án phần mềm, phối hợp với các bộ phận liên quan để đảm bảo chất lượng dự án/sản phẩm
● Quản lý, phân tích, theo dõi và báo cáo kết quả test
● Xây dựng các Test Case và kịch bản Test phù hợp
● Lưu trữ tài liệu Test theo từng dự án
● Xây dựng tài liệu và đào tạo người dùng cuối
● Tham gia vào việc hỗ trợ người dùng trong quá trình sử dụng phần mềm
● Kiểm tra, giám sát kết quả các tiến trình thực hiện dự án được phân công hỗ trợ
- Nhân viên kiểm thử phần mềm QC:
● Viết Test Case và Test Plan, tạo môi trường kiểm thử
● Thực hiện Test Case theo đúng yêu cầu thiết kế
● Thực hiện kiểm thử thủ công và tự động
● Viết báo cáo kết quả kiểm thử và báo cáo hằng ngày
● Chịu trách nhiệm theo dõi lỗi
- Nhân viên kiểm thử phần mềm QA:
● Lập kế hoạch kiểm thử ứng dụng web, app dựa trên kế hoạch phát triển của dự án
● Viết kịch bản kiểm thử theo tài liệu phân tích yêu cầu và tài liệu thiết kế
● Thực hiện kiểm thử theo tính năng, hiệu năng của sản phẩm
● Tái tạo lỗi, kiểm soát lỗi, theo dõi kết quả kiểm thử để đảm bảo chất lượng của dự án
● Viết tài liệu hướng dẫn sử dụng phần mềm
1.2.2 Các kỹ năng cần có của một tester
- Kỹ năng học hỏi nhanh
- Chi tiết, tỉ mỉ, cẩn thận, kiên trì
- Tiếng Anh, ngoại ngữ tốt là một ưu thế
1.2.3 Mức lương dành cho Fresher Tester
Fresher Tester là những nhân viên mới, chưa có kinh nghiệm và kiến thức chuyên môn sâu rộng Họ cần được đào tạo, training trong quá trình làm việc
Lương Fresher Tester non trẻ này dao động từ 4.000.000 đồng đến 8.000.000 đồng, với Tester cứng kinh nghiệm từ 4-6 năm mức lương có thể lên đến 12-15tr
Lộ trình phát triển của nghề Tester cũng rất rõ ràng và đầy tiềm năng, được chia theo các level sau:
• Level 1: Fresher - Là những bạn mới tốt nghiệp các khóa đào tạo Tester cơ bản và bắt đầu đi làm Tester
Ở cấp độ Junior, các cá nhân đã tích lũy được kiến thức và kinh nghiệm đáng kể cùng với trình độ chuyên môn vững vàng Họ có khả năng giải quyết các Test Case phức tạp và thể hiện sự chủ động, sáng tạo trong công việc của mình.
Cấp độ 3: Senior - Những chuyên gia này có kỹ năng vững vàng trong lĩnh vực kiểm thử, hiểu rõ các yêu cầu kiểm thử phần mềm cho các doanh nghiệp, đặc biệt là đối với những ứng dụng phức tạp trong các lĩnh vực như tài chính, sức khỏe và thương mại điện tử.
Cấp độ 4: Trưởng nhóm kiểm thử - Sau khoảng 5 năm kinh nghiệm, các tester có thể đảm nhận vai trò quản lý Họ có trách nhiệm tổ chức công việc và phân công nhiệm vụ cụ thể cho các tester trong nhóm dự án.
Cấp độ 5: Quản lý Kiểm thử - Đây là những chuyên gia chịu trách nhiệm tổ chức và điều phối các nhóm kiểm thử, quản lý các chỉ số (metrics), lập kế hoạch chiến lược và đưa ra các dự đoán chính xác cho quy trình kiểm thử.
• Level 6: Senior Test Manager - Tùy thuộc vào độ cứng và số năm kinh nghiệm, Test Manager có thể đạt được vị trí Senior Test Manager
Sau khi đạt trình độ 4 trong nghề Tester, bạn có thể mở rộng cơ hội nghề nghiệp bằng cách trở thành BA (Business Analyst) hoặc PM (Project Manager) Đây là những hướng đi tiềm năng, giúp các Tester phát triển sự nghiệp một cách bền vững.
1.3 Cơ sở lý thuyết về kiểm thử phần mềm
1.3.1 Tổng quan về kiểm thử phần mềm
Kiểm thử phần mềm là quá trình thực hiện chương trình nhằm phát hiện lỗi và đảm bảo rằng sản phẩm đáp ứng yêu cầu của khách hàng, từ đó đánh giá chất lượng của sản phẩm.
1.3.1.2 Bảy nguyên tắc của kiểm thử
• Kiểm thử chứng minh sự hiện diện của lỗi
• Kiểm thử toàn bộ là không thể
• Kiểm thử càng sớm càng tốt
• Sự phân bố tập trung của lỗi
• Nguyên lý thuốc trừ sâu
• Kiểm thử phụ thuộc vào ngữ cảnh
• Sự vắng mặt của lỗi
1.3.1.3 Vòng đời kiểm thử phần mềm
Vòng đời kiểm thử phần mềm (STLC) là quá trình kiểm thử được thực hiện theo cách có hệ thống và có kế hoạch STLC bao gồm 6 giai đoạn:
• Requirement Analysis – Phân tích yêu cầu
• Test Planning – Lên kế hoạch kiểm thử
• Test Case Development – Phát triển các Test Case
• Environment Setup – Tiến hành cài đặt môi trường để thử nghiệm
• Test Execution – Thực thi các Test Case
• Test Cycle Closure – Kết thúc chu kỳ kiểm thử
1.3.2 Vòng đời phát triển phần mềm (SDLC)
Vòng đời phát triển phần mềm (SDLC) là quy trình giúp các nhóm phát triển tiết kiệm chi phí và thời gian trong việc thiết kế và xây dựng phần mềm chất lượng cao Mục tiêu chính của SDLC là giảm thiểu rủi ro dự án bằng cách lập kế hoạch trước, đảm bảo phần mềm đáp ứng kỳ vọng của khách hàng trong suốt quá trình phát triển và sau khi hoàn thành.
1.3.2.2 Giai đoạn của vòng đời phát triển phần mềm
Giai đoạn của vòng đời phát triển phần mềm bao gồm 6 giai đoạn:
• Requirement gathering and analysis – Thu thập và phân tích yêu cầu
• Design – Thiết kế kiến trúc hệ thống
• Implementation / Coding – Phát triển phần mềm
1.3.2.3 Các mô hình cơ bản của SDLC
Mô hình Waterfall, hay còn gọi là mô hình thác nước, là phương pháp đầu tiên trong chu trình phát triển phần mềm (SDLC) Mô hình này dựa trên quy trình thiết kế tuần tự và liên tiếp, giúp quản lý dự án một cách hiệu quả.
Mô hình Agile là một phương pháp phát triển phần mềm dựa trên quy trình lặp đi lặp lại, chia nhỏ các nhiệm vụ thành các lần lặp nhỏ hơn, không tập trung vào kế hoạch dài hạn Phạm vi và yêu cầu của dự án được xác định ngay từ đầu, với các kế hoạch rõ ràng về số lần lặp, thời gian và phạm vi của mỗi lần lặp.
Scrum là một quy trình phát triển nhanh tập trung chủ yếu vào các cách quản lý nhiệm vụ trong điều kiện phát triển dựa trên nhóm.
Ba vai trò trong Scrum:
• Product Owner: Là người tập hợp các task, quyết định độ ưu tiên task nào làm trước, task nào làm sau
• Scrum Master: Là người giúp cho team làm việc tốt nhất và bảo vệ team khi có vấn đề xảy ra
• Develop Team: Bao gồm developer, tester, Những người này có thể làm việc của người khác
Ba cuộc họp trong Scrum:
Cuộc họp Sprint Meeting là dịp để thảo luận và xác định các nhiệm vụ sẽ được đưa vào backlog của sprint, cùng với việc ước lượng thời gian cho từng nhiệm vụ Cuộc họp này diễn ra trước khi bắt đầu một sprint, nhằm đảm bảo mọi thành viên trong nhóm đều nắm rõ mục tiêu và kế hoạch thực hiện.
Cơ sở lý thuyết về kiểm thử phần mềm
2.1 Giới thiệu Website Guru99 Bank
Hình 2 1 Trang chủ Website Guru99 Bank
Dự án Ngân hàng Guru99 cung cấp dịch vụ ngân hàng trực tuyến, cho phép khách hàng thực hiện các chức năng như đăng nhập, đăng xuất và đổi mật khẩu Hệ thống quản lý thông tin khách hàng cho phép thêm, sửa và xóa thông tin, trong khi quản lý tài khoản cung cấp các chức năng tương tự Phiên bản hiện tại có tính năng hạn chế, nhưng sẽ có thêm nhiều chức năng mới trong thời gian tới.
Website Guru99 Bank có các chức năng sau:
• Log in, log out, change pasword
• New customer, edit customer, delete customer
• New account, edit account, delete account
• Balance enquiry, mini statement, customised statement
TỔNG QUAN VỀ WEBSITE GURU99 BANK
Chức năng
Website Guru99 Bank có các chức năng sau:
• Log in, log out, change pasword
• New customer, edit customer, delete customer
• New account, edit account, delete account
• Balance enquiry, mini statement, customised statement
2.3 Mô tả các chức năng
Log in Cho phép người dùng có tài khoản đăng nhập vào hệ thống và thực hiện các thao tác chức năng có trên hệ thống
Log out Cho phép người dùng đăng xuất ra khỏi hệ thống và kết thúc phiên làm việc của mình
Change Password Manager: Người quản lý chỉ có thể thay đổi mật khẩu tài khoản của mình, và không thể thay đổi mật khẩu của khách hàng
New Customer Manager: Người quản lý có thể thêm thông tin khách hàng mới
Edit Customer Manager: Người quản lý có thể chỉnh sửa thông tin khách hàng như address, city, state, PIN, mobile number, e-mail
Delete Customer Manager: Người quản lý có thể xóa khách hàng (Khách hàng chỉ có thể bị xóa khi họ không có tài khoản hoặc tài khoản tiết kiệm
Người quản lý tài khoản mới có khả năng thêm tài khoản cho khách hàng hiện tại Hệ thống hiện cung cấp hai loại tài khoản: Tài khoản tiết kiệm (Saving) và Tài khoản hiện tại (Current) Mỗi khách hàng có thể sở hữu nhiều tài khoản tiết kiệm hoặc tài khoản hiện tại.
Edit Account Manager: Người quản lý có thể sửa chi tiết cho tài khoản hiện có
Delete Account Manager: Người quản lý có thể xóa tài khoản cho khách hàng
Deposit Manager: Người quản lý có khả năng gửi tiền vào bất kỳ tài khoản nào theo yêu cầu của khách hàng, thường được thực hiện khi tiền mặt được gửi tại ngân hàng.
Người quản lý rút tiền có khả năng thực hiện giao dịch rút tiền từ bất kỳ tài khoản nào theo yêu cầu của khách hàng Hành động này thường diễn ra khi khách hàng muốn rút tiền mặt tại ngân hàng.
Fund Transfer Manager: Người quản lý có thể chuyển tiền từ bất kỳ tài khoản ngân hàng nguồn nào sang tài khoản đích theo yêu cầu của khách hàng
Balance Enquiry Manager: người quản lý có thể xem số dư của tất cả các khách hàng dưới quyền giám sát của mình
Quản lý Bảng Báo Cáo Ngắn: Người quản lý có khả năng truy cập và xem bảng báo cáo ngắn cho bất kỳ tài khoản nào, hiển thị 5 giao dịch gần nhất của tài khoản đó.
Người quản lý có thể truy cập bảng báo cáo tùy chỉnh cho bất kỳ tài khoản nào, cho phép lọc và hiển thị các giao dịch dựa trên các tiêu chí như thời gian, giá trị giao dịch tối thiểu và số lượng giao dịch.
Bài báo cáo này sẽ trình bày chi tiết quá trình kiểm thử cho hai chức năng chính: Tạo Khách Hàng Mới và Chỉnh Sửa Thông Tin Khách Hàng Chúng tôi sẽ làm rõ các bước thực hiện và kết quả đạt được cho từng chức năng này.
Hình 2 2 Giao diện chức năng New Customer
Chức năng “New Customer” cho phép người dùng thêm thông tin khách hàng mới vào cơ sở dữ liệu của hệ thống
Trường “Customer Name” Tên đầy đủ của khách hàng
Trường “Gender” Giới tính của khách hàng (Nam/Nữ)
Trường “Date of Birth” Ngày sinh của khách hàng
Trường “Address” Địa chỉ của khách hàng
Trường “City” Thành phố khách hàng cư trú
Trường “State” Tỉnh hoặc thành phố khách hàng cư trú
Trường “PIN” Mã bưu chính của khách hàng
Trường “Mobile Number” Số điện thoại liên hệ của khách hàng
Trường “E-mail” Địa chỉ email của khách hàng
Trường “Password” Mật khẩu cho tài khoản của khách hàng
Bảng 2 2 Bảng giải nghĩa đầu vào của chức năng New Customer
Bước 1: Người dùng điều hướng đến phần "New Customer" trên trang web
Bước 2: Người dùng điền vào các trường thông tin khách hàng được yêu cầu Bước 3: Người dùng nhấp vào nút "Submit"
Bước 4: Hệ thống xác minh dữ liệu đầu vào để đảm bảo đầy đủ và chính xác Bước 5: Nếu xác minh thành công:
➢ Thông tin khách hàng, bao gồm ID khách hàng được tạo ra, được lưu trữ trong cơ sở dữ liệu của hệ thống
➢ Hiển thị thông báo thành công và các thông tin về khách hàng mới được tạo cho người dùng
Nếu xác minh thất bại:
➢ Hiển thị thông báo lỗi bên cạnh các trường có dữ liệu không chính xác hoặc bị thiếu
➢ Người dùng được yêu cầu sửa lỗi đầu vào và gửi lại
Thông báo thành công: Thông báo xác nhận cho biết khách hàng mới đã được thêm thành công vào hệ thống
Thông báo lỗi: Hiển thị các thông báo lỗi cụ thể bên cạnh các trường liên quan
Hình 2 3 Giao diện nhập Customer ID
Hình 2 4 Giao diện chức năng Edit Customer
Chức năng “Edit Customer” cho phép người dùng chỉnh sửa thông tin khách hàng hiện có trong cơ sở dữ liệu của hệ thống
Trường “Customer ID” ID của khách hàng đã được đăng ký trước đó
Trường “Customer Name” Tên đầy đủ của khách hàng và không được chỉnh sửa trường này
Trường “Gender” Giới tính của khách hàng (Nam/Nữ) và không được chỉnh sửa trường này
Trường “Date of Birth” Ngày sinh của khách hàng và không được chỉnh sửa trường này Trường “Address” Địa chỉ của khách hàng (Có thể chỉnh sửa)
Trường “City” Thành phố khách hàng cư trú (Có thể chỉnh sửa)
Trường “State” Tỉnh hoặc thành phố nơ khách hàng cư trú
Trường “PIN” Mã bưu chính của khách hàng (Có thể chỉnh sửa)
Trường “Mobile Number” Số điện thoại liên hệ của khách hàng (Có thể chỉnh sửa)
Trường “E-mail” Địa chỉ email của khách hàng (Có thể chỉnh sửa) Bảng 2 3 Bảng giải nghĩa đầu vào của chức năng Edit Customer
Bước 1: Người dùng điều hướng đến phần "Edit Customer" trên trang web
Bước 2: Người dùng tiến hành nhập ID của khách hàng cần chỉnh sửa thông tin Bước 3: Người dùng nhấp vào nút "Submit"
Bước 4: Truy xuất thông tin khách hàng hiện có dựa trên ID đã cung cấp Bước 5: Người dùng cập nhật các thông tin cần chỉnh sửa theo yêu cầu.
Bước 7: Hệ thống xác minh dữ liệu đã cập nhật để đảm bảo đầy đủ và chính xác Bước 8: Nếu xác minh thành công:
➢ Thông tin khách hàng trong cơ sở dữ liệu của hệ thống được cập nhật với dữ liệu mới
➢ Hiển thị thông báo cập nhật thành công cho người dùng
Nếu xác minh thất bại:
➢ Hiển thị thông báo lỗi bên cạnh các trường có dữ liệu cập nhật không chính xác hoặc bị thiếu
➢ Người dùng được yêu cầu sửa lỗi đầu vào và gửi lại
Thông báo thành công: Thông báo xác nhận cho biết thông tin khách hàng đã được cập nhật thành công vào hệ thống
Thông báo lỗi: Hiển thị các thông báo lỗi cụ thể bên cạnh các trường liên quan
2.5.1 Workflow chức năng New Customer
Hình 2 5 Workflow chức năng New Customer
2.5.2 Workflow chức năng Edit Customer
Hình 2 6 Workflow chức năng Edit Customer
Đặc tả chức năng
Bài báo cáo này tập trung vào việc kiểm thử hai chức năng chính: Tạo Khách Hàng Mới và Chỉnh Sửa Thông Tin Khách Hàng Chúng tôi sẽ trình bày chi tiết về quy trình kiểm thử và kết quả đạt được cho từng chức năng.
Hình 2 2 Giao diện chức năng New Customer
Chức năng “New Customer” cho phép người dùng thêm thông tin khách hàng mới vào cơ sở dữ liệu của hệ thống
Trường “Customer Name” Tên đầy đủ của khách hàng
Trường “Gender” Giới tính của khách hàng (Nam/Nữ)
Trường “Date of Birth” Ngày sinh của khách hàng
Trường “Address” Địa chỉ của khách hàng
Trường “City” Thành phố khách hàng cư trú
Trường “State” Tỉnh hoặc thành phố khách hàng cư trú
Trường “PIN” Mã bưu chính của khách hàng
Trường “Mobile Number” Số điện thoại liên hệ của khách hàng
Trường “E-mail” Địa chỉ email của khách hàng
Trường “Password” Mật khẩu cho tài khoản của khách hàng
Bảng 2 2 Bảng giải nghĩa đầu vào của chức năng New Customer
Bước 1: Người dùng điều hướng đến phần "New Customer" trên trang web
Bước 2: Người dùng điền vào các trường thông tin khách hàng được yêu cầu Bước 3: Người dùng nhấp vào nút "Submit"
Bước 4: Hệ thống xác minh dữ liệu đầu vào để đảm bảo đầy đủ và chính xác Bước 5: Nếu xác minh thành công:
➢ Thông tin khách hàng, bao gồm ID khách hàng được tạo ra, được lưu trữ trong cơ sở dữ liệu của hệ thống
➢ Hiển thị thông báo thành công và các thông tin về khách hàng mới được tạo cho người dùng
Nếu xác minh thất bại:
➢ Hiển thị thông báo lỗi bên cạnh các trường có dữ liệu không chính xác hoặc bị thiếu
➢ Người dùng được yêu cầu sửa lỗi đầu vào và gửi lại
Thông báo thành công: Thông báo xác nhận cho biết khách hàng mới đã được thêm thành công vào hệ thống
Thông báo lỗi: Hiển thị các thông báo lỗi cụ thể bên cạnh các trường liên quan
Hình 2 3 Giao diện nhập Customer ID
Hình 2 4 Giao diện chức năng Edit Customer
Chức năng “Edit Customer” cho phép người dùng chỉnh sửa thông tin khách hàng hiện có trong cơ sở dữ liệu của hệ thống
Trường “Customer ID” ID của khách hàng đã được đăng ký trước đó
Trường “Customer Name” Tên đầy đủ của khách hàng và không được chỉnh sửa trường này
Trường “Gender” Giới tính của khách hàng (Nam/Nữ) và không được chỉnh sửa trường này
Trường “Date of Birth” Ngày sinh của khách hàng và không được chỉnh sửa trường này Trường “Address” Địa chỉ của khách hàng (Có thể chỉnh sửa)
Trường “City” Thành phố khách hàng cư trú (Có thể chỉnh sửa)
Trường “State” Tỉnh hoặc thành phố nơ khách hàng cư trú
Trường “PIN” Mã bưu chính của khách hàng (Có thể chỉnh sửa)
Trường “Mobile Number” Số điện thoại liên hệ của khách hàng (Có thể chỉnh sửa)
Trường “E-mail” Địa chỉ email của khách hàng (Có thể chỉnh sửa) Bảng 2 3 Bảng giải nghĩa đầu vào của chức năng Edit Customer
Bước 1: Người dùng điều hướng đến phần "Edit Customer" trên trang web
Bước 2: Người dùng tiến hành nhập ID của khách hàng cần chỉnh sửa thông tin Bước 3: Người dùng nhấp vào nút "Submit"
Để cập nhật thông tin khách hàng, bước đầu tiên là truy xuất hệ thống thông tin hiện có bằng cách sử dụng ID được cung cấp Sau đó, người dùng có thể tiến hành chỉnh sửa các trường thông tin mà mình muốn cập nhật.
Bước 7: Hệ thống xác minh dữ liệu đã cập nhật để đảm bảo đầy đủ và chính xác Bước 8: Nếu xác minh thành công:
➢ Thông tin khách hàng trong cơ sở dữ liệu của hệ thống được cập nhật với dữ liệu mới
➢ Hiển thị thông báo cập nhật thành công cho người dùng
Nếu xác minh thất bại:
➢ Hiển thị thông báo lỗi bên cạnh các trường có dữ liệu cập nhật không chính xác hoặc bị thiếu
➢ Người dùng được yêu cầu sửa lỗi đầu vào và gửi lại
Thông báo thành công: Thông báo xác nhận cho biết thông tin khách hàng đã được cập nhật thành công vào hệ thống
Thông báo lỗi: Hiển thị các thông báo lỗi cụ thể bên cạnh các trường liên quan.
Workflow
2.5.1 Workflow chức năng New Customer
Hình 2 5 Workflow chức năng New Customer
2.5.2 Workflow chức năng Edit Customer
Hình 2 6 Workflow chức năng Edit Customer
TRIỂN KHAI THỰC HIỆN
Manual Testing
Link Test Case: https://bom.so/j4Eas5
3.1.1 Thiết kế Test Case cho chức năng New customer
Hình 3 1 Test Case New Customer
3.1.2 Thiết kế Test case cho chức năng Edit customer
Hình 3 2 Test Case Edit Customer
Hình 3 3 Kết quả kiểm thử
Automation Testing
3.2.1 Thiết lập các điều kiện và môi trường cần thiết trước khi thực hiện kiểm thử
The article discusses the implementation of a library for automated testing using Selenium, highlighting the necessary imports such as `time`, `unittest`, and `webdriver` It emphasizes the importance of handling exceptions like `NoSuchElementException` and `NoAlertPresentException`, as well as utilizing `tracemalloc` for memory tracking and `warnings` for managing alerts Additionally, it mentions the use of `HtmlTestRunner` for generating HTML reports of the test results.
The New Customer function initializes the test environment by starting memory tracking and suppressing resource warnings for unclosed files It then sets up a Chrome WebDriver, maximizes the browser window, navigates to the demo Guru99 website, and pauses for one second to ensure the page loads completely.
To log in, enter the username "mngr516606" and the password "hnkl123@" in the respective fields Then, click the login button to proceed After a brief pause, the system will display the next steps.
function initializes the testing environment by starting memory tracking and suppressing resource warnings It sets up a Chrome web driver, maximizes the browser window, and navigates to the specified demo URL, allowing for a brief pause to ensure the page loads properly.
To log in, input the username "mngr516606" and the password "hnkl123@" in their respective fields Next, click the login button to proceed After a brief pause, locate the element containing the text "Edit" to continue with the next steps.
• Testcase ID: NewCustomer_TC-002: def test_NC_TC_002(self):
To create a new customer without entering a name, the process involves sending an empty string to the name field and providing a date of birth After a brief pause, the system checks for an error message indicating that the customer name must not be blank If the error message is displayed, the test case is marked as passed; otherwise, it is recorded as failed due to the absence of the expected element.
• Testcase ID: NewCustomer_TC-009: def test_NC_TC_009(self):
To create a new customer, input the name "Tran123" in the designated field, followed by the date of birth "16/06/1997" Enter the address as "256 Tay Son", the city as "Quy Nhon", and the state as "Binh Dinh" Additionally, provide the PIN number "123456" and the telephone number "0909542112" in the respective fields.
To automate the login process, input the email "dtranthi@gmail.com" and the password "123456" using the Selenium WebDriver After submitting the form, wait for two seconds to allow any alerts to appear Then, check for an alert message; if the message states "please fill all fields," the test case "NewCustomer_TC-009" is considered passed Otherwise, it fails if the expected text is not found in the popup alert.
• Testcase ID: NewCustomer_TC-011: def test_NC_TC_011(self):
To create a new customer in the system, input the name "Tran Thi D" and select the second radio button Enter an invalid date of birth, such as "27/09/2023," in the designated field After a brief pause of two seconds, attempt to retrieve the success message displayed on the screen.
The test case NewCustomer_TC-011 checks for the display of the 'Invalid date input' message If the success text is visible, the test passes; otherwise, it fails due to the absence of the expected element If the element cannot be found, the test also fails.
• Testcase ID: EditCustomer_TC-01: def test_EC_TC_01(self):
To edit customer details, locate the customer ID field and input "53768," then click the submit button After a brief pause, clear and update the address field with "256 Tay Son," followed by entering "Quy Nhon" in the city field, "Binh Dinh" in the state field, and "123456" in the PIN number field Next, clear the telephone number field and enter "0909542112," then update the email field with "dtranthii@gmail.com." After another pause, click the submit button again Finally, check for an alert confirming the successful update of customer details If the alert matches the expected message, the test passes; otherwise, it fails if the alert is absent or the message is incorrect.
• Testcase ID: EditCustomer_TC-11: def test_EC_TC_11(self):
To edit a customer without entering an address, input the customer ID "53768" in the designated field and click the "AccSubmit" button After a brief pause of two seconds, retrieve the initial address using the appropriate element identifier.
"addr").get_attribute("value") initial_city = self.driver.find_element(By.NAME,
"city").get_attribute("value") initial_state = self.driver.find_element(By.NAME,
"state").get_attribute("value") initial_pin = self.driver.find_element(By.NAME,
"pinno").get_attribute("value") initial_phone = self.driver.find_element(By.NAME,
"telephoneno").get_attribute("value") initial_mail = self.driver.find_element(By.NAME,
The script automates a web interaction by clearing and entering a new address in a form, specifically setting the city to "Quy Nhon." After submitting the form, it checks for an alert message indicating a failure in editing the customer, which is confirmed by comparing the expected alert text Upon acceptance of the alert, the script proceeds to input a customer ID and submits the form again, while ensuring that the initial address remains unchanged for verification.
"addr").get_attribute("value")) self.assertEqual(initial_city, self.driver.find_element(By.NAME,
"city").get_attribute("value")) self.assertEqual(initial_state, self.driver.find_element(By.NAME,
"state").get_attribute("value")) self.assertEqual(initial_pin, self.driver.find_element(By.NAME,
"pinno").get_attribute("value")) self.assertEqual(initial_phone, self.driver.find_element(By.NAME,
"telephoneno").get_attribute("value")) self.assertEqual(initial_mail, self.driver.find_element(By.NAME,
"emailid").get_attribute("value")) if alert_passed: print("EditCustomer_TC-11: Passed (Alert Passed and Can load Old data)") else: print("EditCustomer_TC-11: Failed (Alert Failed but Can load Old
Old data)") else: print("EditCustomer_TC-11: Failed (Alert Failed and Can't load Old data)")
Hình 3 4 Kết quả Test Case NewCustomer_TC-002
Hình 3 5 Kết quả Test Case NewCustomer_TC-009
Hình 3 6 Kết quả Test Case NewCustomer_TC-011
Hình 3 7 Kết quả Test Case EditCustomer_TC-01
Hình 3 8 Kết quả Test Case EditCustomer_TC-11
So sánh kết quả kiểm thử của Manual và Automation
3.3.1 Kết quả khi thực hiện Manual và Automation Tetsting
Testcase ID Manual Test Automation Test
Qua bảng trên ta có thể thấy cả manual và automation khi test các trường hợp trên đều cho ra kết quả giống nhau
Website Guru99 Bank hiện đang gặp nhiều lỗi về chức năng và hiển thị thông báo Cụ thể, trong chức năng New Customer, nếu người dùng nhập dữ liệu không đúng yêu cầu vào bất kỳ trường nào, hệ thống sẽ thông báo lỗi ngay lập tức Khi nhấn nút “Submit”, một pop-up sẽ xuất hiện yêu cầu người dùng “please fill all fields” và chỉ chấp nhận lưu thông tin khi dữ liệu đúng Ngược lại, trong chức năng Edit Customer, mặc dù hệ thống cũng thông báo lỗi ngay bên cạnh trường dữ liệu không đúng, nhưng khi nhấn “Submit”, hệ thống vẫn cho phép lưu và thay đổi thông tin mà không cần đảm bảo dữ liệu đúng yêu cầu.
3.3.2 Thời gian thực hiện kiểm thử
Kiểm thử tự động giúp tiết kiệm thời gian trong quá trình viết kịch bản kiểm thử ban đầu Mặc dù việc này tốn nhiều thời gian lúc đầu, nhưng khi kịch bản đã hoàn thiện, thời gian thực hiện các Test Case sẽ nhanh chóng hơn Hơn nữa, các kịch bản này có thể được sử dụng lại nhiều lần trong tương lai, mang lại sự thuận tiện và hiệu quả nhờ vào quá trình tự động hóa.
Kiểm thử thủ công là quá trình đòi hỏi nhiều thời gian và công sức cho mỗi lần thực hiện Test Case Thời gian thực hiện càng gia tăng khi phạm vi kiểm thử rộng và cần phải kiểm tra trên nhiều môi trường khác nhau.
3.3.3 Số lượng Test Case thực hiện
Kiểm thử tự động cho phép thực hiện một số lượng lớn Test Case một cách nhanh chóng và nhất quán, nhờ vào khả năng tự động hóa Điều này rất hữu ích khi cần kiểm thử trên nhiều môi trường và thiết bị khác nhau.
Trong kiểm thử thủ công, số lượng Test Case mà một người có thể thực hiện trong một khoảng thời gian nhất định thường bị hạn chế do yêu cầu phải thực hiện từng bước một cách thủ công.
Kiểm thử tự động mang lại tính nhất quán cao hơn nhờ vào việc viết các kịch bản kiểm thử một lần và thực hiện lại nhiều lần mà không bị ảnh hưởng bởi yếu tố con người Điều này đảm bảo rằng mỗi tác vụ kiểm thử được thực hiện theo cách giống nhau mỗi khi chạy, từ đó nâng cao độ tin cậy của quá trình kiểm thử.
Kiểm thử thủ công có thể gây ra sự không nhất quán do phụ thuộc vào con người trong quá trình thực hiện các bước kiểm thử Những sai sót nhỏ hoặc sự không chắc chắn trong kiểm thử thủ công có thể dẫn đến kết quả không đồng nhất giữa các lần kiểm tra.
Kiểm thử tự động có khả năng kiểm tra ngẫu nhiên thấp hơn so với kiểm thử thủ công, vì nó chỉ có thể kiểm tra những kịch bản đã được lập trình sẵn.
Kiểm thử thủ công mang lại tính linh hoạt vượt trội trong việc xử lý các trường hợp kiểm thử đa dạng và phức tạp Người kiểm thử có thể áp dụng kỹ năng và kinh nghiệm của mình để thực hiện kiểm tra phần mềm một cách hiệu quả mà không cần phải tuân theo kịch bản kiểm thử đã được định sẵn.
Kết hợp kiểm thử tự động và thủ công mang lại lợi ích tối ưu cho quá trình kiểm tra Việc áp dụng cả hai phương pháp này đã giúp phát hiện chính xác hơn các lỗi trên Website Guru99 Bank.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau 10 tuần thực tập tại TMA Solutions Bình Định, dưới sự hướng dẫn tận tình của mentor và các anh chị trong công ty, chúng em đã tiếp thu nhiều kiến thức mới và đạt được những kết quả đáng kể.
- Nắm được lý thuyết về kiểm thử, hiểu được tầm quan trọng của việc kiểm thử
- Áp dụng lý thuyết để thực hiện kiểm thử thủ công và kiểm thử tự động cho các chức năng của Website Guru99 Bank
- Nâng cao tinh thần tự học, tìm hiểu kiến thức mới
- Cải thiện kỹ năng thuyết trình
- Cải thiện kỹ năng tiếng anh thông qua việc đọc các tài liệu bằng tiếng anh
Nâng cao kỹ năng mềm là rất quan trọng trong môi trường doanh nghiệp, bao gồm việc viết email chuyên nghiệp, tạo và trình bày slide hiệu quả, thuyết trình tự tin trước đám đông, và ứng xử đúng mực Công ty tổ chức các buổi đào tạo nhằm phát triển những kỹ năng này, giúp nhân viên cải thiện khả năng giao tiếp và làm việc nhóm.
- Khi có các vấn đề chưa rõ, còn gặp khó khăn chưa mạnh dạn hỏi mentor
- Các trường hợp kiểm thử chưa đầy đủ và còn nhiều chức năng chưa được kiểm thử
Trong quá trình thực tập tại công ty, em đã rút ra được một số bài học:
Trong môi trường doanh nghiệp, việc chủ động là rất quan trọng Bạn nên chủ động học hỏi và tìm hiểu về công việc của mình để nâng cao kỹ năng và hiệu suất làm việc Bên cạnh đó, hãy chủ động làm quen và xây dựng mối quan hệ với đồng nghiệp để tạo ra một môi trường làm việc thân thiện và hỗ trợ lẫn nhau.
Trong quá trình thực tập tại doanh nghiệp, tôi nhận ra những thiếu sót của bản thân và học hỏi từ những người đi trước để cải thiện những nhược điểm này Việc quan sát và tiếp thu kinh nghiệm từ đồng nghiệp không chỉ giúp tôi phát triển kỹ năng mà còn nâng cao sự tự tin trong công việc.
- Có được những mối quan hệ mới giúp cho sự phát triển của bản thân
- Trang bị thêm cho bản thân kỹ năng mềm và kiến thức về Testing
Sau thời gian thực tập tại công ty, tôi nhận thấy rằng mặc dù đã có cơ hội trải nghiệm thực tế, nhưng tôi vẫn còn nhiều điểm yếu cần cải thiện để phát triển bản thân trong tương lai.