Tổng hợp Thử nghiệm ứng dụng: Phương pháp, công cụ, kế hoạch thử nghiệm

Bản thân mình trước đây đã từng hiểu nhầm ý nghĩa của từ: Test APP (Application). Mình nghĩ rằng: Nói tới Test App là test các ứng dụng cài đặt chạy trên Mobile Nhưng thực tế APPs không phải chỉ là ứng dụng chạy trên Mobile, mà có thể là ứng dụng trên máy tính cá nhân, Ứng đụng chạy trên web,…. Do đó, ở bài viết này sẽ tóm tắt phần nào những gì cần thiết để hiểu về Test App, cũng như là Phương pháp làm như nào, có công cụ hỗ trợ ra sao để thực hiện test ứng dụng

1. Ứng đụng là gì? (Application viết tắt app)

Là một loại chương trình được viết ra để thực hiện một hoặc nhiều công việc, nhiệm vụ nào đó trên nhiều nền tảng khác nhau như máy tính Internet, điện thoại

  • Ứng dụng thực chất là những: Tiện íchCông cụ
  • Ứng dụng có quan trọng không? Với công nghệ càng ngày càng hiện đại, phát triển vượt bậc như ngày nay, cùng sự ra đời của vô số các ứng dụng để hỗ trợ con người trong mọi việc. ví dụ chỉ đơn giản như xem giờ, báo thức, Nhắn tin, gọi điện, đặt hàng online, theo dõi con qua camera khi con di học….

Bạn nghĩ sao, nếu 1 ngày nào đó, bạn có lịch hẹn với khách hàng, mà đồng hồ báo thức hỏng, điện thoại không thể gọi, hoặc nhắn tin được… Chỉ với vài ví dụ nhỏ thế, cũng đủ để chứng minh rằng: *Ứng dụng rất quan trọng

  • Ứng dụng quan trọng như vậy, thì việc Thử nghiệm cho ứng dụng càng trở nên quan trọng hơn. Bởi lẽ: Nếu đồng hồ báo thức báo không đúng giờ, gọi điện thoại cho đối tác, mà lại thành gọi cho vợ / chồng các bạn thì hậu quả không biết thế nào nữa.

2. Thử nghiệm ứng dụng là gì?

Kiểm thử ứng dụng là một tập hợp các hoạt động được thực hiện thông qua các kịch bản với mục đích phát hiện lỗi trong phần mềm. Nó đề cập tới các bài kiểm tra cho toàn bộ ứng dụng.

Kiểm thử ứng dụng cũng có thể hiểu là một quá trình mà qua đó chức năng, khả năng sử dụng và tính nhất quán của toàn bộ ứng dụng được kiểm tra.

Việc kiểm thử ứng dụng giúp nâng cao chất lượng ứng dụng của bạn trong khi giảm chi phí, tối đa hóa việc hoàn lại vốn đầu tư và tiết kiệm thời gian phát triển.

Thử nghiệm ứng dụng có thể được thực hiện trong các mục khác nhau như giao diện, chức năng, cơ sở dữ liệu (phụ trợ), kiểm tra tải, v.v.

Các ứng dụng và sản phẩm phần mềm có một số biến thể về mặt tính năng mà chúng hỗ trợ cũng như các quy trình mà chúng triển khai. Vì vậy, kiểm tra ứng dụng đảm bảo rằng một chương trình hoặc ứng dụng cụ thể hoạt động đúng cách.

Vòng đời để kiểm thử ứng dụng bao gồm 4 giai đoạn.

  • Thiết kế kế hoạch kiểm thử dựa trên yêu cầu ứng dụng
  • Phát triển các trường hợp kiểm tra thủ công và tập lệnh thử nghiệm tự động
  • Thực hiện các kiểm tra chức năng để xác nhận các yêu cầu ứng dụng
  • Thực hiện kiểm tra tải và điều chỉnh hiệu suất ứng dụng

3. Phân loại ứng dụng

Một ứng dụng cho dù đó là phần mềm máy tính nhỏ chỉ với các phép toán số học cơ bản như cộng trừ, nhân, chia hoặc giải pháp doanh nghiệp trực tuyến; thì no vẫn có ba loại ứng dụng:

  • Ứng dụng Máy tính
  • Ứng dụng Web
  • Ứng dụng Điện thoại

Đối với các ứng dụng dành cho máy tính để bàn, thử nghiệm phải tính đến giao diện người dùng, logic nghiệp vụ, cơ sở dữ liệu, báo cáo, vai trò và quyền, tính toàn vẹn, khả năng sử dụng, chức năng, hiệu suất, bảo mật, phần cứng và phần mềm tương thích và luồng dữ liệu.

Đối với các ứng dụng web, Thử nghiệm phải chú trọng vào tầm quan trọng cho hiệu suất, tải và bảo mật của ứng dụng. Các loại thử nghiệm chính khác được kiểm tra là kiểm tra chức năng, kiểm tra trình duyệt chéo, UAT, thử nghiệm Beta, kiểm tra hồi quy, kiểm tra khả năng tương thích, tương thích và kiểm tra hỗ trợ đa ngôn ngữ và kiểm tra căng thẳng.

