Hy vọng rằng thông qua báocáo này, bạn đọc sẽ có cái nhìn toàn diện và sâu sắc về môn học quan trọng - Công nghệPhần mềm.Với mục tiêu là để hiểu rõ hơn về các phương pháp kiểm thử, phát
TEST AUTOMATION
Khái niệm
Trong lĩnh vực kiểm thử phần mềm, thì kiểm thử tự động hay còn gọi là Automation testing đóng một vai trò quan trọng góp phần nâng cao năng suất kiểm thử, giảm thiểu lỗi cũng như sự nhàm chán với việc kiểm thử bằng tay trong một thời gian dài hoặc lặp đi lặp lại.
Kiểm thử tự động là quá trình dùng phần mềm để thực hiện tự động các bước thực hiện kiểm thử Phần mềm kiểm thử tự động được sử dụng rộng rãi hiện nay là Automation Testing Tool Các phần mềm kiểm thử tự động phổ biến bao gồm:
SOAPUI - Web Services Testing (SmartBear)
Ưu, nhược điểm của Automation Testing so với Manual Testing
Ưu điểm: Độ tin cậy cao: công cụ kiểm thử tự động có sự ổn định cao hơn so với con người, đặc biệt trong trường hợp nhiều test cases, nên độ tin cậy cao hơn so với kiểm thử thủ công.
Khả năng lặp: công cụ kiểm thử tự động ra đời là để giúp cho các tester không phải lặp đi lặp lại các thao tác (ví dụ: nhập dữ liệu, click, check kết quả…) một cách nhàm chán với độ tin cậy và ổn định cao.
Khả năng tái sử dụng: với một bộ kiểm thử tự động, người ta có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau, đây được gọi là tính tái sử dụng.
Tốc độ cao: do thực thi bởi máy nên tốc độ của kiểm thử tự động nhanh hơn nhiều so với tốc độ của con người Nếu cần 5 phú để thực thi một test case một cách thủ công thì có thể người ta chỉ cần khoảng 30s để thực thi một cách tự động.
Chi phí thấp: nếu áp dụng kiểm thử tự động đúng cách, người ta có thể tiết kiệm được nhiều chi phí, thời gian và nhân lực, do kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công, đồng thời nhân lực cần để thực thi và bảo trì scripts không nhiều.
Khả năng mở rộng và bảo trì kém: Trong cùng một dự án, việc mở rộng phạm vi của kiểm thử tự động khó khăn hơn nhiều so với kiểm thử thủ công Quá trình này đòi hỏi nhiều công việc, bao gồm gỡ lỗi, thay đổi dữ liệu đầu vào và cập nhật mã mới.
Khả năng bao phủ thấp: do khó mở rộng và đòi hỏi nhiều kỹ năng lập trình nên độ bao phủ của kiểm thử tự động thấp xét trên góc nhìn toàn dự án.
Mặc dù hiện nay có nhiều công cụ hỗ trợ kiểm thử tự động, nhưng chúng vẫn còn hạn chế Ngoài ra, nguồn nhân lực đủ trình độ để sử dụng thành thạo các công cụ này cũng khá khan hiếm, khiến cho việc ứng dụng kiểm thử tự động trên diện rộng gặp những khó khăn nhất định.
Để trở thành test automation tester thì bắt đầu từ đâu?
Một Automation Testing sẽ không design được đúng/đủ tất cả những cases mà mình cần nếu không nắm chắc những nội dung này, trong trường hợp bạn phải ôm xô cả vai trò của manual tester hoặc phải design testcase trước khi thực hiện scripting. Để trở thành một Automation Tester, trước tiên, bạn cần có những kiến thức nằm lòng về testing:
Types testing: Unit/Intergration/System/Sanity/Regression test/ là gì?
Testing Techniques: Phân tích giá trị biên/Phân vùng tương đương/Biểu đồ kết quả/Đoán lỗi/ là gì?
Nắm rõ về HTML và XPath để nhận dạng đúng test objects/elements mà mình cần thao tác.
Thành thạo ít nhất một ngôn ngữ lập trình thông dụng, hỗ trợ cho việc scripting trên test tools: Java/C#/Python/Ruby/JS/
Sử dụng thành thạo thư viện của Selenium WebDriver API bởi Selenium open source, dễ sử dụng, cộng đồng lớn.
Sử dụng thành thạo ít nhất 1 framework testing: Junit/TestNG/NUnit/ Từ đây sẽ giúp bạn rất nhiều trong việc build framework, hỗ trợ trong việc phân nhóm, quản lý testscript, report, prepare data/environment/browsers.
Tìm hiểu về software design pattern để build framework/common library
Sử dụng/build framework thành thạo từ Page Object Model pattern.
Kỹ năng về coding/IDE: Debug, coding convension, source version control (GIT, SVN, ), cách sử dụng IDE: Visual Studio, Eclipse, IntelliJ , làm việc với database
In automation testing, staying abreast of new technologies is crucial Essential tools include build tools like Maven and ANT, CI/CD tools like Jenkins, TeamCity, and CircleCI, cloud platforms like AWS, Saucelab, Browserstack, and Testingbot, big data tools like Hadoop, HBase, and Hive, and mobile testing tools like Appium.
Tầm quan trọng của automation testing trong thời kỳ công nghiệp 0 10 CHƯƠNG 2: WEBSITE quản lý công ty du lịch quốc tế
Cách mạng công nghiệp lần thứ tư đánh dấu kỷ nguyên vạn vật kết nối Internet Nó xảy ra dựa trên sự hội tụ của nhiều công nghệ trong đó có công nghệ cốt lõi có công nghệ thông tin với sự phát triển không ngừng của công nghệ Internet từ thời kỳ kết nối nội dung như email đến mạng xã hội, Internet vạn vật, Internet kết nối thiết bị máy móc kết nối quá trình vận hành của các nhà máy Ngoài công nghệ cốt lõi còn có sự hội tụ của công nghệ in 3D, công nghệ vật liệu tiên tiến, công nghệ lưu trữ…
Hiện nay, nền công nghiệp 4.0 đang phát triển mạnh mẽ, kéo theo sự phát triển của rất nhiều ngành nghề, đặc biệt là ngành công nghệ thông tin Do đó, yêu cầu về nhân lực trong mảng này cũng đòi hỏi cac ứng viên cần phải có kỹ năng tốt hơn nữa về lập trình, technical, các kỹ năng về automation
Nếu search trên các trang mạng tuyển dụng lớn như ITviec, Vietnamworks, LinkIn, Indeed, Dice, Monster, CareerBuilder … thì bạn sẽ thấy có vô vàn kết quả với các từ khóa tìm kiếm như:
Software Development Engineer in Test (SDET)
Nhu cầu tuyển dụng QA có kiến thức và kinh nghiệm về automation test đang rất lớn, cho thấy tiềm năng phát triển mạnh mẽ của automation test trong tương lai, không chỉ riêng với lĩnh vực kiểm thử mà còn với cả ngành công nghệ thông tin nói chung.
Phân tích và thiết kế website công ty du lịch quốc tếPhân tích và thiết kế website công ty du lịch quốc tếPhân tích và thiết kế website công ty du lịch quốc tế
CHƯƠNG 2: WEBSITE QUẢN LÝ CÔNG TY DU LỊCH QUỐC TẾ
1.Khảo sát và xác lập bài toán
-Một số công ty vẫn sử dụng Excel để quản lý mọi thông tin khiến việc nhập liệu rất mất thời gian.
-Những công ty hiện tại thì thường sử dụng những phần mềm cũ, không dành riêng cho ngành của lịch mà là quản lý bán hàng, dịch vụ nói chung nên: giao diện chưa thân thiện, các khâu nhập liệu và quản lý còn rườm rà, khó thao tác,…
-Những phần mềm này mang tính độc quyền nên để có thể cài đặt, nâng cấp, bảo trì rất khó khăn phải phụ thuốc rất nhiều vào nhà cung cấp.
-Phí duy trì hay bảo trì hệ thống cao, nhưng dung lượng lưu trữ dữ liệu cũng như số lượng tài khoản và thời gian hoạt động lại bị giới hạn nhiều.
-Các hệ thống hiện tại phổ biến ở Việt Nam có thể kể đến như TravelMaster, BIZApps,Tour Plus,ViSoft Travel,…
Hình 1: Phần mềm quản lý Tour :”Tourplus”
Hình 2: Phần mềm quản lý Tour :”TravelMaster”
-Ngành Của lịch cầu thiết yếu cần tạo ra phần mềm hệ thống riêng biệt giúp tối ưu quản lí và kiểm soát thông tin dễ dàng, thuận tiện hơn , giúp tiến độ xử lí công việc trở nên nhanh hơn.
1.2 Giới thiệu về hệ thống quản lí du lịch
-Có các chức năng cơ bản như nhập xuất dữ liệu, tra cứu thông tin khách hàng, thay đổi thông tin người dùng
-Quản lí nhân viên, thông tin của nhân viên ( bao gồm sđt, quê quán, năm sinh, tuổi, thông tin cá nhân, )
-Quản lí các tour du lịch, điểm đến, giá thành.
-Quản lý thông tin khách hàng giúp cho nhân viên tư vấn một cách dễ dàng hơn.
-Có chức năng riêng biệt cho từng người dùng (user) riêng.
1.3 Nhu cầu mà ngành hướng tới
-Kiểm soát chặt chẽ lượng khách tới du lịch
-Quản lí nhân viên đang làm trong công ty.
-Quản lí đăng kí cũng như nhu cầu du lịch mà khách hàng mong muốn.
1.4 Các hệ thống tương tự
-Những hệ thống quản lí tương tự với hệ thống quản lí du lịch có thể kể tới gồm: hệ thống quản lí thư viện, nhà hang, khách sạn; hệ thống lưu trữ điểm thi và dữ liệu học tập; hệ thống quản lí và phân phối kho hàng;…
-Điểm chung của các hệ thống này là đều có vai trò giám sát, quản lí cũng như thống kê các hạng mục, đơn vị, giúp cho công việc trở nên thuận tiện và dễ dàng hơn
- Microsoft SQLQuản lý máy chủ 2019
-Và các phần mềm cần thiết khác
Quản lý tour du lịch đóng vai trò then chốt, đòi hỏi tính phức tạp và chuyên nghiệp trong các công ty lữ hành Hệ thống quản lý phải có khả năng thiết kế và triển khai lịch trình, cập nhật thông tin giá cả, địa điểm và hình ảnh minh họa cho từng tour du lịch Ngoài ra, hệ thống cần theo dõi sát sao lịch trình, quản lý nhân sự hiệu quả Các công ty du lịch cần tích hợp thêm các chức năng như bảo mật thông tin khách hàng, tiếp nhận phản hồi trải nghiệm dịch vụ, tổ chức tour theo yêu cầu và quản lý các vấn đề liên quan đến khách hàng, nhân viên, phương tiện Nhờ đó, hệ thống quản lý tour du lịch góp phần đảm bảo tính chính xác, nhanh chóng và thuận tiện trong vận hành.
5 Công ty của lịch thiết kế chuyến du lịch và lên lịch trình cho từng chuyến du lịch cụ thể sau đó cập nhật các chuyến du lịch này với đầy đủ thông tin về giá cả loại chuyến du lịch, lịch trình, các địa phương, địa điểm đi đến và hình ảnh minh họa ( nếu có ).Về tổ chức lưu trữ thực hiện các yêu cầu:
-Xác nhận đơn đặt tour hợp lệ, chỉnh sửa thông tin khách hàng và thông tin đặt tour trên từng đơn cụ thể, thống kê tình hình đặt chỗ của tour.
-Xem danh sách khách hang tham gia các tour đó.
-Thay đổi, thêm mới hoặc xóa bỏ thông tin, hình ảnh về các địa điểm du lịch.
-Thêm xóa sửa thông tin hình ảnh về các tour du lịch do công ty tổ chức, phục vụ cho việc quản lý, thống kê hoạt động.
-Thêm, xóa, sửa thông tin hình ảnh về các điểm du lịch ở từng địa phương khác nhau.
1.8 Xác định các yêu cầu của hệ thống
Các chức năng quản lý chính của cửa hàng gồm: Đăng nhập.
1.8.2 Yêu cầu phi chức năng:
-Điều quan trọng cần chú ý nhất đó là thông tin khách hàng do khách hàng cung cấp phải được bảo mật tuyệt đối Tránh tình trạng thông tin dữ liệu của khách hàng bị mất hoặc bị sửa đổi.
1.8.2.2 Yêu cầu về sao lưu
-Phải có giải pháp đảm bảo sự an toàn dữ liệu: Có khả năng backup dữ liệu và phục hồi dữ liệu khi có sự cố.
1.8.2.3.Yêu cầu về tính năng sử dụng
-Sử dụng được đầy đủ tính năng trên phần mềm.
-Đảm bảo có thể tìm được nhiều dữ liệu trong một lúc.
-Cung cấp đầy đủ thông tin cần thiết.
1.8.2.4.Yêu cầu ràng buộc thiết kế
-Hệ thống được xây dựng chủ yếu bằng ngôn ngữ lập trình C#.
-Hệ quản trị cơ sở dữ liệu SQL Server 2019.
-Phần mềm quản lý phải có tính tương thích Có thể sử dụng kết hợp với các hệ thống quản lý khác của ban quản lý.
1.8.2.6.Phần mềm được sử dụng - Cơ sở dữ liệu: SQL Server 2019.
1.8.2.7.Yêu cầu khi sử dụng phần mềm
-Nhân viên sẽ được quản lý giới thiệu về chức năng của phần mềm khi được sử dụng. 1.8.2.8.Các yêu cầu khác
-Hệ thống phải dễ sử dụng, dễ sửa lỗi, có khả năng tái sử dụng.
-Có hướng dẫn chi tiết cho người mới sử dụng.
Bảng 2 1: Bảng ước lượng về chi phí
Khảo sát yêu cầu dự án
Thu thập cá dự liệu cần thiết về dự án 50.000V
Bắt đầu dự án Triển khai và thiết lập project cho dự án 100.000
Lập kế hoạch phạm vi dự án
Lập kế hoạch chi tiết cho phạm vi làm việc 100.000
VNĐ Viết báo cáo tổng kết dự án
Tổng kết lại toàn bộ quá trình quản lý dự án
Phân tích thiết kế và hệ thống Đặc tả chi tiết yêu cầu của khách hàng
Mô tả chi tiết những yêu cầu, chức năng cần có của phần mềm 100.000
Mô tả hệ thống thông qua sơ đồ usecase và trình tự
Xây dựng sơ đồ usecase và trình tự bằng phần mềm draw.io 100.000
Thiết kế cơ cở dự liệu
Xây dựng các trường dữ liệu cần thiết cho phần mềm 300.000
Thiết kế giao diện cho phần mềm
Xây dựng các chức năng chính cho phần mềm quản lí 500.000
Viết bài phân tích chi tiết về hệ thống
Viết báo cáo trình bày phân tích và thiết kế ra hệ thống phần mềm 100.000
Module thống kê sản phẩm
Phân tích yêu cầu cụ thể cho từng module
Xây dựng chi tiết nhiệm vụ chính của hệ thống
Xây dựng chức năng cùng các sự kiện
Xây dựng code Xử lý các tính năng khi thao tác 600.000
Demo module khi xây dựng xong 200.000
Kiểm tra giao diện, độ chính xác và tìm các lỗi trong hệ thống 100.000
Viết báo cáo hoàn thiện
Trình bày báo cáo chi tiết khi thiết kế module
Tích hợp và hoàn thành sản phẩm
Tích hợp các Module đã thiết kế
Lắp ghép các module lại với nhau cho hoàn chỉnh
Test lại toàn bộ hệ thống đã xây dựng 150.000
Tìm kiếm các lỗi phát sinh trong quá trình thực thi 200.000
VNĐ Đóng gói phần mềm
Viết báo cáo hướng dẫn sử dụng
Viết bản hướng dẫn sử dụng phần mềm 0VNĐ
Lên kế hoạch bảo trì phần mềm Đề ra kế hoạch bảo trì
Kết thúc dự án Tổng kết lại quá trình là ra dự án 0VNĐ
Bảng 2 2: Bảng ước lượng về thời gian
Giai đoạn Công việc chính
Mô tả công việc Thời gian
Khảo sát yêu cầu dự án
Thu thập cá dự liệu cần thiết về dự án 1 ngày
Bắt đầu dự án Triển khai và thiết lập project cho dự án 1 ngày Lập kế hoạch phạm vi dự án
Lập kế hoạch chi tiết cho phạm vi làm việc 1 ngày Viết báo cáo tổng kết dự án
Tổng kết lại toàn bộ quá trình quản lý dự án 1 ngày
Phân tích và thiết kế hệ thống Đặc tả chi tiết yêu cầu của khách hàng
Mô tả chi tiết những yêu cầu, chức năng cần có của phần mềm 1 ngày
Mô tả hệ thống thông qua sơ đồ usecase và trình tự
Xây dựng sơ đồ usecase và trình tự bằng phần mềm draw.io 4 ngày
Thiết kế cơ cở dự liệu
Xây dựng các trường dữ liệu cần thiết cho phần mềm
Thiết kế giao diện cho phần mềm
Xây dựng các chức năng chính cho phần mềm quản lí
Viết bài phân tích chi tiết về hệ thống
Viết báo cáo trình bày phân tích và thiết kế ra hệ thống phần mềm 1 ngày
Module thống kê sản phẩm
Phân tích yêu cầu cụ thể cho từng module
Xây dựng chi tiết nhiệm vụ chính của hệ thống
Xây dựng chức năng cùng các sự kiện 3 ngày
Xây dựng code Xử lý các tính năng khi thao
Demo module khi xây dựng xong 1 ngày
Kiểm tra giao diện, độ chính xác và tìm các lỗi trong hệ thống
Viết báo cáo hoàn thiện
Trình bày báo cáo chi tiết khi thiết kế module
Tích hợp và hoàn thành sản phẩm
Tích hợp các Module đã thiết kế
Lắp ghép các module lại với nhau cho hoàn chỉnh
1 ngày Kiểm thử phần mềm
Test lại toàn bộ hệ thống đã xây dựng
1 ngày Fix code Tìm kiếm các lỗi phát sinh trong quá trình thực thi
2 ngày Đóng gói phần mềm
Viết báo cáo hướng dẫn sử dụng
Viết bản hướng dẫn sử dụng phần mềm
1 ngày Lên kế hoạch bảo trì phần mềm Đề ra kế hoạch bảo trì 1 ngày Kết thúc dự án Tổng kết lại quá trình là ra dự án
2.2.3Ước lượng số người tham gia
-Số lượng người tham gia vào dự án này là 2 người
2.2 Lập lịch và theo dõi dự án
Bảng 2 3: Bảng lập lịch và theo dõi
3.1 Xác định Actor và Use case của toàn hệ thống