TỔNG QUAN VÊ ̀ CÔNG TY TMA VÀ VỊ TRI ́ TESTER
Giới thiệu tổng quát về công ty TMA Solutions Bình Định
1.1.1 Giới thiệu về công ty
TMA Solutions Bình Định là trung tâm phần mềm đầu tiên tại Thung lũng Sáng tạo Quy Nhơn, với sứ mệnh trở thành trung tâm phát triển phần mềm và công nghệ cao hàng đầu tại miền Trung Công viên Sáng tạo TMA đóng góp quan trọng vào việc biến Thung lũng sáng tạo Quy Nhơn thành điểm đến của công nghệ 4.0 tại Việt Nam TMA bao gồm nhiều cơ sở như Trung tâm Phát triển Phần Mềm, Xưởng Phần mềm, Trung tâm R&D, Trung tâm Khoa học Dữ liệu và Học viện Công Nghệ, với tổng diện tích sử dụng hơn 15,000m2.
Năm 2017: TMA quyết định đầu tư xây dựng Công viên sáng tạo TMA Bình Định (TMA Innovation Park) tại Thung Lũng Sáng Tạo Quy Nhơn
- Thành lập TMA Bình Định
- Khởi công xây dựng Công viên Sáng tạo TMA Bình Định (TMA Innovation Park - TIP)
- Thành lập Nhóm Data Science Group
- Tổ chức Ngày hội Công nghệ tại Đại học Quy Nhơn
- Khai trương Công viên Sáng tạo TMA Bình Định
- Khách hàng từ 6 nước (Mỹ, Úc, Pháp, Nhật Bản, Hàn Quốc, Singapore)
TMA Bình Định đã khẳng định được thương hiệu và danh tiếng vững chắc trong lĩnh vực công nghệ thông tin và phần mềm qua các giai đoạn phát triển Với tầm nhìn rõ ràng và cam kết mạnh mẽ về chất lượng, công ty không ngừng phát triển và đóng góp tích cực cho sự tiến bộ của ngành công nghệ thông tin tại Việt Nam.
1.1.2 Tầm nhìn và sứ mệnh
Tầm nhìn: Trở thành một trong những công ty hàng đầu về cung cấp giải pháp phần mềm tại Việt Nam và trong khu vực
Sứ mệnh của chúng tôi là cung cấp cho khách hàng những sản phẩm và giải pháp phần mềm chất lượng cao với chi phí hợp lý Chúng tôi cam kết xây dựng mối quan hệ tin cậy và uy tín, đồng thời hợp tác phát triển bền vững với các đối tác trong lĩnh vực công nghệ thông tin.
Sự cam kết (Commitment): Biến lời hứa thành hiện thực
Sự trung thực (Honesty): Trung thực với người khác và chính mình
Sự Tôn trọng (Respect): Đối xử với người khác theo cách bạn muốn đối xử
Tài chính, Ngân hàng & Bảo hiểm
Wealth management encompasses a range of services including asset management, capital market strategies, and fund management, all aimed at optimizing investment performance Effective investment management relies on thorough financial analysis and a solid understanding of corporate finance principles Additionally, a well-structured insurance process and workflow are essential for mitigating risks and protecting assets in today's dynamic financial landscape.
Thương mại điện tử & Phân phối
Chúng tôi cung cấp dịch vụ tư vấn, thiết kế và phát triển hệ thống phần mềm toàn diện cho thương mại điện tử, quản lý phân phối sản phẩm, phân tích hành vi khách hàng, dự báo doanh số và hệ thống POS (Point of Sale).
Phân tích thông tin bệnh nhân và sử dụng thuốc là yếu tố quan trọng trong hệ thống thông tin y tế hiện đại Quản lý và phân tích dịch bệnh giúp nâng cao hiệu quả trong việc kiểm soát dịch bệnh Hồ sơ y tế điện tử không chỉ lưu trữ thông tin mà còn hỗ trợ chuẩn đoán lâm sàng chính xác Hệ thống theo dõi sức khỏe người già 24/24 đảm bảo chăm sóc liên tục, trong khi quản lý người cách ly tại nhà góp phần bảo vệ sức khỏe cộng đồng Cuối cùng, phần mềm nhà thuốc đóng vai trò thiết yếu trong việc quản lý và cung cấp thuốc cho bệnh nhân.
Thư viện điện tử và sách điện tử đóng vai trò quan trọng trong việc hỗ trợ học tập trực tuyến Phân tích hành vi học online giúp đánh giá sự tương tác của học sinh, trong khi phân tích năng lực học sinh cho phép xác định điểm mạnh và điểm yếu của họ Hệ thống quản lý và điểm danh tự động nâng cao hiệu quả quản lý trường học, góp phần tạo ra môi trường học tập tốt hơn cho học sinh.
Nông nghiệp & Chế biến thực phẩm
Phân tích và tối ưu năng suất chăn nuôi bò là yếu tố quan trọng trong quản lý nông nghiệp hiện đại Việc quản lý quy trình trồng trọt hiệu quả giúp nâng cao sản lượng nông sản Hệ thống thông tin nông nghiệp đóng vai trò then chốt trong việc thu thập và phân tích dữ liệu Truy xuất nguồn gốc sản phẩm nông nghiệp đảm bảo chất lượng và an toàn thực phẩm Tối ưu hiệu suất máy móc chế biến thực phẩm góp phần nâng cao hiệu quả sản xuất Nhận dạng bệnh sớm giúp bảo vệ cây trồng và vật nuôi Cuối cùng, đánh giá chất lượng gỗ tự động là cần thiết để đảm bảo nguyên liệu đạt tiêu chuẩn.
Quản lý giao nhận, Quản lý tài sản, Quản lý xe và tàu biển, Phân tích giao thông
Web site dịch vụ khách sạn và du lịch, Phần mềm dịch vụ khách sạn, Quản lý khách sạn tự động, POS cho nhà hàng, Trang vàng (yellow pages)
Mạng 3G/4G/5G, IoT, VoIP, Tổng đài số, Các ứng dụng quản lý mạng.
Tổng quan về vị trí Tester
1.2.1 Mô tả về vị trí Tester
Tester là những chuyên gia đảm bảo chất lượng phần mềm, có nhiệm vụ phát hiện lỗi, sai sót và các vấn đề tiềm ẩn có thể ảnh hưởng đến hiệu suất và độ tin cậy của sản phẩm phần mềm.
Tùy thuộc vào từng công ty, vai trò của tester có thể bao gồm nhiều lĩnh vực như QA và QC, với hai loại chính là Manual Tester và Automation Tester Manual Tester thực hiện việc kiểm thử phần mềm một cách thủ công, trong khi Automation Tester sử dụng phần mềm để thực hiện kiểm thử tự động Các tester có trách nhiệm đảm bảo chất lượng phần mềm và kiểm tra lỗi trước khi gửi kết quả cuối cùng cho khách hàng.
Nhiệm vụ của một Tester:
- Tìm kiếm các lỗi của hệ thống phần mềm
- Trực tiếp thẩm định, xác minh xem hệ thống phần mềm này có đáp ứng các yêu cầu kỹ thuật và yêu cầu nghiệp vụ hay không
- Hoàn thiện sản phẩm nhằm đáp ứng tối đa những yêu cầu đặt ra của khách hàng cả về mặt số lượng lẫn chất lượng
1.2.2 Các kĩ năng cần có của một Tester
Kỹ năng phân tích là một trong những kỹ năng quan trọng mà người đi làm, đặc biệt là các Tester, cần trang bị Kỹ năng này cho phép bạn phân tích và chia nhỏ các hệ thống phần mềm phức tạp, từ đó giúp nâng cao hiệu quả công việc và cải thiện chất lượng sản phẩm.
Để nâng cao hiệu quả và hiệu suất công việc, bạn nên phân tích 5 yếu tố nhỏ hơn, giúp hiểu rõ từng yếu tố riêng lẻ và đạt được kết quả tối đa.
Một Tester giỏi cần có khả năng thích ứng nhanh chóng và sẵn sàng học hỏi Trong quá trình kiểm thử phần mềm, các vấn đề có thể phát sinh bất ngờ, do đó, họ thường xuyên tự phân tích và tìm hiểu thêm thông qua các nhóm hỗ trợ hoặc từ đồng nghiệp.
Kỹ năng giao tiếp, hay còn gọi là kỹ năng giải quyết mâu thuẫn, là yếu tố quan trọng đối với một Tester, vì công việc thường yêu cầu làm việc nhóm hoặc tham gia các dự án hợp tác Kỹ năng giao tiếp tốt sẽ hỗ trợ bạn trong việc truyền đạt thông tin và cung cấp báo cáo về các khâu kiểm tra đã thực hiện Nếu không có khả năng giao tiếp hiệu quả, bạn sẽ gặp khó khăn trong việc truyền đạt ý tưởng của mình cho người khác.
Kỹ năng làm việc nhóm
Kỹ năng làm việc nhóm rất quan trọng đối với các Tester, giúp họ dễ dàng giao tiếp và hợp tác với các thành viên khác, đặc biệt là các Developer Tester đóng vai trò là cầu nối giữa nhà phát triển phần mềm và người sử dụng, trong khi Developer tập trung vào việc hoàn thiện sản phẩm, Tester đảm bảo rằng khách hàng có thể yên tâm về chất lượng sản phẩm.
Ngoài các kỹ năng chính, một Tester cần phát triển kỹ năng thiết kế, khả năng tiếng Anh và tính cách cẩn thận, tỉ mỉ, nhạy bén để đảm bảo chất lượng sản phẩm.
Từ một nghề còn khá xa lạ đối với các bạn trẻ, Tester đang dần trở thành một nghề
Ngành nghề "HOT" tại Việt Nam đang chứng kiến nhu cầu tuyển dụng tăng cao, mang lại cơ hội việc làm ổn định Đặc biệt, người lao động có thể thăng tiến rõ rệt dựa trên năng lực và thâm niên công tác.
Nghề Tester đang có nhu cầu tuyển dụng cao, mang lại cơ hội ổn định cho sự nghiệp lâu dài Đặc biệt, những người có nhiều năm kinh nghiệm sẽ có cơ hội thăng tiến vượt trội Công việc này không hề nhàm chán, vì công nghệ luôn đổi mới và phát triển Mỗi ngày, các Tester sẽ phải làm việc với những thách thức mới, giúp họ phát triển kỹ năng và kiến thức.
Nghề Tester ngày càng trở nên quan trọng với sự gia tăng nhu cầu tuyển dụng trong những năm gần đây Kinh nghiệm tích lũy qua thời gian được xem là yếu tố quyết định hiệu quả công việc và chất lượng phần mềm Những Tester có khả năng Tiếng Anh tốt sẽ có nhiều cơ hội việc làm hấp dẫn, không chỉ tại các doanh nghiệp công nghệ trong nước mà còn tại các công ty nước ngoài.
Cơ hội việc làm cho các vị trí Tester hiện đang rất hấp dẫn, với mức lương được đánh giá cao hơn so với mặt bằng chung của thị trường Mỗi vị trí Tester sẽ có mức thu nhập khác nhau, phản ánh sự đa dạng trong yêu cầu và kỹ năng.
Intern Tester, hay còn gọi là Test thực tập, thường dành cho sinh viên mới ra trường với ít kinh nghiệm chuyên môn trong lĩnh vực Tester Do đó, mức lương của vị trí này thường dao động từ 3-6 triệu đồng mỗi tháng.
Khi bạn tích lũy được kinh nghiệm ở vị trí Fresher và chính thức được nhận sau thời gian thử việc, mức lương của bạn sẽ dao động từ 6 đến 8 triệu đồng mỗi tháng.
Junior Tester là những cá nhân có kinh nghiệm nhất định, đã tham gia nhiều dự án thực tế trong vai trò Tester Họ không chỉ hoàn thành nhiệm vụ được giao mà còn thể hiện khả năng sáng tạo và tìm kiếm cách cải tiến hiệu quả công việc Mức lương của Junior Tester dao động từ 8-15 triệu đồng mỗi tháng.
CƠ SỞ LÝ THUYẾT
Tổng quan về kiểm thử phần mềm
2.1.1 Giới thiệu 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 Quá trình này đảm bảo rằng sản phẩm phần mềm đáp ứng đầy đủ, chính xác và đúng theo yêu cầu của khách hàng cũng như các tiêu chuẩn đã đề ra.
2.1.2 Mục tiêu của kiểm thử
Mục đích của kiểm thử phần mềm là xác định các lỗi, lỗ hổng hoặc các yêu cầu còn thiếu so với yêu cầu thực tế
2.1.3 Quy trình phát triển phần mềm
Hình 4: Quy trình phát triển phần mềm
Quy trình phát triển phần mềm bao gồm các bước quan trọng như phân tích yêu cầu và tài liệu đặc tả, thiết kế hệ thống, thực hiện coding và unit test, kiểm thử, và cuối cùng là cài đặt và bảo trì.
2.1.4 Các nguyên tắc của kiểm thử phần mềm
Hình 5: Nguyên tắc của kiểm thử phần mềm
Kiểm thử cho thấy sự hiện diện của lỗi
Kiểm thử phần mềm có khả năng chứng minh sự tồn tại của lỗi nhưng không thể khẳng định rằng phần mềm đã hoàn toàn không còn lỗi Qua quá trình kiểm thử, xác suất xuất hiện các lỗi chưa được phát hiện trong phần mềm sẽ được giảm thiểu.
Không thể kiểm thử cạn kiệt
Kiểm thử toàn bộ mọi thứ, bao gồm cả điều kiện đầu vào và tiền điều kiện, là một nhiệm vụ không khả thi đối với các trường hợp có số lượng giá trị đầu vào lớn và hệ thống phức tạp.
Kiểm thử phần mềm nên được tiến hành ngay từ giai đoạn đầu của vòng đời phát triển Việc phát hiện lỗi sớm không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu chi phí sửa chữa.
Lỗi thường xuất hiện chủ yếu ở các chức năng chính, có liên quan mật thiết đến các chức năng khác trong hệ thống Thực tế cho thấy, 80% lỗi của hệ thống thường tập trung trong 20% chức năng quan trọng nhất.
Nghịch lý thuốc trừ sâu
Nếu cùng một bộ test case đó ta test đi test lại nhiều lần sẽ bị nhờn và sẽ không tìm ra được bug mới
Kiểm thử phụ thuộc vào ngữ cảnh
Kiểm thử là khác nhau trong các ngữ cảnh khác nhau
Không có lỗi là sai lầm
Việc không phát hiện lỗi trên sản phẩm không có nghĩa là sản phẩm đã hoàn toàn sẵn sàng để ra mắt thị trường Bộ test case chỉ nhằm kiểm tra xem hệ thống có hoạt động đúng theo yêu cầu hay không, chứ không phải để tìm kiếm lỗi mới.
2.1.5 Phân biệt Error/ Fault/ Failure
Error: Là hành động của con người dẫn đến kết quả sai
Fault: Lỗi xảy ra khi làm sai các step, process, hoặc chuẩn bị dữ liệu
Thất bại xảy ra khi kết quả thực tế không khớp với yêu cầu đã được chỉ định, thể hiện sự khác biệt giữa những gì hiển thị trên màn hình và kết quả mà người dùng mong đợi từ một thành phần, hệ thống hoặc dịch vụ cụ thể nào đó.
- Xác minh xem việc thực thi sản phẩm (product) đúng theo yêu cầu đã được chỉ định hay chưa?
- Trả lời cho câu hỏi: "Did we build the system right?"
- Ví dụ: xác nhận theo SRS, design thực hiện ở giai đoạn code review trong team, unit test, integration and system test
- Xác nhận, kiểm tra xem chức năng (function) cần thiết và mong đợi của khách hàng đã có trong sản phẩm hiện tại hay chưa?
- Trả lời cho câu hỏi: "Did we build the right system, appropriate, fix for use?"
- Ví dụ: xác nhận theo SRS, Requirement prototype xác nhận theo SRS review bởi customer, acceptance test, beta test, hỗ trợ
Hình 6: QA & QC a QA (Quality Assurance)
Là người chịu trách nhiệm đảm bảo chất lượng sản phẩm thông qua việc đưa ra quy trình làm việc cho các bên liên quan b QC (Quality Control)
Là kỹ sư quản lý chất lượng Đây là những người trực tiếp làm kiểm tra cho các sản phẩm thực tế từng công đoạn của sản xuất
Bảng 1: So sánh QA và QC Đảm bảo chất lượng (QA) Kiểm soát chất lượng (QC)
Là một quy trình được cân nhắc thận trọng nhằm cung cấp sự đảm bảo rằng phần mềm sẽ vượt qua được những yêu cầu về chất lượng
Kiểm soát chất lượng là quy trình kiểm tra sự hoàn thành của các yêu cầu về chất lượng phần mềm
Mục tiêu của QA là ngăn ngừa khiếm khuyết
Mục tiêu của QC là xác định và cải thiện các khiếm khuyết
QA không liên quan đến thực hiện chương trình
QC luôn luôn liên quan đến việc thực hiện chương trình
Tất cả các thành viên trong nhóm có trách nhiệm đảm bảo chất lượng
Testing team chịu trách nhiệm cho QC
Verification (xác minh) Validation (xác nhận)
QA đảm bảo rằng bạn đang làm đúng điều phải làm
QC đảm bảo kết quả của những gì bạn đã làm là những gì bạn mong đợi
Vòng đời phát triển phần mềm
2.2.1 Giai đoạn phát triển phần mềm a Pha yêu cầu Ở pha này bộ phận phân tích yêu cầu sẽ gặp gỡ, trao đổi với khách hàng và làm rõ các chức năng, các yêu cầu mà khách hàng muốn xây dựng trong phần mềm của mình b Pha đặc tả Đây là pha sẽ được thực hiện sau khi đã ghi nhận các yêu cầu của khách hàng về bộ liệu SRS gọi là “Tài liệu đặc tả” c Pha thiết kế
Trong quá trình phát triển phần mềm, sau khi tham khảo tài liệu đặc tả, bộ phận thiết kế sẽ tạo ra giao diện chung, trong khi bộ phận lập trình sẽ phát triển giao diện chi tiết cho từng chức năng Tiếp theo, các lập trình viên sẽ lập trình các chức năng và module theo yêu cầu, sau đó chuyển giao cho kiểm thử viên để thực hiện kiểm tra dựa trên các testcase được xây dựng từ tài liệu đặc tả Trong giai đoạn kiểm thử, kiểm thử viên sẽ kiểm tra các chức năng và nếu phát hiện lỗi, họ sẽ báo bug để lập trình viên tiến hành sửa chữa Cuối cùng, giai đoạn triển khai và bảo trì sẽ diễn ra để đảm bảo phần mềm hoạt động hiệu quả.
Trong quá trình sử dụng phần mềm, công ty phát triển phần mềm cần cung cấp hỗ trợ và xử lý lỗi phát sinh để đảm bảo trải nghiệm tốt nhất cho khách hàng.
Trong mô hình thác nước, mỗi giai đoạn cần được hoàn tất hoàn toàn trước khi bắt đầu giai đoạn tiếp theo, và các giai đoạn này không được phép chồng chéo lên nhau.
Hình 7: Mô hình Water Fall
Trong giai đoạn thu thập và phân tích yêu cầu, tất cả các yêu cầu của hệ thống được phát triển sẽ được ghi lại và tổng hợp trong tài liệu đặc tả yêu cầu.
Trong giai đoạn thiết kế hệ thống, các đặc điểm kỹ thuật yêu cầu từ giai đoạn đầu tiên sẽ được nghiên cứu kỹ lưỡng, từ đó tiến hành chuẩn bị thiết kế hệ thống một cách hiệu quả.
Triển khai: Dựa trên thiết kế hệ thống, hệ thống được phát triển qua các chương trình nhỏ gọi là đơn vị, sau đó được tích hợp trong giai đoạn tiếp theo Mỗi đơn vị sẽ được phát triển và kiểm tra chức năng, quá trình này được gọi là kiểm thử đơn vị.
Tích hợp và Kiểm thử là quá trình quan trọng, trong đó tất cả các đơn vị phát triển trong giai đoạn triển khai sẽ được kiểm tra và sau đó tích hợp vào một hệ thống hoàn chỉnh.
Triển khai hệ thống là giai đoạn quan trọng sau khi hoàn tất thử nghiệm các chức năng và phi chức năng Trong bước này, sản phẩm sẽ được đưa vào môi trường khách hàng hoặc chính thức ra mắt trên thị trường.
Bảo trì: Có một số vấn đề xảy ra trong môi trường khách hàng Để khắc phục những vấn đề đó, các bản vá lỗi sẽ được phát hành
Mô hình chữ V là một phương pháp trong quy trình phát triển phần mềm (SDLC) với cấu trúc tuần tự theo hình chữ V Đây là một biến thể của mô hình thác nước, nhấn mạnh sự kết nối giữa các giai đoạn phát triển và giai đoạn thử nghiệm tương ứng.
Giai đoạn phân tích yêu cầu đóng vai trò quan trọng trong việc trao đổi chi tiết với khách hàng, nhằm hiểu rõ mong đợi và yêu cầu chính xác của họ.
Thiết kế hệ thống: Thiết kế hệ thống sẽ có sự hiểu biết và chi tiết hóa thiết lập phần cứng và giao tiếp hoàn chỉnh cho sản phẩm
Trong giai đoạn thiết kế kiến trúc, các thông số kỹ thuật được hiểu và định hình rõ ràng Hệ thống thiết kế được phân chia thành các mô-đun với chức năng riêng biệt, giúp tối ưu hóa hiệu suất và tính linh hoạt của công trình.
Thiết kế mô-đun: Trong giai đoạn này, thiết kế chi tiết bên trong cho tất cả các mô-đun
Thiết kế của 13 hệ thống được chỉ định cần phải tương thích với các mô-đun khác trong kiến trúc hệ thống, cũng như với các hệ thống bên ngoài đơn vị.
Giai đoạn coding là quá trình thực hiện coding cho các mô-đun hệ thống đã được thiết kế trước đó Trong giai đoạn này, mã nguồn sẽ trải qua nhiều lần xem xét để đảm bảo chất lượng trước khi phiên bản cuối cùng được lưu trữ.
Unit Testing: Kiểm thử đơn vị được thiết kế trong giai đoạn thiết kế mô-đun được thực thi trên code trong giai đoạn xác thực này
Integration Testing: Kiểm thử tích hợp được liên kết với giai đoạn thiết kế kiến trúc
Kiểm thử hệ thống là quá trình đánh giá toàn bộ chức năng của hệ thống, đồng thời kiểm tra sự tương tác giữa hệ thống đang phát triển và các hệ thống bên ngoài.
Các loại kiểm thử phần mềm
Kiểm thử thủ công là phương pháp kiểm tra phần mềm mà người kiểm tra thực hiện các test case mà không sử dụng công cụ tự động Trước khi tiến hành kiểm thử tự động, mọi ứng dụng đều cần trải qua quá trình kiểm thử thủ công.
Kiểm thử tự động là một quá trình xử lý tự động các bước thực hiện một test case
Kiểm thử tự động được thực hiện bởi phần mềm kiểm thử tự động - hay còn gọi là
Các phương pháp kiểm thử phần mềm
Hình 11: Phương pháp kiểm thử Static Testing
Thử nghiệm tĩnh là phương pháp kiểm tra mã nguồn mà không cần thực thi code, có thể thực hiện bằng tay hoặc thông qua công cụ Mục tiêu của thử nghiệm tĩnh là phát hiện lỗi, mã độc tiềm ẩn trong ứng dụng phần mềm Loại thử nghiệm này thường được tiến hành sớm trong vòng đời phát triển, được gọi là thử nghiệm xác minh (verification testing).
Thử nghiệm động diễn ra khi mã nguồn đang trong chế độ thực thi, trong môi trường thực tế của ứng dụng Nó còn được gọi là thử nghiệm xác nhận (Validation testing), nhằm đánh giá chất lượng sản phẩm Thử nghiệm động bao gồm hai loại chính: Kiểm tra chức năng và Kiểm tra phi chức năng.
Kiểm thử hộp trắng là phương pháp kiểm tra phần mềm, trong đó người kiểm thử có kiến thức về thiết kế, cấu trúc thuật toán và cách thức thực hiện của chương trình Phương pháp này giúp phát hiện lỗi và cải thiện chất lượng phần mềm thông qua việc kiểm tra chi tiết các thành phần bên trong.
Kiểm tra hộp đen (Black box testing) là phương pháp kiểm thử phần mềm mà trong đó người kiểm thử chỉ tập trung vào các chức năng của ứng dụng mà không cần quan tâm đến cấu trúc hay hoạt động bên trong của nó.
Gray Box Testing là một phương pháp kiểm thử phần mềm kết hợp giữa kiểm thử Black Box và White Box Trong kiểm thử hộp xám, người kiểm thử chỉ có một phần thông tin về cấu trúc bên trong sản phẩm, cho phép họ đánh giá cả chức năng và kiến trúc của phần mềm Phương pháp này mang lại cái nhìn tổng quát hơn, giúp phát hiện lỗi hiệu quả hơn trong quá trình phát triển phần mềm.
Cấp độ của kiểm thử
Kiểm thử đơn vị là một phương pháp kiểm thử phần mềm, tập trung vào việc kiểm tra các thành phần riêng lẻ như hàm, lớp và phương thức Quá trình này diễn ra trong giai đoạn phát triển ứng dụng, giúp phát hiện và sửa lỗi ngay lập tức mà không cần lưu trữ hay quản lý như các cấp độ kiểm thử khác.
Kiểm thử tích hợp là quy trình kiểm tra các module phần mềm hoặc chức năng riêng lẻ khi chúng được kết hợp lại và kiểm tra theo nhóm Trong mỗi dự án phần mềm, có nhiều module được phát triển bởi các lập trình viên khác nhau, do đó, kiểm thử tích hợp chú trọng vào việc xác minh tính chính xác của việc truyền dữ liệu giữa các module.
Kiểm thử hệ thống là kiểm thử toàn bộ chức năng và giao diện của hệ thống
Kiểm thử chấp nhận là quá trình xác định xem phần mềm có đáp ứng đầy đủ các yêu cầu của khách hàng hay không, đồng thời đánh giá liệu khách hàng có chấp nhận sản phẩm cuối cùng hay không.
Alpha test là giai đoạn kiểm tra phần mềm do các thành viên trong tổ chức phát triển thực hiện, nhưng không tham gia trực tiếp vào dự án Thường thì những người này là các thành viên trong nhóm quản lý sản phẩm.
Alpha test là giai đoạn kiểm thử nội bộ diễn ra tại nơi sản xuất phần mềm, nhằm phát hiện lỗi trước khi tiến hành kiểm thử Beta.
Beta test là giai đoạn thử nghiệm được thực hiện bởi người dùng cuối, thường là khách hàng, trong môi trường thực tế của họ Quá trình này diễn ra tại địa điểm của khách hàng, nơi người dùng sử dụng hệ thống, khác với môi trường phát triển phần mềm.
Kỹ thuật thiết kế Test case và vòng đời bug
Nhóm kỹ thuật kiểm thử dựa trên đặc tả chỉ chú trọng vào các yếu tố bên ngoài của hạng mục kiểm thử, bao gồm các đặc điểm kỹ thuật, thiết kế và cách vận hành Phương pháp này cho phép tester kiểm tra chất lượng bên ngoài mà không làm ảnh hưởng đến cấu trúc bên trong của phần mềm.
Chất lượng của các test case phụ thuộc vào kiến thức và kinh nghiệm của tester, vì nhóm kỹ thuật này dựa vào khả năng hiểu biết của họ Kinh nghiệm của tester sẽ là nền tảng cho việc thiết kế các test case, do đó, hiệu quả của quy trình kiểm thử hoàn toàn phụ thuộc vào năng lực của tester.
2.6.3 Giải thích vòng đời bug
- Tester tìm thấy bug/defect
- Gán trạng thái cho bug: New/Mới
- Chuyển bug sang cho Quản lý dự án để phân tích
- Quản lý dự án quyết định xem bug có hợp lệ không
- Nếu như lỗi không hợp lệ, trạng thái sẽ được chuyển thành "Rejected/Đã từ chối."
Nếu lỗi không bị từ chối, bước tiếp theo là kiểm tra phạm vi của nó Ví dụ, nếu có vấn đề với chức năng email trong cùng một ứng dụng nhưng không nằm trong phạm vi phát hành hiện tại, trạng thái của lỗi có thể được chuyển thành “Postponed/hoãn”.
Người quản lý cần kiểm tra xem có tồn tại bug tương tự đã được phát hiện trước đó hay không Nếu đã có, bug này sẽ được chuyển trạng thái thành đã biết.
- Nếu không có vấn đề gì phát sinh trong khi dev fix bug thì bug này được chuyển sang trạng thái là “In- progress/đang tiến hành”
- Khi code được fixed Bug sẽ được gán trạng thái là “Fixed/đã sửa xong”
Sau khi sửa code, tester sẽ tiến hành kiểm tra lại Nếu tất cả các test cases liên quan đều vượt qua, bug sẽ được đóng lại hoặc chuyển sang trạng thái hoàn thành.
“Closed” Nếu các trường hợp kiểm thử thất bại một lần nữa, lỗi được mở lại/re-opened và lại được chuyển giao sang cho dev
2.6.4 Báo cáo bug trên Jira
Jira là một ứng dụng quản lý và theo dõi lỗi trong dự án, được phát triển bởi công ty Atlassian tại Australia Ứng dụng này hoạt động dựa trên việc tập trung vào kết quả công việc, mang lại tính linh hoạt và khả năng sử dụng ngay lập tức cho người dùng.
- Báo cáo lỗi Jira tóm tắt các lỗi hoặc lỗi được báo cáo theo các số liệu nhất định
- Tính năng cơ bản của Jira:
+ Quản lý, theo dõi tiến độ của dự án
+ Quản lý các tasks, bugs, cải tiến, tính năng mới hoặc bất kỳ vấn đề gì xảy ra
Tạo và lưu trữ các bộ lọc có cấu hình cao (dynamic queries) cho mọi vấn đề trong hệ thống; cho phép chia sẻ bộ lọc với người dùng khác hoặc đăng ký nhận kết quả qua email định kỳ.
+ Xây dựng quy trình làm việc tương thích với yêu cầu của từng dự án
+ Bảng dashboard cung cấp cho mỗi người dùng một không gian riêng để xem mọi thông tin liên quan đến cá nhân
+ Cung cấp nhiều loại báo cáo thống kê với nhiều loại biểu đồ khác nhau phù hợp với nhiều loại hình dự án và đối tượng người dùng
Test cases là tài liệu chứa tập hợp điều kiện và hành động thực hiện trên ứng dụng phần mềm, nhằm xác định kết quả mong muốn Nội dung bao gồm mô tả tài liệu với dữ liệu kiểm thử, điều kiện tiên quyết và kết quả dự kiến.
2.6.6 Các loại kiểm thử ứng dụng Mobile
Kiểm thử gián đoạn (Interrupt Testing)
Kiểm thử gián đoạn là quy trình đánh giá ứng dụng di động, trong đó các chức năng có thể bị gián đoạn trong quá trình sử dụng Mục tiêu của kiểm thử này là đảm bảo rằng ứng dụng vẫn hoạt động ổn định và hiệu quả ngay cả khi có sự can thiệp hoặc gián đoạn từ bên ngoài.
Kiểm thử tính sử dụng (Usability testing)
Kiểm thử tính sử dụng được sử dụng để kiểm thử các ứng dụng di động về khả năng sử dụng, tính linh hoạt và thân thiện
Quá trình kiểm thử ứng dụng di động đảm bảo tính dễ sử dụng và mang đến trải nghiệm người dùng tốt nhất cho khách hàng.
Kiểm thử bảo mật (Security Testing)
Mục đích của kiểm thử bảo mật là đảm bảo rằng dữ liệu của ứng dụng và an ninh mạng được bảo vệ và đáp ứng đầy đủ các yêu cầu bảo mật.
Kiểm thử hiệu năng (Performance Testing)
Quá trình kiểm thử được thực hiện bởi tester nhằm đánh giá hiệu năng và hành vi của các ứng dụng trên nhiều thiết bị di động khác nhau.
Kiểm thử tương thích (Compatibility Testing) là quá trình xác định khả năng tương thích của phần mềm với các yếu tố khác trong hệ thống, bao gồm trình duyệt, hệ điều hành và phần cứng Mục tiêu của kiểm thử này là đánh giá hiệu suất hoạt động của phần mềm trên các nền tảng khác nhau, đảm bảo rằng người dùng có trải nghiệm mượt mà và không gặp phải vấn đề khi sử dụng.
Hệ điều hành, phần cứng hoặc phần mềm cụ thể
Kiểm thử giao diện (Interface Testing) là quá trình xác minh tính chính xác của giao tiếp giữa hai hệ thống phần mềm khác nhau.
Giao diện là một kết nối tích hợp giữa hai thành phần, có thể là API, dịch vụ web, và nhiều thứ khác trong thế giới máy tính Kiểm tra các dịch vụ hoặc giao diện kết nối này được gọi là Kiểm tra giao diện.
Kiểm tra dịch vụ (Service Testing)
TRIỂN KHAI DƯ ̣ ÁN
Tổng quan về ứng dụng
3.1.1 Giới thiệu về ứng dụng vHealth là một ứng dụng chăm sóc sức khoẻ di động đầy đủ tính năng và tiện ích Người dùng kết nối với thiết bị đồng hồ đeo tay để đo các chỉ số sức khoẻ như nhịp tim, huyết áp, nhiệt độ, giấc ngủ, bước đi,…sau đó đồng bộ dữ liệu lên điện thoại, điều này giúp người dùng dễ dàng theo dõi chỉ số sức khoẻ Có thể tìm kiếm tư vấn sức khoẻ trực tuyến từ các bác sĩ chuyên khoa, theo dõi các chỉ số sức khoẻ của mình, quản lý lịch khám bệnh và sử dụng thuốc một cách hiệu quả Bên cạnh đó, ứng dụng còn cung cấp thông tin về sức khoẻ để người dùng có thể cập nhật và học hỏi thêm về các vấn đề liên quan tới sức khoẻ Và với chức năng theo dõi người thân thì người dùng có thể theo dõi tình trạng sức khoẻ của người thân ở mọi lúc mọi nơi Ứng dụng giúp người dùng có thể chủ động quản lý và cải thiện sức khoẻ của mình một cách dễ dàng và tiện lợi chỉ bằng một chiếc điện thoại và đồng hồ thông minh
Hình 17: Giao diện ứng dụng vHealth
3.1.2 Chức năng của ứng dụng
Bảng 2: Phân loại chức năng của ứng dụng
STT Chức năng Ghi chú
1 Kết nối với thiết bị đồng hồ thông minh 25b/25e
2 Theo dõi chỉ số sức khoẻ
3 Cuộc gọi khản cấp SOS
5 Theo dõi sức khoẻ người thân
Triển khai dự án vHealth
3.2.1 Tài liệu đặc tả yêu cầu
3.2.1.1 Kết nối thiết bị đồng hồ thông minh 25b/25e
Bảng 3: Thông tin của chức năng Kết nối thiết bị đồng hồ thông minh 25b/25e
Tên chức năng Kết nối thiết bị 25b/25e
Mô tả Người dùng sử dụng chức năng ghép nối thiết bị mC25 để kết nối với đồng hồ 25b/25e.
Tác nhân Người dùng Điều kiện trước Người dùng đã đăng nhập trên app.
Người dùng cần bật Bluetooth trên điện thoại và đảm bảo đồng hồ thông minh 25b/25e đã được kích hoạt, đồng thời không kết nối với điện thoại khác Điều này là cần thiết để tiến hành kết nối thành công.
Các yêu cầu đặc biệt N/A
* Luồng kết nối thiết bị 25b/25e
Hình 18: Luồng kết nối thiết bị
Bảng 4: Mô tả luồng chính của chức năng Kết nối thiết bị đồng hồ thông minh 25b/25e
Hành động của tác nhân Tương tác của hệ thống Dữ liệu liên quan
- Nhấn quét thiết bị gần đây - Kiểm tra thiết bị gần đây - N/A
- Nhấn chọn thiết bị cần kết nối.
- Lưu thông tin thiết bị
* Tính năng tích hợp với thiết bị 25b/25e
Bảng 5: Tính năng tích hợp với thiết bị 25b/25e
STT Chức năng Mô tả
1 Theo dõi chỉ số sức khỏe Nhịp tim, nồng độ oxy máu, nhiệt độ, bước đi, giấc ngủ.
2 Thông báo ứng dụng Cho phép nhận thông báo của một số ứng dụng trên điện thoại thông qua thiết bị.
3 Nhắc nhở vận động Cài đặt nhắc nhở người dùng vận động.
4 Cài đặt chỉ số đo tự động Cài đặt tự động đo với một số chỉ số:
- Nồng độ oxy máu(SpO2).
5 Ngôn ngữ trên thiết bị Chọn ngôn ngữ thiết bị thông qua ứng dụng:
6 Xóa dữ liệu thiết bị Xóa thông tin và dữ liệu trên thiết bị.
Hình 19: Giao diện kết nối thiết bị
3.2.1.2 Theo dõi chỉ số sức khỏe
Bảng 6: Thông tin của chức năng Theo dõi chỉ số sức khỏe
Tên chức năng Theo dõi chỉ số sức khỏe
Mô tả Chức năng cho phép người dùng xem thông tin chỉ số sức khỏe của mình, bao gồm các chỉ số:
- Độ bão hoà Oxy máu (SpO 2 )
Tác nhân Người dùng Điều kiện trước N/A
26 Điều kiện sau Hiển thị dữ liệu sức khỏe.
Các yêu cầu đặc biệt N/A
* Luồng xem thông tin chỉ số sức khoẻ
Hình 20: Luồng theo dõi chỉ số sức khoẻ
Bảng 7: Mô tả luồng chính cho chức năng Theo dõi chỉ số sức khỏe
Hành động của tác nhân Tương tác của hệ thống Dữ liệu liên
- Người dùng chọn chỉ số sức quan khỏe cần theo dõi - Hiển thị trang thông tin chỉ số sức khỏe - Dữ liệu sức khoẻ.
* Trang chỉ số sức khỏe
Bảng 8: Mô tả chỉ số sức khoẻ
STT Các chỉ số sức khỏe Mô tả
Rate) - Thông tin chỉ số nhịp tim được thể hiện bằng biểu đồ, thông tin chỉ số nhịp tim cao nhất, thấp nhất, trung bình và mới nhất.
- Người dùng có thể thiết lập ngưỡng cảnh báo chỉ số nhịp tim ở phần cài đặt Ngưỡng cảnh báo.
- Người dùng có thể xem chi tiết ngưỡng nhịp tim được khuyến cáo khi vận động ở phần Nhịp tim khi vận động.
- Trong phần chỉ số nhịp tim chi tiết, người dùng có thể theo dõi lịch sử nhịp tim.
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ chỉ số nhịp tim theo từng tuần và từng tháng.
Pressure) - Thông tin chỉ số huyết áp được thể hiện bằng biểu đồ, thông tin chỉ số nhịp tim cao nhất, thâp nhất, trung bình và mới nhất.
- Người dùng có thể thiết lập ngưỡng cảnh báo chỉ số nhịp tim ở phần cài đặt Ngưỡng cảnh báo.
- Trong phần chỉ số huyết áp chi tiết, người dùng có thể theo dõi lịch sử chỉ số huyết áp.
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ chỉ số huyết áp theo từng tuần và từng tháng.
(Blood Glucose) - Thông tin chỉ số đường huyết được thể hiện bằng biểu đồ, thông tin chỉ số nhịp tim cao nhất, thấp nhất, trung bình và mới nhất.
- Người dùng có thể thiết lập ngưỡng cảnh báo chỉ số nhịp tim ở phần cài đặt Ngưỡng cảnh báo.
- Trong phần chỉ số đường huyết chi tiết, người dùng có thể theo dõi lịch sử chỉ số đường huyết.
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ chỉ số đường huyết theo từng tuần và từng tháng.
Độ bão hòa oxy máu (SpO2) là chỉ số quan trọng thể hiện mức độ oxy trong máu, được biểu diễn bằng biểu đồ Bài viết cung cấp thông tin chi tiết về chỉ số SpO2, bao gồm nhịp tim cao nhất, thấp nhất, trung bình và chỉ số mới nhất, giúp người đọc hiểu rõ hơn về tình trạng sức khỏe của mình.
- Người dùng có thể thiết lập ngưỡng cảnh báo chỉ số nhịp tim ở phần cài đặt Ngưỡng cảnh báo.
- Trong phần chỉ số độ bão hoà oxy máu chi tiết, người dùng có thể theo dõi lịch sử chỉ số độ bão hoà oxy máu.
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ chỉ số độ bão hoà oxy máu theo từng tuần và từng tháng.
(Temperature) - Thông tin chỉ số nhiệt độ được thể hiện bằng biểu đồ, thông tin chỉ số nhịp tim cao nhất, thấp nhất, trung bình và mới nhất.
- Người dùng có thể thiết lập ngưỡng cảnh báo chỉ số nhịp tim ở phần cài đặt Ngưỡng cảnh báo.
- Trong phần chỉ số nhiệt độ chi tiết, người dùng có thể theo dõi lịch sử chỉ số nhiệt độ.
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ chỉ số nhiệt độ theo từng tuần và từng tháng.
6 Cân nặng (Weight) - Thông tin chỉ số cân nặng được thể hiện theo từng mốc thời gian Ngày, Tuần, Tháng, Năm.
- Người dùng có thể thêm dữ liệu thủ công trực tiếp tại màn hình chỉ số cân nặng.
Bài viết này trình bày 7 bước đi, trong đó thông tin chỉ số bước đi và lượng calo tiêu thụ được thể hiện qua biểu đồ hình tròn Các thông tin quan trọng bao gồm tỷ lệ hoàn thành mục tiêu, giúp người dùng dễ dàng theo dõi tiến độ và hiệu quả của hoạt động thể chất.
Số bước đã đi, Quãng đường, Lượng calo tiêu thụ.
- Người dùng có thể thiết lập mục tiêu bước đi (bao gồm lượng calo tiêu thụ trong ngày).
- Trong phần chỉ số bước đi chi tiết, người dùng có thể theo dõi lịch sử số bước đi.
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ chỉ số bước đi theo từng tuần và từng tháng.
Theo dõi giấc ngủ cung cấp thông tin chi tiết về tổng thời gian ngủ và đánh giá chất lượng giấc ngủ thông qua biểu đồ trực quan.
- Người dùng có thể thiết lập mục tiêu thời lượng giấc ngủ theo hai mức Cơ bản và Nâng cao
- Ở báo cáo thống kê người dùng có thể xem lại biểu đồ theo dõi giấc ngủ theo từng tuần và từng tháng.
Hình 21: Giao diện theo dõi chỉ số sức khoẻ
3.2.1.3 Cuộc gọi khẩn cấp SOS
Người dùng chủ động gửi cảnh báo khi cảm thấy bản thân cần hỗ trợ kịp thời.
Bảng 9: Thông tin của chức năng Cuộc gọi khẩn cấp SOS
Tên chức năng Cuộc gọi khẩn cấp SOS
Mô tả Người dùng chủ động gửi cảnh báo tới người thân,
Operator, trợ lý y khoa thông qua một số kênh thông báo như thông báo ứng dụng, IVR/callbot.
Tác nhân Người dùng Điều kiện trước Đã đăng nhập ứng dụng vHealth. Đã mua gói cước. Điều kiện sau Thực hiện gửi cảnh báo thành công.
Các yêu cầu đặc biệt N/A
* Luồng cuộc gọi khẩn cấp SOS
Hình 22: Luồng cuộc gọi khẩn cấp SOS
Bảng 10: Mô tả luồng chính cho chức năng Cuộc gọi khẩn cấp SOS
Hành động của tác nhân Tương tác của hệ thống Dữ liệu liên quan
- Bấm nút SOS, nếu người dùng đã mua gói cước thì sẽ kích hoạt tính năng Nếu người dùng không hủy bỏ trong vòng 5 giây.
- Gửi push notification và IVR call bot đến người thân.
- Gửi push notification, tạo SOS ticket trên Operator web để theo dõi quá trình xử lý của trợ lý y khoa.
- Gửi lệnh tạo ticket qua hệ thống của GoTrust để trợ lý y khoa xử lý.
- Dữ liệu sức khỏe: Chỉ số bất thường và các chỉ số đi kèm tại thời điểm ghi nhận bất thường
- Dữ liệu khác: Thông tin cá nhân, thông tin gói cước, thông tin địa điểm tại thời điểm ghi nhận bất thường
- Trợ lý y khoa kiểm tra trường hợp và thực hiện đổi trạng thái ticket.
- Trạng thái trên Operator web được cập nhập tương ứng.
- Nếu trạng thái cập nhập là Đã hủy, hoặc đã hoàn thành thì sẽ gửi push notification đến người thân.
- Nếu trợ lý y khoa đặt lịch tư vấn với bác sĩ sẽ thông báo đến người dùng.
- Sau khi kết thúc phiên tư vấn, gửi đánh giá đến người dùng
- Trạng thái xử lý ticket.
- Dữ liệu khác: Thông tin cá nhân, thông tin gói cước, thông tin địa điểm tại thời điểm ghi nhận bất thường.
Hình 23: Giao diện cuộc gọi khẩn cấp SOS
Chức năng Nhật ký triệu chứng cho người dùng theo dõi triệu chứng của bản thân.
Bảng 11: Thông tin của chức năng Nhật ký triệu chứng
Tên chức năng Nhật ký triệu chứng
Mô tả Người dùng theo dõi triệu chứng của bản thân: xem triệu chứng, thêm triệu chứng, thêm ghi chú, sửa, xóa triệu chứng trong ngày và quá khứ.
Tác nhân Người dùng Điều kiện trước Đã đăng nhập vào ứng dụng. Điều kiện sau Xem và cập nhật thông tin thành công.
Các yêu cầu đặc biệt N/A
* Luồng cập nhật thông tin cá nhân
Hình 24: Luồng nhật ký triệu chứng
Bảng 12: Mô tả luồng chính cho chức năng Nhật ký triệu chứng
Hành động của tác nhân Tương tác của hệ thống Dữ liệu liên
- Người dùng bấm xem quan triệu chứng.
- Người dùng thêm triệu chứng
- Người dùng xóa triệu chứng
- Người dùng sửa ghi chú(optional).
- Lưu thông tin người dùng đã cập nhật - Thêm triệu chứng.
Hình 25: Giao diện nhật ký triệu chứng
3.2.1.5 Theo dõi sức khoẻ người thân
Bảng 13: Thông tin của chức năng Theo dõi sức khoẻ người thân
Tên chức năng Theo dõi sức khỏe người thân
Mô tả Người dùng theo dõi người được theo dõi chỉ số sức khỏe của người thân.
Tác nhân Người dùng Điều kiện trước Đã đăng nhập ứng dụng vHealth Đã theo dõi người thân.
32 Điều kiện sau Hiển thị thông tin người thân thành công.
Các yêu cầu đặc biệt N/A
* Luồng theo dõi sức khỏe người thân
Hình 26: Luồng theo dõi sức khoẻ người thân
Bảng 14: Mô tả luồng chính cho chức năng Theo dõi sức khoẻ người thân
Hành động của tác nhân Tương tác của hệ thống Dữ liệu liên quan
- Người dùng nhấn xem thông tin chi tiết của người thân.
- Hiển thị thông tin sức khỏe của người thân: Chỉ số sức khỏe, lịch sử khẩn cấp, dữ liệu sức khỏe.
Hình 27: Giao diện theo dõi sức khoẻ người thân
3.2.2 Thiết kế và thực thi Test case
Link Test case: https://docs.google.com/spreadsheets/d/17TpShB5ZlbT7LfEPeNmHT_caIR7VcMAZ zuRUU85VL-I/edit?usp=sharing
3.2.2.1 Test case kết nối thiết bị
Hình 28: Test case kết nối thiết bị
3.2.2.2 Test case theo dõi chỉ số sức khoẻ
Hình 29: Test case theo dõi chỉ số sức khoẻ
3.2.2.3 Test case cuộc gọi khẩn cấp SOS
Hình 30: Test case cuộc gọi khẩn cấp SOS
3.2.2.4 Test case nhật ký triệu chứng
Hình 31: Test case nhật ký triệu chứng
3.2.2.5 Test case theo dõi sức khoẻ người thân
Hình 32: Test case theo dõi sức khoẻ người thân
Báo cáo Bug trên Jira
3.3.1 Kết nối thiết bị đồng hồ thông minh 25b/25e
Hình 33: Bug thiết bị trùng lặp khi quét
Hình 34: Minh chứng cho Bug thiết bị trùng lặp khi quét
Hình 35: Bug ứng dụng không kết nối lại khi người dùng di chuyển