TỔNG QUAN VỀ CÔNG TY VÀ VỊ TRÍ THỰC TẬP
Giới thiệu về doanh nghiệp thực tập
TMA Solutions, thành viên của Tập đoàn Công nghệ TMA, là công ty hàng đầu tại Việt Nam chuyên cung cấp dịch vụ phát triển phần mềm TMA Tech Group nổi bật với các giải pháp công nghệ tiên tiến, phục vụ nhu cầu đa dạng của khách hàng trong lĩnh vực công nghệ thông tin.
- Loại hình: Doanh nghiệp Tư Nhân
- Ngành nghề: Dịch vụ CNTT
- Lĩnh vực hoạt động: Gia Công Phần Mềm
- Người sáng lập: Bà Bùi Ngọc Anh, CEO; Ông Nguyễn Hữu Lệ, Chủ tịch
- Trụ sở chính: 111, Đường Nguyễn Đình Chính, Quận Phú Nhuận, Thành phố
Hồ Chí Minh, Việt Nam
- Dịch vụ: Gia Công Xuất khẩu Phần Mềm
- Công ty mẹ: Tập đoàn Công nghệ TMA (TMA Tech Group)
Hình 1.1 Công ty 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ó đội ngũ 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 sở hữu 7 chi nhánh tại Việt Nam (6 tại TP.HCM và 1 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 4 năm, TMA Bình Định đã phát triển nhanh chóng với hơn 400 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
Với 25 năm phát triển vững mạnh, TMA tự hào được khách hàng từ 30 quốc gia tin tưởng, vinh dự đứng trong top doanh nghiệp CNTT Việt Nam, top 10 doanh nghiệp xuất khẩu phần mềm, Fintech và AI – IoT TMA chú trọng yếu tố con người, tạo môi trường làm việc chuyên nghiệp và thân thiện, đồng thời xây dựng đời sống văn hóa phong phú, giúp nhân viên cảm thấy thoải mái và xem công ty là nơi không chỉ làm việc mà còn là nơi có nhiều hoạt động vui chơi, giải trí hấp dẫn.
- Tài chính, Ngân hàng & Bảo hiểm
- Thương mại điện tử & Phân phối
- Nông nghiệp & Chế biến thực phẩm
Hình 1.2 Cơ cấu tổ chức TMA
TMA Bình Định đang được dẫn dắt và lãnh đạo bởi đội ngũ giàu kinh nghiệm:
- Chủ tích: TS Nguyễn Hữu Lệ
- Giám đốc điều hành: Bà Ánh Bùi
- Phó giám đốc, giám đốc tài chính: Bà Dương Phạm
- Phó giám đốc nhân sự và hành chính: Bà Uyên Phạm
- Phó giám đốc phát triển kinh doanh: Ông Hồng Trần
- Giám đốc cấp cao, phát triển doanh nghiệp: Tiến sĩ Quang D.Bùi
- Phó giám đốc giao hàng: Ông Lạc Bùi
- Giám đốc, hoạt động Bắc Mỹ: Ông Alex Newcombe
- Giám đốc phát triển kinh doanh Bắc Mỹ: Ông Minh Nguyễn
- Giám đốc điều hành, TMA Australia: Ông Tuấn Nguyễn
- Giám đốc điều hành, TMA Japan: Ông Sata Nobuo
- Nhà khoa học dữ liệu trưởng: Tiến sĩ David Levett
Tổng quan về vị trí Kiểm thử phần mềm
TMA chủ động điều chỉnh kịp thời thu nhập và khen thưởng cho những cá nhân xuất sắc, đồng thời đảm bảo các phúc lợi đi kèm luôn được thực hiện đầy đủ.
- Cung cấp cho nhân viên đầy đủ các gói BHYT, BHXH
Chương trình Bảo hiểm chăm sóc sức khoẻ toàn diện cung cấp mức bảo hiểm cao, giúp nhân viên dễ dàng tiếp cận khám, điều trị và sử dụng các dịch vụ y tế chất lượng tại các bệnh viện uy tín.
- Chính sách cho vay tiền không lãi suất, không thế chấp để chia sẻ với nhân viên nỗi lo về tài chính
Quỹ từ thiện “Khát vọng TMA” đã được thành lập với số vốn ban đầu 1 tỷ đồng, nhằm kịp thời hỗ trợ tài chính cho nhân viên và những người có hoàn cảnh khó khăn trên khắp cả nước.
- Quỹ Team building hỗ trợ các hoạt động ngoại khóa hàng năm cho nhân viên
- Quỹ khen thưởng hàng Quý (TMA Quarterly Star Performer) cho nhân viên xuất sắc lên đến 1 tỷ đồng/năm
- Nhiều cơ hội thăng tiến
- Hệ thống đào tạo nội bộ với hàng trăm khóa học mỗi năm
- Hàng trăm cơ hội công tác nước ngoài mỗi năm
1.2 Tổng quan về vị trí Kiểm thử phần mềm
1.2.1 Yêu cầu về kiến thức và kỹ năng cần thiết
- Có kiến thức về kiểm thử phần mềm
- Biết ít nhất một ngôn ngữ lập trình phổ biến như Java, Python…
- Có kinh nghiệm làm việc trên các hệ điều hành (Windows, iOS, Android)
- Kiến thức chuyên môn thực tế với các Framework Robot/Selenium/Appium
- Có kinh nghiệm với Selenium hoặc Katalon hoặc các framework tương đương
- Hiểu biết tốt về quy trình kiểm thử, vòng đời kiểm thử
- Có các kiến thức sau là một lợi thế:
+ Làm quen với mô hình Agile/Scrum + Biết sử dụng các công cụ cộng tác như JIRA, Confluence
- Có khả năng giao tiếp trực tiếp với khách hàng bằng tiếng Anh
- Thái độ giải quyết vấn đề
Phân tích yêu cầu, đặc tả phần mềm để xây dựng test plan, test case tương ứng
- Tự động hóa test plan, test case thông qua các framework hỗ trợ (vd: Selenium, Robot, Katalon )
- Xử lý kế hoạch kiểm tra thủ công, trường hợp kiểm tra nếu được yêu cầu
- Tối ưu hóa kịch bản thử nghiệm tự động hóa
- Phối hợp với các nhà phát triển để cải thiện khả năng sử dụng của sản phẩm
- Luôn cập nhật các công nghệ tự động hóa mới nổi
1.2.3 Mức lương tại thị trường Việt Nam
Hiện nay, mức lương cho nghề tester tại Việt Nam dao động từ 8 đến 25 triệu đồng mỗi tháng Mức lương này phụ thuộc vào nhiều yếu tố như kinh nghiệm, trình độ chuyên môn, cấp bậc và khu vực làm việc Dưới đây là bảng khảo sát mức lương nghề tester theo từng cấp bậc.
Cấp bậc Mức trung bình
Intern Tester 3-6 triệu đồng/tháng Fresh Tester 6-8 triệu đồng/tháng Junior Tester 8-12 triệu đồng/tháng Senior Tester 12-20 triệu đồng/tháng
Tester Leader 20-30 triệu đồng/tháng
Tester Manager 30-50 triệu đồng/tháng
Mức lương của Tester phụ thuộc vào cấp bậc và địa điểm làm việc, với các thành phố lớn thường có thu nhập bình quân cao hơn so với vùng nông thôn Điều này cho thấy sự chênh lệch về mức lương giữa các khu vực, ảnh hưởng đến thu nhập của người kiểm thử.
Hà Nội khoảng 15-20 triệu đồng/tháng
Hồ Chí Minh tối thiểu khoảng 14 triệu đồng/tháng Các tỉnh thành khác trung bình từ 8-25 triệu/tháng
Bảng 1.2 Mức lương Tester theo vùng
Tester có thể mở rộng sự nghiệp trong nhiều lĩnh vực công nghệ thông tin Dưới đây là một số nghề nghiệp tiềm năng cho tester trong quá trình phát triển nghề nghiệp của mình.
1 Test Automation Engineer: Tester có thể trở thành một Test Automation
Kỹ sư tự động hóa kiểm thử, hay Test Automation Engineer, là người chịu trách nhiệm phát triển các kịch bản tự động hóa nhằm kiểm tra phần mềm Để thực hiện công việc này hiệu quả, họ cần có kiến thức vững về lập trình cũng như sử dụng thành thạo các công cụ tự động hóa kiểm thử phần mềm.
2 Quality Assurance Manager: Tester có thể trở thành một Quality Assurance
Quản lý chất lượng phần mềm là vai trò quan trọng, yêu cầu người quản lý không chỉ có kỹ năng quản lý dự án mà còn cần kinh nghiệm trong việc đào tạo và lãnh đạo đội ngũ kiểm thử Quality Assurance Manager đảm bảo quy trình kiểm thử diễn ra hiệu quả, từ đó nâng cao chất lượng sản phẩm.
3 Technical Support Engineer: Tester có thể trở thành một Technical Support
Engineer, người hỗ trợ khách hàng trong việc sử dụng sản phẩm phần mềm
Technical Support Engineer cần có kiến thức về phần mềm và kỹ năng giao tiếp tốt để giải quyết các vấn đề của khách hàng
4 Software Developer: Tester có thể học thêm về lập trình và trở thành một
A software developer, also known as a software engineer, is responsible for creating and maintaining software applications A tester with expertise in software testing can effectively apply their knowledge to enhance the software development process.
5 Busintess Analyst: Tester có thể trở thành một Business Analyst, người phân tích yêu cầu khách hàng và đưa ra giải pháp kỹ thuật để giải quyết các vấn đề kinh doanh Business Analyst cần có các kỹ năng phân tích và giao tiếp tốt
CƠ SỞ LÝ THUYẾT VỀ KIỂM THỬ PHẦN MỀM
Các loại kiểm thử phần mềm
Kiểm thử thủ công là phương pháp kiểm thử phần mềm mà trong đó người kiểm thử thực hiện các trường hợp kiểm thử mà không cần sử dụng công cụ tự động Mục tiêu chính của kiểm thử thủ công là phát hiện lỗi, sự cố và các vấn đề trong ứng dụng phần mềm.
Kiểm thử tự động là quy trình kiểm thử phần mềm thông qua việc sử dụng công cụ và phần mềm tự động, thay vì thực hiện kiểm thử thủ công Phương pháp này không chỉ nâng cao hiệu quả kiểm thử mà còn tiết kiệm thời gian đáng kể Kiểm thử tự động đặc biệt hữu ích cho việc chạy các kịch bản kiểm thử lặp đi lặp lại và các tác vụ kiểm thử khác khó thực hiện.
Phương pháp kiểm thử phần mềm
Kiểm thử hộp đen (Black Box Testing) là phương pháp kiểm thử phần mềm tập trung vào các yêu cầu của khách hàng mà không cần hiểu biết về cấu trúc bên trong hay lập trình Người kiểm thử sẽ chỉ quan tâm đến kết quả đầu ra của phần mềm, nhằm xác định xem phần mềm có hoạt động đúng theo các yêu cầu đã được đặt ra hay không Trong quá trình kiểm thử, người kiểm tra tương tác với giao diện người dùng bằng cách cung cấp đầu vào và kiểm tra đầu ra, mà không cần biết cách thức hoạt động của các đầu vào đó.
Kiểm thử hộp trắng là phương pháp kiểm thử phần mềm dựa trên cấu trúc nội bộ của phần mềm, yêu cầu người kiểm thử có kiến thức sâu về phần mềm Phương pháp này tập trung vào việc kiểm tra mã nguồn, các thuật toán, dòng lệnh, điều kiện lệnh, điểm dừng chương trình và điểm điều kiện Các kỹ thuật kiểm thử hộp trắng bao gồm kiểm thử đường dẫn, kiểm thử điều kiện, kiểm thử kiểm soát dòng lệnh, kiểm thử dữ liệu đường dẫn và kiểm thử kiểm soát lỗi.
Kiểm thử hộp xám là phương pháp kiểm thử phần mềm kết hợp giữa kiểm thử hộp đen và hộp trắng Trong phương pháp này, kỹ thuật viên kiểm thử có một số thông tin về cấu trúc bên trong phần mềm, nhưng không đầy đủ như trong kiểm thử hộp trắng Họ thường có quyền truy cập vào tài liệu thiết kế, mã nguồn và cấu trúc dữ liệu của phần mềm để kiểm tra các chức năng, hoạt động và điều kiện Tuy nhiên, họ không được phép thay đổi mã nguồn hay cấu trúc bên trong của phần mềm.
Các cấp độ kiểm thử phần mềm
Unit Testing là phương pháp kiểm thử phần mềm, trong đó các thành phần riêng lẻ của ứng dụng được kiểm tra độc lập, tách biệt với toàn bộ hệ thống.
Unit là thành phần nhỏ nhất có thể kiểm tra, bao gồm các hàm, thủ tục, lớp và phương thức Kiểm thử đơn vị thường được thực hiện bởi lập trình viên.
Kiểm thử tích hợp (integration testing) là một phương pháp kiểm thử phần mềm, trong đó các thành phần hoặc mô-đun của phần mềm được kết hợp và kiểm tra nhằm đảm bảo chúng hoạt động chính xác khi được tích hợp với nhau.
System testing là giai đoạn kiểm tra sản phẩm đã hoàn chỉnh và tích hợp, diễn ra sau Integration test và Unit test Đây là phương pháp kiểm thử toàn bộ hệ thống, từ đầu đến cuối, nhằm đảm bảo hệ thống hoạt động chính xác và đáp ứng các yêu cầu chức năng và phi chức năng đã được khách hàng xác định trước.
Kiểm thử chấp nhận (Acceptance testing) là phương pháp đánh giá phần mềm nhằm xác định xem sản phẩm có đáp ứng yêu cầu của khách hàng hay không Mục tiêu chính của kiểm thử chấp nhận là đảm bảo rằng phần mềm được chấp nhận và sẵn sàng triển khai cho người dùng.
Giới thiệu công cụ kiểm thử tự động Selenium
Selenium là công cụ mã nguồn mở phổ biến cho kiểm thử tự động ứng dụng web, cho phép tạo và chạy kịch bản kiểm thử để kiểm tra tính năng, tương tác và hiệu suất trên nhiều trình duyệt Hỗ trợ nhiều ngôn ngữ lập trình như Java, Python, C#, Ruby, Selenium giúp tích hợp kiểm thử tự động vào quy trình phát triển một cách dễ dàng.
Các thành phần chính của Selenium bao gồm:
Selenium WebDriver là thành phần quan trọng nhất của Selenium, cho phép bạn điều khiển trình duyệt web thông qua mã lập trình Nó hỗ trợ tương tác với các phần tử trên trang web, bao gồm nhập liệu, thực hiện các hành động như click, gửi biểu mẫu và kiểm tra thông tin, cùng nhiều tương tác khác.
Selenium IDE là một công cụ ghi lại và phát lại các hoạt động trên trình duyệt, lý tưởng cho việc kiểm tra nhanh và tạo kịch bản đơn giản Mặc dù không mạnh mẽ như WebDriver, Selenium IDE vẫn là lựa chọn tuyệt vời cho những ai cần thực hiện kiểm tra nhanh chóng.
Selenium Grid là công cụ hỗ trợ kiểm thử song song trên nhiều trình duyệt và hệ điều hành khác nhau, giúp tối ưu hóa quá trình kiểm thử đa nền tảng và đa trình duyệt.
Selenium là công cụ tự động hóa thao tác trình duyệt web, cho phép kiểm thử viên thực hiện các kịch bản kiểm thử phức tạp một cách tự động, từ đó đảm bảo tính ổn định và chất lượng của ứng dụng web trong quá trình phát triển Để bắt đầu với Selenium, bạn cần cài đặt thư viện phù hợp với ngôn ngữ lập trình của mình và tìm hiểu cách viết mã kiểm thử bằng Selenium WebDriver Phương pháp này giúp tạo ra các kịch bản kiểm thử tùy chỉnh, linh hoạt theo yêu cầu của ứng dụng web mà bạn đang làm việc.
Hình 2.1 Giới thiệu về Selenium
2.6.1 Giới thiệu về Selenium WebDriver:
Selenium WebDriver là thành phần chính của Selenium, hỗ trợ tạo và thực hiện kịch bản kiểm thử tự động trên trình duyệt web Nó cung cấp giao diện lập trình để tương tác với các phần tử trên trang, cho phép thực hiện các thao tác như click, nhập liệu, và kiểm tra thông tin Dưới đây là những ưu nhược điểm của Selenium WebDriver.
2.6.2 Ưu điểm của Selenium WebDriver:
- Đa nền tảng: Selenium WebDriver hỗ trợ nhiều trình duyệt như Chrome,
Firefox, Safari, Edge và Opera, trên nhiều hệ điều hành khác nhau Điều này cho phép bạn kiểm thử đa nền tảng một cách hiệu quả
Selenium WebDriver hỗ trợ một loạt ngôn ngữ lập trình như Java, Python, C#, Ruby và JavaScript, tạo điều kiện thuận lợi cho các nhà phát triển và kiểm thử viên làm việc với ngôn ngữ mà họ quen thuộc nhất.
Selenium WebDriver cung cấp khả năng tương tác mạnh mẽ và linh hoạt với các phần tử trên trang web, cho phép thực hiện hầu hết các thao tác mà người dùng có thể thực hiện trên trình duyệt.
Kiểm thử đa dạng với Selenium WebDriver cho phép bạn kiểm tra các tình huống phức tạp và thực hiện kiểm tra tích hợp liên quan đến sự tương tác giữa các thành phần trên trang web.
Selenium là một dự án mã nguồn mở nổi bật với cộng đồng lớn, cung cấp nhiều tài liệu hướng dẫn, ví dụ và giải pháp sẵn có Sự hỗ trợ từ cộng đồng giúp người dùng dễ dàng tìm kiếm thông tin khi gặp vấn đề.
2.6.3 Nhược điểm của Selenium WebDriver:
Selenium WebDriver có khả năng tùy chỉnh cao, điều này mang lại nhiều lợi ích, nhưng cũng có thể khiến việc học và triển khai trở nên phức tạp đối với người mới bắt đầu.
Bảo trì kịch bản kiểm thử là điều cần thiết trong bối cảnh ứng dụng web liên tục thay đổi Việc cập nhật thường xuyên giúp đảm bảo rằng các kịch bản này vẫn hoạt động chính xác và hiệu quả.
Tốc độ thực thi của kiểm thử tự động bằng Selenium WebDriver có thể chậm hơn so với kiểm thử thủ công hoặc các công cụ kiểm thử khác.
Selenium WebDriver phụ thuộc vào giao diện người dùng (UI) để thực hiện kiểm thử, do đó, bất kỳ sự thay đổi nào trong giao diện đều yêu cầu điều chỉnh các kịch bản kiểm thử tương ứng.
Selenium WebDriver là công cụ kiểm thử tự động mạnh mẽ cho ứng dụng web, nhưng yêu cầu người dùng phải có kiến thức lập trình và khả năng thao tác với các thành phần trên trang web.
PHÂN TÍCH HỆ THỐNG QUẢN LÝ NHÂN SỰ OrangeHRM25 3.1 Tổng quan về dự án
Sơ đồ Use Case tổng quát
Các tác nhân chính của hệ thống bao gồm:
- ESS-Employee Self Service: Người dùng (nhân viên)
Hình 3.2 Use Case Tổng Quát
Trong giai đoạn này, hệ thống tập trung vào việc phát triển các chức năng liên quan đến Admin, người sử dụng chính của hệ thống Tôi đã tham gia vào dự án, lập kế hoạch và thực hiện kiểm thử cho chức năng "Quản lý tài khoản người dùng" thuộc Use Case "Quản trị hệ thống".
Dưới đây là nội dung phân tích nghiệp vụ chi tiết cho Use Case “Quản trị hệ thống”
Vai trò của từng tác nhân
Admin có thể thực hiện toàn quyền đối với hệ thống, các chức năng mà Admin có thể thực hiện bao gồm:
- Quản lý thông tin nhân viên
- Quản lý vị trí công việc
- Bảo mật và quản lý tài khoản người dùng
- Quản lý thông tin nội bộ
ESS (Employee Self-Service) là một tính năng cho phép nhân viên tự tương tác và thực hiện nhiều chức năng tự phục vụ Trong Orange HRM, nhân viên có thể thực hiện các chức năng như truy cập thông tin cá nhân, yêu cầu nghỉ phép, cập nhật thông tin liên lạc và xem bảng lương một cách dễ dàng.
- Xem và cập nhật thông tin cá nhân
- Đăng ký và xem thông tin nghỉ phép
- Quản lý thời gian làm việc
- Xem và đánh giá hiệu suất
- Truy cập thông tin về chế độ phúc lợi
- Tạo yêu cầu bồi thường chi phí
- Xem thông báo và thông tin nội bộ
Bảng 3.1 Vai trò của các tác nhân
Workflow hệ thống
Hình 3.3 Workflow hệ thống OrangeHRM
Phân tích Use Case “Quản trị hệ thống”
3.3.1 Sơ đồ Use Case “Quản trị hệ thống”:
Hình 3.4 Use Case”Quản trị hệ thống”
Tham gia vào dự án, em tiến hành lập kế hoạch và thực hiện kiểm thử cho Use Case
“Quản lý tài khoản người dùng”
Dưới đây là nội dung mô tả chi tiết cho Use Case “Quản lý tài khoản người dùng”
3.3.2 Đặc tả yêu cầu cho Use Case “Quản lý tài khoản người dùng”:
Tác nhân: Admin Điều kiện tiên quyết: Đăng nhập vào hệ thống thành công
Mô tả khái quát: Tính năng này cho phép Quản trị viên Nhân sự Users
Quản lý người dùng trong OrangeHRM được thực hiện thông qua việc tạo thông tin đăng nhập và xác định quyền hạn dựa trên loại người dùng, như Quản trị viên hoặc ESS Để hỗ trợ người quản trị, OrangeHRM cung cấp các tùy chọn bộ lọc để tìm kiếm người dùng khi cần thiết, đặc biệt hữu ích cho các tổ chức có số lượng lớn nhân viên.
Khi HR Admin thiết lập lại bộ lọc thông tin tài khoản người dùng, họ cần truy cập vào Admin >> User Management >> Users, nhập thông tin vào bộ lọc và nhấn “Reset” Sau đó, bộ lọc sẽ trở về mặc định và danh sách người dùng sẽ được thiết lập lại như ban đầu.
Khi HR Admin thêm user hệ thống bằng cách truy cập Admin>>User Management>>Users và nhấn “Add”, màn hình như Hình 3.5 sẽ hiện ra
Khi Quản trị viên Nhân sự nhấn nút “Save” sau khi thêm các trường thông tin, dữ liệu Người dùng sẽ được lưu vào cơ sở dữ liệu và hiển thị trong danh sách Người dùng, như thể hiện trong Hình 3.6.
Khi HR Admin muốn thêm người dùng mới, họ cần truy cập vào phần Quản lý Người dùng trong Admin và nhấp vào "Thêm" Ngay sau đó, một màn hình sẽ xuất hiện như hình 3.5.
Khi HR Admin nhấn "Cancel" sau khi đã thêm các trường, thông tin sẽ không được lưu vào cơ sở dữ liệu và người dùng sẽ không xuất hiện trong danh sách người dùng, như thể hiện trong hình 3.6.
Khi HR Admin lọc một user hệ thống bằng cách truy cập Admin >> User Management Sau đó sẽ xuất hiện phần lọc như trong Hình 3.7
Khi HR Admin nhấp vào "Search" sau khi đã nhập trường (các) dữ liệu Sau đó, danh sách Người dùng sẽ hiển thị theo điều kiện lọc
Khi HR Admin nhấp vào "Edit" bên cạnh User Records Sau đó, một màn hình như hình 3.8 sẽ xuất hiện
Khi HR Admin nhấn "Save" sau khi thêm các trường, thông tin người dùng sẽ được lưu trữ vào cơ sở dữ liệu (Xem thêm Trường bộ lọc người dùng ở trang tiếp theo).
Khi HR Admin nhấp vào "Edit" bên cạnh User Records Sau đó, một màn hình như hình 3.8 sẽ xuất hiện
Khi HR Admin nhấp vào "Cancel" sau khi đã thêm các trường Sau đó, thông tin Người dùng sẽ KHÔNG được lưu vào cơ sở dữ liệu
Khi HR Admin nhấp vào ô đánh dấu bên cạnh bản ghi Người dùng và/hoặc nhấp vào "Delete" Sau đó, có thể xóa nhiều mục cùng một lúc
Khi HR Admin thực hiện thao tác sắp xếp (theo thứ tự A-Z hoặc Z-A) cho các cột ‘Username’, ‘User Role’, ‘Employee Name’ và ‘User Role’ trong danh sách Người dùng, hệ thống sẽ tự động cập nhật danh sách theo tiêu chí sắp xếp đã chọn.
Khi nhân viên HR Admin nhấp vào số trang, hệ thống sẽ chuyển hướng đến trang chuyên biệt cho bản ghi người dùng, hiển thị 50 bản ghi mỗi trang Danh sách bản ghi người dùng sẽ được cập nhật theo từng trang.
Hình 3.6 Danh sách người dùng hệ thống
Hình 3.8 Chỉnh sửa người dùng
Để tạo đăng nhập người dùng, PHẢI nhập thông tin sau:
Chọn User Role (Vai trò Người dùng) mong muốn từ các tùy chọn
- Danh sách thả xuống (ESS/Admin)
Admin - cho phép người dùng quản lý toàn bộ hệ thống bao gồm cả cấu hình
ESS - cho phép người dùng quản lý thông tin tài khoản của riêng họ
Giá trị mặc định: (Placeholder) “ Select ”
Mục được chọn sẽ chuyển sang màu xám từ danh sách thả xuống
Giá trị mặc định: (Placeholder) Type for hints…
Tên người dùng cần phải là duy nhất cho từng nhân viên và có độ dài từ 5 đến 40 ký tự.
Xác thực tên người dùng: Một thông báo màu đỏ sẽ xuất hiện bên dưới trường nếu đầu vào nằm ngoài phạm vi như sau:
< 5: “ Nên có ít nhất 5 ký tự”
> 40: “ Không nên vượt quá 40 ký tự”
Tên người dùng đã tồn tại: “Đã tồn tại”
Người dùng có thể chọn trạng thái là: Enable/Disable (Bật/Tắt) từ danh sách thả xuống
Giá trị mặc định: (Placeholder) “ Select –”
Mục được chọn sẽ chuyển sang màu xám từ danh sách thả xuống Trạng thái phải được đặt là “Enable” để người dùng mới đăng nhập
Người dùng có thể nhập mật khẩu mong muốn Tuy nhiên, mật khẩu nên bao gồm kí tự viết thường, kí tự viết hoa, kí tự và chữ số
Bảng 3.2 Bảng phân tích UC “Quản lý tài khoản người dùng”
Để lọc đăng nhập người dùng đăng nhập, cần phải nhập thông tin sau:
Bảng 3.3 Bảng phân tích UC “Quản lý tài khoàn người dùng”2
Để tạo thông tin đăng nhập người dùng, trước tiên cần lập danh sách nhân viên trong Mô-đun PIM Bên cạnh đó, thông tin đăng nhập cũng có thể được tạo ra khi thêm nhân viên trực tiếp trong Mô-đun PIM.
Xác thực mật khẩu : Một thông báo màu đỏ sẽ xuất hiện bên dưới trường nếu đầu vào nằm ngoài phạm vi như sau:
< 7 ký tự: “ Should have at least 7 characters”
> 64 ký tự: “ Should not exceed 64 characters”
Thiếu ký tự số: “ Your password must contain minimum 1 number” Thiếu ký tự chữ thường: “ Your password must contain minimum 1 lower-case letter”
Có ký tự “khoảng trắng” hoặc “trống” trong mật khẩu: “ Your password should not contain spaces”
Nhập lại mật khẩu để tránh sai sót
Xác nhận xác thực mật khẩu: Một thông báo màu đỏ sẽ xuất hiện bên dưới trường nếu đầu vào nằm ngoài phạm vi như sau:
Không bằng giá trị Mật khẩu: “Mật khẩu không khớp”
Username Tìm kiếm theo tên người dùng tương ứng
User Role Tìm kiếm theo các vai trò người dùng tương ứng
Employee Name Tìm kiếm theo tên nhân viên Hệ thống sẽ tự động đề xuất các tên phù hợp với ID nhân viên khi người dùng bắt đầu nhập
Status Tìm kiếm theo trạng thái của người dùng (Enabled/Disabled)
THỰC HIỆN KIỂM THỬ HỆ THỐNG QUẢN LÝ NHÂN SỰ OrangeHRM
Lập kế hoạch kiểm thử
Hình 4.1 Sơ đồ lập kế hoạch kiểm thử
4.1.1 Xác định mục tiêu kiểm thử:
Chức năng quản lý người dùng trong hệ thống quản lý nhân sự OrangeHRM đóng vai trò quan trọng trong việc tối ưu hóa quy trình quản lý nhân sự Mục tiêu của việc kiểm thử chức năng này là đảm bảo tính chính xác, ổn định và khả năng tương thích với yêu cầu của người dùng Việc tập trung vào những mục tiêu này giúp nâng cao hiệu quả và sự hài lòng của người dùng trong quá trình sử dụng hệ thống.
1 Xác minh tính chính xác và toàn vẹn dữ liệu: Đảm bảo rằng thông tin của người dùng được lưu trữ, cập nhật và hiển thị một cách chính xác trong hệ thống, bao gồm thông tin cá nhân, vị trí công việc, quyền hạn và chi tiết liên hệ
2 Kiểm tra quyền truy cập và ủy quyền: Xác định xem người dùng có thể truy cập các tính năng và dữ liệu nào trong hệ thống dựa trên vai trò và quyền hạn của họ Đảm bảo rằng việc ủy quyền và hạn chế truy cập được thực hiện chính xác
3 Kiểm thử chức năng tạo và quản lý tài khoản: Thực hiện các kịch bản để kiểm tra khả năng tạo mới, sửa đổi, xóa và khóa tài khoản người dùng Đảm bảo rằng các hành động này được thực hiện đúng cách và dữ liệu liên quan được cập nhật một cách chính xác
4 Kiểm thử chức năng đặt lại mật khẩu: Đảm bảo rằng người dùng có khả năng yêu cầu và thực hiện việc đặt lại mật khẩu khi cần Kiểm tra tính bảo mật trong việc đặt lại mật khẩu và đảm bảo rằng mật khẩu mới được áp dụng đúng cách
5 Kiểm thử xử lý lỗi và thông báo: Kiểm tra xem hệ thống có xử lý đúng các tình huống lỗi, ví dụ như nhập sai thông tin, không có quyền truy cập, hay tài khoản không tồn tại Đảm bảo rằng thông báo lỗi được hiển thị một cách rõ ràng và hữu ích cho người dùng
6 Kiểm thử tương tác giao diện người dùng: Đảm bảo tính thân thiện và dễ sử dụng của giao diện quản lý tài khoản người dùng Kiểm tra việc cập nhật dữ liệu, thực hiện hành động và thay đổi quyền truy cập thông qua giao diện
4.1.2 Xác định phạm vi kiểm thử:
Phạm vi kiểm thử dự án tập trung vào chức năng “Quản lý tài khoản người dùng”/
Quá trình kiểm thử "Quản lý Người dùng" trong module "Admin" của hệ thống nhằm đảm bảo tính chính xác, hiệu quả và bảo mật cho các chức năng quản lý tài khoản người dùng Mục tiêu là đáp ứng các yêu cầu và tiêu chuẩn chất lượng, từ đó đảm bảo tính hoàn thiện, an toàn và thân thiện với người dùng Kiểm thử này không chỉ góp phần nâng cao chất lượng của chức năng mà còn cải thiện chất lượng tổng thể của hệ thống OrangeHRM.
4.1.3 Xác định chiến lược kiểm thử:
Chiến lược kiểm thử của dự án sẽ kết hợp kiểm thử thủ công và tự động nhằm đảm bảo tính chính xác, hiệu quả và đáng tin cậy cho hệ thống OrangeHRM Sự kết hợp này tận dụng ưu điểm của cả hai phương pháp, đảm bảo quá trình kiểm thử đáp ứng các tiêu chuẩn chất lượng cao.
Bằng cách kết hợp kiểm thử thủ công và kiểm thử tự động, chúng ta tạo ra một chiến lược kiểm thử toàn diện Kiểm thử thủ công đảm bảo rằng các khía cạnh phụ thuộc vào sự phán đoán và kiểm tra chi tiết được đánh giá cẩn thận, trong khi kiểm thử tự động giúp thực hiện nhanh chóng và liên tục các tình huống lặp đi lặp lại và yêu cầu kiểm thử thường xuyên.
4.1.4 Xác định môi trường kiểm thử:
Hệ điều hành (OS): Windows 10
Trình duyệt web: Trình duyệt Chorm phiên bản 115.0.5790.171 (Phiên bản Chính thức) (64 bit)
Môi trường mạng: Đảm bảo rằng tốc độ và khả năng kết nối Internet ổn định trong môi trường kiểm thử
Truy cập vào Google sheet:
- Viết Test Cases Manual và thực hiện kiểm thử
Hình 4.2 Viết Test Cases Manual
Sử dụng công cụ Selenium: Viết Testcase Automation
Hình 4.3 Viết Test Cases Automation
Truy cập vào trang web: https://opensourcedemo.orangehrmlive.com/web/index.php/auth/login
Tài khoản để truy cập trang web bao gồm:
Bảng 4.1 Tài khoản sử dụng 4.1.6 Xác định tiêu chí kiểm thử:
Tiêu chí bắt đầu kiểm thử Tiêu chí hoàn thành kiểm thử
+ Các nhiệm vụ phải được hoàn thành
+ Đảm bảo rằng tài liệu yêu cầu và thiết kế chi tiết đã được chuẩn bị đầy đủ và đúng yêu cầu trước khi bắt đầu kiểm thử
+ Thiết lập môi trường kiểm thử, đảm bảo các công cụ kiểm thử đã được cài đặt và cấu hình đúng cách
+ Cập nhật dữ liệu kiểm thử đầy đủ và đúng yêu cầu
+ Kịch Bản Kiểm Thử Được Chuẩn Bị
+ Hoàn Thành Kịch Bản Kiểm Thử
+ Ghi lại kết quả kiểm thử chi tiết, bao gồm cả kết quả thành công và lỗi
+ Báo Cáo Kết Quả Kiểm Thử
Bảng 4.2 Danh sách tiêu chí của kiểm thử
Thiết kế Test Cases
4.2.1 Các bước để tạo Test Cases Để xây dựng những bộ Test Cases đầy đủ và hữu ích nhất, QA phải thiết kế Test Cases dựa trên quy trình sau đây:
- Nghiên cứu yêu cầu khách hàng một cách cẩn thận
- Tạo bảng thiết kế kiểm thử bằng cách áp dụng các kỹ thuật thiết kế kiểm thử phù hợp
4.2.2 Cấu trúc của một Test Cases
Hiện nay, việc tạo ra một test case hoàn chỉnh phụ thuộc vào nhiều yếu tố, bao gồm công cụ sử dụng và mẫu test case Trong dự án mà tôi tham gia, chúng tôi áp dụng mẫu test case cụ thể để đảm bảo tính chính xác và hiệu quả trong quá trình kiểm thử.
- Test case ID : Số thứ tự của test case
- Priority: Thiết lập mức độ ưu tiên (high/medium/low)
- Medium(P2): Chức năng trung bình
Prerequisites/Pre-condition: Bất kì những điều kiện kiên quyết nào phải được đảm bảo trước khi thực hiện kiểm thử
- Test view point: Quan điểm kiểm thử
- Test data: Dữ liệu để tiến hành kiểm thử
- Steps : Quy trình từng bước để thực hiện kiểm thử
- Expected result: Hành vi mong đợi của một ca kiểm thử
- Test Result: Kết quả kiểm thử (Pass/Fail/Pending/NA/Block)
- Executed date: Thời điểm thực thi kiểm thử
- Executed by: Người thực hiện kiểm thử
- Test environment: Môi trường thực hiện kiểm thử
- Note: Chức cứ, ID lỗi, lý do, thực tế
Dưới đây là bảng thống kê số lượng test Cases được thiết kế, tương ứng với mỗi màn hình và chức năng yêu cầu thực hiện
1 Admin/User Managerment Add Users 9
2 Admin/User Managerment Edit Users 14
3 Admin/User Managerment Delete Users 4
4 Admin/User Managerment Search Users 7
5 Admin/User Managerment Reset user search filter 2
5 Admin/User Managerment User Interface Integration
Bảng 4.3 Thống kê số Test Case Manual
Nhiệm vụ của việc thực hiện kiểm thử
- Thực hiện kiểm thử theo kế hoạch
- Log bug và ghi chú lại khi có các testcase thực hiện không thành công
- Kiểm tra lại (Retest) sau khi các bug đã được fix
- Theo dõi và đóng bug
Trong giai đoạn này, tôi sẽ thực hiện kiểm thử thủ công dựa trên các kế hoạch và kịch bản kiểm thử đã được chuẩn bị, tập trung vào từng chức năng cụ thể.
1 Chức năng “Đặt lại bộ lọc tìm kiếm người dùng”
2 Chức năng “Chỉnh sửa tài khoản người dùng”
3 Chức năng “Xóa tài khoản người dùng”:
4 Chức năng “Thêm tài khoản người dùng”
5 Chức năng “Tìm kiếm tài khoản người dùng”
6 Chức năng “Tích hợp giao diện người dùng”
(Thông tin chi tiết về các test case được trình bày ở phần phu lục)
Quy trình kiểm thử phần mềm bằng công cụ Selenium
4.3.1 Giới thiệu về công cụ kiểm thử Selenium:
Selenium là công cụ mã nguồn mở chuyên dụng cho tự động hóa kiểm thử và thao tác trên ứng dụng web Nó cho phép lập trình viên điều khiển các trình duyệt như Google Chrome, Mozilla Firefox và Microsoft Edge, thực hiện các hành động như điều hướng trang, điền thông tin vào mẫu đăng nhập, nhấp chuột, và kiểm tra dữ liệu hiển thị.
Selenium là một công cụ tự động hóa web được phát triển bằng nhiều ngôn ngữ lập trình phổ biến như Java, Python, C#, và Ruby Một phần quan trọng của Selenium là WebDriver, thành phần chính cho phép truy cập và tương tác với các trình duyệt web WebDriver mô phỏng hành động của người dùng, giúp tự động hóa các tác vụ phức tạp trên trang web một cách hiệu quả.
Selenium là công cụ mạnh mẽ cho kiểm thử chức năng và kiểm thử giao diện người dùng trên ứng dụng web Nó thường được áp dụng trong quy trình kiểm thử tự động nhằm đảm bảo rằng các tính năng và trang web hoạt động chính xác sau khi có thay đổi trong mã nguồn.
4.3.2 Các bước cài đặt công cụ:
Bước 1: Cài đặt Python: ( https://www.python.org/downloads/ )
Bước 2: Cài đặt pip, trình quản lý gói cho Python, giúp dễ dàng cài đặt các thư viện và công cụ Pip thường đã được cài sẵn cùng với Python, nhưng nếu cần cài đặt hoặc cập nhật pip, bạn có thể thực hiện theo hướng dẫn sau.
Mở command prompt và chạy lệnh: python -m ensurepip default-pip
Bước 3: Cài đặt Selenium: Sử dụng pip để cài đặt thư viện Selenium Trong terminal hoặc command prompt, chạy lệnh sau: pip install selenium
Bước 4: Tải Chorm Driver: Truy cập trang chính thức của Chrome Driver (https://sites.google.com/chromium.org/driver/)để tải phiên bản phù hợp của Chrome Driver
Để sử dụng Chrome Driver một cách thuận tiện, bạn có thể thêm đường dẫn đến thư mục chứa Chrome Driver vào biến môi trường PATH của hệ thống.
- Nhấn Win + S, nhập "environment variables" và chọn "Edit the system environment variables"
- Nhấn nút "Environment Variables " ở dưới cùng
- Trong phần "System variables", tìm biến có tên "Path", chọn "Edit".\
- Thêm đường dẫn đến thư mục chứa Chrome Driver vào danh sách các đường dẫn Ví dụ: C:\path\to\chrome\driver\directory
Bước 6: Kiểm tra cài đặt Selenium và Chrome Driver:
Trong terminal hoặc command prompt, nhập lệnh sau để kiểm tra việc cài đặt của Selenium: pip freeze
Với những bước trên, chúng ta sẽ cài đặt Selenium và Chrome Driver để bắt đầu viết mã kiểm thử tự động trên trình duyệt
1 Admin/User Managerment Add Users 1
2 Admin/User Managerment Edit Users 1
3 Admin/User Managerment Delete Users 1
4 Admin/User Managerment Search Users 1
Bảng 4.4 Thống kê số Test Cases Automation
Trong giai đoạn này, tôi sẽ thực hiện kiểm thử tự động dựa trên các kế hoạch và kịch bản kiểm thử đã được chuẩn bị, tập trung vào từng chức năng cụ thể.
1 Chức năng “Chỉnh sửa tài khoản người dùng”
2 Chức năng “Xóa tài khoản người dùng”:
3 Chức năng “Thêm tài khoản người dùng”
4 Chức năng “Tìm kiếm tài khoản người dùng”
(Thông tin chi tiết về các test case được trình bày ở phần phu lục)
Thống kê số lượng Test Case
Bảng 4.5 Bảng tổng hợp số Test Cases
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trong thời gian thực tập tại TMA Solutions với vai trò Tester, tôi đã thu nhận được nhiều kiến thức quý báu về kiểm thử phần mềm và đảm bảo chất lượng Tôi đã áp dụng lý thuyết học được vào các tình huống và dự án thực tế, đồng thời tìm hiểu về các phương pháp kiểm thử khác nhau như kiểm thử thủ công và kiểm thử tự động Qua đó, tôi cũng đã tích lũy kinh nghiệm thực tế với các công cụ và khung thử nghiệm.
Em đã không chỉ tiếp xúc với kiến thức chuyên môn về kiểm thử phần mềm và đảm bảo chất lượng, mà còn phát triển kỹ năng mềm quan trọng trong việc trình bày thông tin và thuyết trình Kỹ năng trình bày trước đám đông là một trong những khía cạnh quan trọng mà em đã học được.
Ngoài ra, em đã cải thiện kỹ năng mềm liên quan đến việc trình bày thông qua việc thực hiện các slide và email chuyên nghiệp
Thời gian thực tập không chỉ cung cấp kiến thức chuyên môn về kiểm thử phần mềm mà còn giúp phát triển các kỹ năng mềm quan trọng như trình bày thông tin và thuyết trình Những kỹ năng này sẽ tiếp tục đóng vai trò quan trọng trong sự nghiệp của tôi.
Trong thời gian thực tập 2 tháng rưỡi tại TMA Solutions, em nhận thấy thời gian hạn chế là một trong những thách thức lớn nhất Dù đã nỗ lực học hỏi và tìm hiểu để thực hiện đề tài, nhưng thời gian ít ỏi đã ảnh hưởng đến khả năng áp dụng kiến thức vào thực tiễn Việc làm quen với các công cụ và quy trình kiểm thử cần thời gian để hiểu rõ và tạo ra giá trị cho dự án, dẫn đến việc báo cáo không thể tránh khỏi một số thiếu sót.
Nhờ tích lũy kiến thức từ học tập và thực tập tại doanh nghiệp, tôi đã xác định rõ ràng hơn hướng đi cho sự nghiệp tương lai Sau kỳ thực tập, tôi sẽ tiếp tục rèn luyện và củng cố những gì đã học Đồng thời, tôi cũng mong muốn nâng cao kỹ năng và tìm hiểu thêm về lĩnh vực Tester để mở ra nhiều cơ hội việc làm tốt hơn trong tương lai.
Hiện tại, kiến thức và kỹ năng của tôi về Automation Testing chỉ ở mức cơ bản Tôi mong muốn học hỏi và tìm hiểu thêm để nâng cao trình độ Việc mở rộng kiến thức sẽ giúp tôi thành thạo hơn trong Automation Testing và mang lại lợi ích cho công việc trong tương lai.