Đối với các ứng dụng di động, các loại thử nghiệm chính cần được thực hiện là kiểm tra giao diện người dùng, kiểm tra dựa trên quy tắc, hồi quy, thử nghiệm chức năng và bảo mật.

Vì vậy, ứng dụng được thử nghiệm là phần mềm máy tính để bàn hoặc trang web hoặc ứng dụng dành cho thiết bị di động.

Bảng tổng hợp các loại test cần thiết cho mỗi Loại Ứng dụng

Ứng dụng thử nghiệm Loại thử nghiệm
Ứng dụng WEB - Functional and Performance Testing
- Cross-browser Testing
- Load and stress Testing
- Regression and Compliance Testing
- User Acceptance Testing
- Beta Testing
- Exploratory and Smoke Testing
- Multilanguage support and compatibility Testing
Ứng dụng Máy tính - UI Testing
- Usability Testing
- Performance Testing
- Compatibility Testing (Software/ Hardware)
- Functional Testing
- Security Testing
Ứng dụng Điện thoại - UI Testing
- Rule based Testing
- Regression Testing
- Functional Testing
- Security Testing

4. Phương pháp thử nghiệm ứng dụng

Phương pháp thử nghiệm là các cách khác nhau để đảm bảo rằng một ứng dụng phần mềm được kiểm tra đầy đủ. Phương pháp thử nghiệm không có kế hoạch và nghèo nàn có thể dẫn đến một sản phẩm không ổn định, nhiều lỗi Có ba cách kiểm tra được thực hiện:

  • Kiểm tra hộp đen
  • Kiểm tra hộp trắng
  • Kiểm tra hộp xám

a. Kiểm tra hộp đen (Black Box Testing) Kỹ thuật kiểm tra hộp đen được sử dụng phổ biến để thử nghiệm Kiểm tra chức năng, kiểm tra phi chức năng và kiểm tra hồi quy. Trong thử nghiệm hộp đen, chiến lược thường được sử dụng là:

  • Phân lớp tương đương
  • Phân tích giá trị biên
  • Bảng quyết định
  • Bảng chuyển tiếp trạng thái

b. Kiểm tra hộp trắng (White Box Testing) Kiểm tra hộp trắng thường được sử dụng để kiểm tra mã của phần mềm để kiểm tra lỗ hổng bảo mật nội bộ, đường dẫn bị hỏng hoặc cấu trúc kém, chức năng của vòng điều kiện, v.v. Trong thử nghiệm hộp màu trắng, chiến lược thường được sử dụng là:

  • Phân tích bao phủ code
  • Bao phủ đường dẫn

c. Kiểm tra hộp màu xám Kỹ thuật thử nghiệm này là sự kết hợp của cả Kiểm thử hộp đen và kiểm tra hộp trắng. Nó được thực hiện phù hợp để tìm lỗi dựa trên cấu trúc không đúng hoặc sử dụng ứng dụng.

Tham khảo bài viết về Black box testing và White box testing: https://viblo.asia/p/phan-biet-black-box-test-va-white-box-test-so-luoc-mot-so-ky-thuat-trong-black-box-test-Az45bpm6ZxY

5. Kế hoạch thử nghiệm cho kiểm tra ứng dụng

Để viết Kế hoạch thử nghiệm, cần có Mô tả sản phẩm, Đặc tả yêu cầu phần mềm SRS hoặc Tài liệu sử dụng. Trọng tâm của kiểm thử là: kiểm tra những gì, làm thế nào để kiểm tra, khi nào sẽ kiểm tra, và ai sẽ là người kiểm tra. Tài liệu kế hoạch thử nghiệm được sử dụng như một phương tiện truyền thông giữa nhóm thử nghiệm và người quản lý kiểm tra. Một kế hoạch thử nghiệm tiêu chuẩn để kiểm thử ứng dụng nên xác định các tính năng sau:

  • Xác định phạm vi kiểm thử
  • Xác định mục tiêu thử nghiệm
  • Phương pháp tiếp cận cho hoạt động kiểm thử
  • Lịch trình thử nghiệm
  • Theo dõi lỗi và báo cáo

6. ỨNG DỤNG WEB

1. Công cụ kiểm tra ứng dụng

Có nhiều công cụ kiểm tra khác nhau để kiểm tra ứng dụng. Lựa chọn công cụ phụ thuộc vào loại thử nghiệm bạn muốn thực hiện. Đối với các công cụ khác nhau nền tảng khác nhau được khuyến khích. Công cụ kiểm tra ứng dụng đảm bảo hiệu suất, khả năng sử dụng và chức năng của các ứng dụng trên nhiều thiết bị khác nhau.

Đây là một vài trong số ứng dụng hay được sử dụng:

  • Selenium
  • IBM Rational Robot
  • RFT (Rational Functional Tester)
  • Load Runner ( HP Performance Tester)
  • Apache Jmeter

2. Các phương pháp tốt nhất để thử nghiệm ứng dụng

Lựa chọn chiến lược phù hợp để kiểm tra ứng dụng là một cách được bảo đảm để phát hiện lỗi trong ứng dụng. Vì vậy, nó trở nên cực kỳ quan trọng mà đội QA tuân theo một bộ quy trình tiêu chuẩn để phát hiện nhiều lỗi hơn và với lượng thời gian ít hơn.

Để thử nghiệm ứng dụng, một số phương pháp hay như:

  • Xác định thông số chức năng
  • Đánh giá lại và kiểm tra
  • Tiêu chuẩn đầu vào và ra
  • Các biến đổi chức năng
  • Thử nghiệm đa nền tảng
  • Thực hiện kiểm tra tự động

3. Thách thức thử nghiệm ứng dụng

Trong khi thử nghiệm ứng dụng, người thử nghiệm có thể gặp phải nhiều thách thức như:

  • Các sự cố chỉ được xác định khi người dùng gọi tới
  • Không có khả năng dự đoán tác động của thay đổi
  • Không có khả năng thấy được lỗi ứng đụng và hoạt động
  • Tốn thời gian

7. ỨNG DỤNG MOBILE

1. Thử nghiệm ứng dụng di động

Giống như thử nghiệm ứng dụng web, thử nghiệm ứng dụng trên thiết bị di động cũng dựa trên cùng một chiến lược và phương pháp thử nghiệm. Sự khác biệt có thể là trong các công cụ được sử dụng để thử nghiệm, một số công cụ phổ biến được sử dụng để thử nghiệm ứng dụng trên thiết bị di động là Sikuli, TestComplete, FoneMonkey, Robotium, v.v.

Các loại ứng dụng dành cho thiết bị di động được phân loại thành ba phần:

  • Ứng dụng web - Người dùng truy cập qua mạng như internet hoặc mạng nội bộ
  • Ứng dụng bản địa - Nó được phát triển cho nền tảng cụ thể và được cài đặt trên một thiết bị máy tính
  • Ứng dụng lai - Nó kết hợp các yếu tố của cả Web và bản địa. Ví dụ: Facebook. Đối với hầu hết nền tảng di động, bạn có thể sử dụng CSS, HTML, JS, v.v. đơn giản

2. Thử nghiệm ứng dụng di động cần làm những gì

Chiến lược thử nghiệm ứng dụng di động hoàn chỉnh bao gồm cơ sở hạ tầng, thiết bị và mạng, lựa chọn thiết bị đích và kết hợp hiệu quả các công cụ kiểm tra thủ công và tự động để kiểm thử tổng thể cả phi chức năng và chức năng. Đối với ứng dụng dành cho thiết bị di động, những thứ cần kiểm tra:

  • Cài đặt
  • OTA (Online Travel Agent)
  • Wifi
  • Cáp dữ liệu
  • Bluetooth
  • Gỡ cài đặt
  • Logo ứng dụng
  • Splash
  • Bộ nhớ thấp
  • Phản hồi trực quan
  • Thoát ứng dụng
  • Bắt đầu / Khởi động lại ứng dụng

3. Thử thách thử nghiệm thiết bị di động

Với số lượng người dùng và thiết bị di động ngày càng tăng, việc thử nghiệm ứng dụng dành cho thiết bị di động ngày càng trở nên phức tạp hơn. Thử nghiệm một ứng dụng di động khác với ứng dụng web dựa trên máy tính để bàn. Những thách thức chung gặp phải trong quá trình thử nghiệm trên thiết bị di động thường gặp là:

  • Phạm vi kiểm tra toàn diện
  • Quản lý phân mảnh (phiên bản O.S, bộ xử lý, bộ nhớ khác nhau)
  • Thiếu kế hoạch kiểm tra
  • Áp lực về thời gian
  • Thiếu thiết bị vật lý ( vấn đề này rất hay gặp phải, kể cả với các doanh nghiệp lớn)
  • Đa dạng về nền tảng và hệ điều hành (thường hay phát sinh lỗi trên các nển tảng khác nhau)

Tóm tắt:

Với việc thử nghiệm ứng dụng, toàn bộ ứng dụng sẽ được kiểm tra, dựa vào các phương pháp khác nhau, công cụ khác nhau. Tuy nhiên còn phụ thuộc nhiều vào sự hiểu biết của người thử nghiệm. Bài viết chỉ mang tính chất tổng hợp, chi tiết các bạn có thể tìm hiểu nhiều hơn trên Viblo hoặc các trang web khác nhé.

Tài liệu tham khảo:

https://www.guru99.com/application-testing.html https://www.softwaretestinghelp.com/application-testing-into-the-basics-of-software-testing/ https://vi.wiktionary.org/wiki/