Cách Viết Test Case Cho Phần Mềm

1. Test Case là gì?

Các test case giúp hướng dẫn tester thông qua một chuỗi các bước để xác thực xem application có lỗi hay không và hoạt động theo yêu cầu của người dùng hay không. Học cách viết các test case đòi hỏi các kỹ năng viết cơ bản, chú ý đến chi tiết và tester phải hiểu rõ về application được test.

Thông thường, các test case được viết cho một mô-đun nhất định hoặc một phần của application, được nhóm thành một test suite. Không phải thông thường, một phiên test sẽ bao gồm nhiều test case vì thường sẽ có nhiều hơn một kịch bản cụ thể được test.

2. Một test case được viết tốt sẽ cho phép bất kỳ tester nào cũng hiểu được và thực hiện được test.

Khi viết test case, điều quan trọng là bạn phải đặt mình vào vị trí của người dùng và nghĩ về tất cả những điều bạn cho là cần thiết để application hoạt động đúng. Trước tiên là bạn phải nổ lực để viết các test case tốt trước sẽ giúp bạn tiết kiệm thời gian và công sức sau này. Các test case được viết tốt sẽ tạo ra sự khác biệt giữa một application được test tốt và một application được test không tốt.

Viết các test case – đặc biệt là viết một số lượng lớn trong cùng một lúc – có thể là một công việc tốn thời gian. Ở đây, chúng ta sẽ nghiên cứu một số mẹo về cách viết các test case, cùng với một mẫu của một test case ở cuối bài viết này.

3. Cách viết test case cho phần mềm: 3.1. Sử dụng một tiêu đề rõ ràng

Một test case tốt bắt đầu với một tiêu đề rõ ràng. Như một best practice, tốt nhất là đặt tên cho test case cùng với tên mô-đun mà bạn đang test. Ví dụ: nếu bạn đang test trang login, hãy thêm “[Login Page]” vào trong tiêu đề của test case. Trong một số trường hợp, nếu công cụ bạn đang sử dụng chưa làm điều này, thì bạn cũng nên thêm vào một mã định danh duy nhất trong tiêu đề của test case, khi đó, định danh có thể được tham chiếu thay vì tiêu đề dài

3.2. Phải có một mô tả rõ ràng

Mô tả sẽ cho tester biết họ sẽ test cái gì. Đôi khi phần này cũng có thể bao gồm các thông tin khác như môi trường test, dữ liệu test và các điều kiện tiên quyết/giả định. Một mô tả phải dễ đọc và ngay lập tức truyền đạt mục tiêu test.

3.3. Nên chứa giả định và điều kiện tiên quyết

Bạn nên có một giả định bất kỳ nào áp dụng cho test và bất kỳ điều kiện tiên quyết nào phải được đáp ứng trước khi test được thực hiện. Thông tin này có thể bao gồm trang nào người dùng nên bắt đầu test, phụ thuộc vào môi trường test và bất kỳ yêu cầu thiết lập đặc biệt nào phải được thực hiện trước khi chạy test. Thông tin này cũng giúp giữ cho các bước test ngắn gọn và súc tích.

3.4. Giữ các bước test rõ ràng và súc tích

Các test case nên đơn giản. Hãy nhớ rằng, người viết test case có thể không phải là người thực hiện chính bài test đó. Các bước test phải bao gồm dữ liệu và thông tin cần thiết về cách thực hiện test. Đây có lẽ là phần quan trọng nhất của một test case. Giữ phần này rõ ràng và súc tích, nhưng đừng bỏ qua bất kỳ chi tiết cần thiết nào. Viết một test case để bất cứ ai cũng có thể xem và thực hiện test.

3.5. Phải chứa kết quả mong đợi

Kết quả mong đợi sẽ cho tester biết họ nên nhận được gì khi thực hiện các bước test. Đây là cách tester xác định xem test case pass hay fail.

3.6. Nên viết test case có thể tái sử dụng được

Một test case tốt có thể tái sử dụng và có giá trị lâu dài cho testing team của bạn. Khi viết một test case, hãy ghi nhớ điều này. Bạn có thể tiết kiệm thời gian xuống bằng cách sử dụng lại test case thay vì viết lại.

4. Mẫu của một test case

Title: [Login Page] Login successfully.

Summary: Verify if a user will be able to login with a valid username and valid password.

Pre-condition: User created an account before.

Step by Step

1. Navigate to [Login] page 2. Input username is correct 3. Input password is correct 4. Tap on [Login] button 5. Observe

Expected result: Login successfully when entering username and password are correct

5. Công cụ để viết test case

Không có một phương pháp chính xác để viết lại nội dung các test case của bạn, nhưng có nhiều công cụ giúp quá trình viết các test case hiệu quả. Ví dụ, các test case thường được viết trong file excel. Nhiều testing team vẫn lựa chọn phương pháp này. Nó khá linh hoạt, bạn có thể tạo quy trình và phương pháp theo dõi các test case của riêng mình, nhưng nó cũng có thể cực kỳ tốn thời gian và cồng kềnh.

Một số team sử dụng các công cụ quản lý dự án để ghi lại các test case của họ. Đây là một thay thế tuyệt vời cho excel vì có khả năng share giữa các member trong team

Với một công cụ dành riêng cho các test case, bạn có thể viết các test case của mình, thực hiện các test của mình, báo cáo kết quả và cộng tác với nhóm của bạn trong mỗi bước của quy trình.

6. Lợi ích thêm của viết test case

Việc luyện tập viết test case giúp cho testing team có thể coverage được nhiều case nhất có thể xuyên suốt application, nhưng việc viết các test case thậm chí có tác động hơn đến việc đảm bảo chất lượng và trải nghiệm người dùng.

Bạn sẽ tìm thấy những lỗi trong thiết kế sớm hơn

Bạn sẽ tìm thấy các vấn đề về khả năng sử dụng

Những thành viên mới có thể nhận và test application mà không cần phải đào tạo nhiều

Nó có thể tạo sự đồng cảm với người dùng của bạn

Nó giúp bạn và những người khác hiểu về product

Khi viết test case bạn đã đặt bạn vào vị trí của người dùng, điều này tạo nên sự đồng cảm cho những người dùngthực sự sẽ sử dụng product của bạn. Điều này có thể giúp dễ dàng feedback trở lại về thiết kế và quá trình phát triển. Khi bạn viết các test case, bạn sẽ xác định các vấn đề và các điểm cần cải thiện, những vấn đề này có thể được giải quyết trước khi application được đưa lên production.

Viết test case có nghĩa là bất kỳ thành viên nào mới đều có thể dễ dàng tăng tốc độ làm việc trên dự án mà không cần đào tạo nhiều. Cuối cùng, các test case phác thảo chính xác cách sử dụng product và những gì được mong đợi.

Một bộ các test case tốt sẽ giúp các thành viên khác trong team có thể share cho người khác để dễ dàng tìm hiểu về dự án. Hãy nghĩ về việc hỗ trợ khách hàng. Team hỗ trợ có thể duyệt các test case để hiểu các tính năng sắp tới sẽ hoạt động như thế nào. Họ có thể sử dụng những test case đó để viết tài liệu kỹ thuật và nội dung trợ giúp.

7. Phần kết luận

Viết các test case cần phải thực hành và có hiểu biết về phần mềm đang được test. Các test case được viết tốt có thể làm cho quá trình test của bạn trơn tru hơn và giúp bạn tiết kiệm thời gian trong quá trình sau này. Hãy dùng một công cụ để bạn có thể quản lý và sắp xếp các test case của mình một cách hiệu quả.

Tham khảo

All Rights Reserved

Mobile Apps Testing: Mẫu Test Case & Kịch Bản Kiểm Thử

Câu hỏi thường gặp mà tôi cũng đã thắc mắc là “Cách kiểm thử App dành cho thiết bị di động?” Trong hướng dẫn này, tôi cung cấp Mẫu kiểm thử, Kịch bản / Các trường hợp kiểm tra để thử nghiệm một ứng dụng di động.

Bạn có thể thực hiện một số hoặc tất cả các Test Cases dựa trên các yêu cầu thử nghiệm trên thiết bị di động của bạn. Các test cases được tổ chức dựa trên các loại thử nghiệm trên thiết bị di động.

Functional Testing Test Cases

Loại ứng dụng dựa trên việc sử dụng chức năng kinh doanh (ngân hàng, chơi game, xã hội hoặc kinh doanh)

Loại đối tượng mục tiêu (người tiêu dùng, doanh nghiệp, giáo dục)

Kênh phân phối được sử dụng để truyền bá ứng dụng (ví dụ: Apple App Store, Google play, phân phối trực tiếp)

Các kịch bản thử nghiệm cơ bản nhất trong thử nghiệm chức năng có thể được coi là:

Để xác nhận xem tất cả các trường bắt buộc bắt buộc có đang hoạt động theo yêu cầu hay không.

Để xác nhận rằng các trường bắt buộc được hiển thị trên màn hình theo cách đặc biệt hơn các trường không bắt buộc.

Để xác nhận xem ứng dụng có hoạt động theo yêu cầu bất cứ khi nào ứng dụng bắt đầu / dừng lại hay không.

Để xác nhận xem ứng dụng có chuyển sang chế độ thu nhỏ bất cứ khi nào có cuộc gọi đến không. Để xác nhận điều tương tự, chúng ta cần sử dụng điện thoại thứ hai để gọi điện thoại.

Để xác nhận xem điện thoại có thể lưu trữ, xử lý và nhận SMS bất cứ khi nào ứng dụng đang chạy hay không. Để xác nhận tương tự, chúng ta cần phải sử dụng một điện thoại thứ hai để gửi sms đến thiết bị đang được thử nghiệm và nơi ứng dụng đang thử nghiệm hiện đang chạy.

Để xác thực rằng thiết bị có thể thực hiện các yêu cầu đa nhiệm bất cứ khi nào cần thiết.

Để xác nhận rằng ứng dụng cho phép các tùy chọn mạng xã hội cần thiết như chia sẻ, đăng và điều hướng, v.v.

Để xác nhận rằng ứng dụng hỗ trợ bất kỳ giao dịch cổng thanh toán nào như Visa, Mastercard, Paypal, vv theo yêu cầu của ứng dụng.

Để xác thực rằng các tình huống cuộn trang đang được kích hoạt trong ứng dụng khi cần thiết.

Để xác nhận rằng các lỗi cắt ngắn là hoàn toàn nằm trong khẳ năng giải quyết.

Để xác thực rằng người dùng nhận được thông báo lỗi thích hợp như “Lỗi mạng. Hãy thử sau một thời gian “bất cứ khi nào có bất kỳ lỗi mạng nào.

Để xác thực rằng ứng dụng đã cài đặt cho phép các ứng dụng khác thực hiện thỏa đáng, và nó không ăn vào bộ nhớ của các ứng dụng khác.

Để xác thực rằng ứng dụng sẽ tiếp tục hoạt động sau cùng trong trường hợp khởi động lại hoặc hỏng hệ thống.

Để xác nhận xem việc cài đặt ứng dụng có thể được thực hiện trơn tru miễn là người dùng có các tài nguyên cần thiết và nó không dẫn đến bất kỳ lỗi đáng kể nào.

Để xác nhận rằng ứng dụng thực hiện cơ sở khởi động tự động theo các yêu cầu.

Để xác thực xem ứng dụng có thực hiện theo yêu cầu trong tất cả các phiên bản của thiết bị di động là 2g, 3g và 4g hay không.

Để thực hiện Kiểm tra hồi quy để phát hiện các lỗi phần mềm mới trong các khu vực hiện có của một hệ thống sau khi đã thực hiện các thay đổi đối với chúng. Cũng chạy lại các kiểm tra đã thực hiện trước đó để xác định rằng hành vi của chương trình đã không thay đổi do các thay đổi.

Để xác nhận xem ứng dụng có cung cấp hướng dẫn sử dụng có sẵn cho những người không quen thuộc với ứng dụng hay không.

Performance Testing Test Cases

Loại mục tiêu cơ bản của thử nghiệm này là đảm bảo rằng ứng dụng thực hiện chấp nhận được theo các yêu cầu hiệu suất nhất định như quyền truy cập của một số lượng lớn người dùng hoặc loại bỏ phần cơ sở hạ tầng quan trọng như máy chủ cơ sở dữ liệu.

Các kịch bản thử nghiệm chung cho Kiểm tra hiệu suất trong ứng dụng dành cho thiết bị di động là:

Để xác định xem ứng dụng có thực hiện theo yêu cầu trong các điều kiện tải khác nhau hay không.

Để xác định xem mức độ phủ sóng của mạng hiện tại có thể hỗ trợ ứng dụng ở mức cao nhất, trung bình và tối thiểu hay không.

Để xác định xem thiết lập cấu hình máy khách-máy chủ hiện có có cung cấp mức hiệu suất tối ưu được yêu cầu không.

Để xác định các tắc nghẽn ứng dụng và cơ sở hạ tầng khác nhau ngăn cản ứng dụng thực hiện ở các mức chấp nhận được yêu cầu.

Để xác nhận xem thời gian phản hồi của ứng dụng có đúng với các yêu cầu không.

Để đánh giá sản phẩm và / hoặc phần cứng để xác định xem nó có thể xử lý khối lượng tải dự kiến hay không.

Để đánh giá liệu tuổi thọ pin có thể hỗ trợ ứng dụng thực hiện theo khối lượng tải dự kiến hay không.

Để xác nhận hiệu suất ứng dụng khi mạng được chuyển thành WIFI từ 2G / 3G hoặc ngược lại.

Để xác nhận mỗi chu kỳ CPU được yêu cầu là tối ưu hóa

Để xác nhận rằng mức tiêu thụ pin, rò rỉ bộ nhớ, tài nguyên như GPS, hiệu suất Máy ảnh cũng nằm trong các hướng dẫn bắt buộc.

Để xác nhận tuổi thọ của ứng dụng bất cứ khi nào người dùng tải nghiêm ngặt.

Để xác thực hiệu suất mạng trong khi di chuyển xung quanh với thiết bị.

Để xác nhận hiệu suất của ứng dụng khi chỉ cần có các giai đoạn kết nối liên tục.

Security Testing Test Cases

Mục tiêu cơ bản của kiểm tra bảo mật là đảm bảo rằng các yêu cầu về bảo mật mạng và dữ liệu của ứng dụng được đáp ứng theo các nguyên tắc.

Để xác thực rằng ứng dụng có thể chịu được bất kỳ tấn công bạo lực nào, đó là quá trình thử nghiệm và lỗi tự động được sử dụng để đoán tên người dùng, mật khẩu hoặc số thẻ tín dụng của một người.

Để xác nhận xem một ứng dụng có cho phép kẻ tấn công truy cập vào nội dung nhạy cảm hoặc chức năng mà không cần xác thực thích hợp hay không.

Để xác thực rằng ứng dụng có hệ thống bảo vệ mật khẩu mạnh và không cho phép kẻ tấn công lấy, thay đổi hoặc khôi phục mật khẩu của người dùng khác.

Để xác nhận rằng ứng dụng không bị hết hạn phiên.

Để xác định các phụ thuộc động và thực hiện các biện pháp để ngăn chặn bất kỳ kẻ tấn công nào truy cập các lỗ hổng này.

Để xác định và phục hồi từ bất kỳ kịch bản mã không được quản lý nào.

Để đảm bảo các chứng chỉ có được xác nhận hay không, ứng dụng có triển khai Chứng chỉ ghim hay không.

Để bảo vệ ứng dụng và mạng khỏi các cuộc tấn công từ chối dịch vụ.

Để phân tích lưu trữ dữ liệu và yêu cầu xác thực dữ liệu.

Để cho phép quản lý phiên để ngăn chặn người dùng trái phép truy cập thông tin không được yêu cầu.

Để kiểm tra xem mã mật mã có bị hỏng hay không và đảm bảo rằng mã đã được sửa chữa.

Để xác thực xem việc thực hiện logic nghiệp vụ có được bảo mật hay không và không dễ bị tấn công từ bên ngoài.

Để phân tích các tương tác hệ thống tệp, hãy xác định bất kỳ lỗ hổng nào và sửa các vấn đề này.

Để xác thực các trình xử lý giao thức, ví dụ như cố gắng cấu hình lại trang đích mặc định cho ứng dụng bằng một iframe độc ​​hại.

Để bảo vệ chống lại tiêm bên khách hàng độc hại.

Để bảo vệ chống lại tiêm thời gian độc hại.

Để điều tra bộ nhớ đệm của tệp và ngăn chặn mọi khả năng độc hại từ cùng một tệp.

Để ngăn không cho lưu trữ dữ liệu không an toàn trong bộ đệm ẩn của bàn phím của ứng dụng.

Để điều tra cookie và ngăn chặn bất kỳ hành động độc hại nào từ cookie.

Để cung cấp kiểm toán thường xuyên cho phân tích bảo vệ dữ liệu.

Điều tra các tệp được tạo tùy chỉnh và ngăn chặn bất kỳ hành động độc hại nào từ các tệp được tạo tùy chỉnh.

Để ngăn chặn tràn bộ đệm và các trường hợp tham nhũng bộ nhớ. 24.Để phân tích các luồng dữ liệu khác nhau và ngăn ngừa bất kỳ lỗ hổng nào từ các luồng này.

Usability Testing Test Cases

Quy trình kiểm tra khả năng sử dụng của ứng dụng Di động được thực hiện để có một ứng dụng bước nhanh chóng và dễ dàng với ít chức năng hơn so với ứng dụng chậm và khó khăn với nhiều tính năng. Mục tiêu chính là để đảm bảo rằng chúng ta sẽ có một giao diện dễ sử dụng, trực quan và tương tự như các ngành được chấp nhận trong ngành được sử dụng rộng rãi.

Để đảm bảo rằng các nút phải có kích thước cần thiết và phù hợp với các ngón tay lớn.

Để đảm bảo rằng các nút được đặt trong cùng một phần của màn hình để tránh nhầm lẫn với người dùng cuối.

Để đảm bảo rằng các biểu tượng là tự nhiên và nhất quán với ứng dụng.

Để đảm bảo rằng các nút có cùng chức năng cũng phải có cùng màu.

Để đảm bảo rằng việc xác thực cho các tiện ích phóng to thu nhỏ và thu nhỏ phải được bật.

Để đảm bảo rằng đầu vào bàn phím có thể được giảm thiểu một cách thích hợp.

Để đảm bảo rằng ứng dụng cung cấp một phương thức để quay lại hoặc hoàn tác một hành động, khi chạm vào mục sai, trong một khoảng thời gian chấp nhận được.

Để đảm bảo rằng các menu ngữ cảnh không bị quá tải vì nó phải được sử dụng nhanh chóng.

Để đảm bảo rằng văn bản được giữ đơn giản và rõ ràng để hiển thị cho người dùng.

Để đảm bảo rằng các câu ngắn và đoạn văn có thể đọc được cho người dùng cuối.

Để đảm bảo rằng kích thước phông chữ đủ lớn để có thể đọc được và không quá lớn hoặc quá nhỏ.

Để xác thực ứng dụng sẽ nhắc người dùng bất cứ khi nào người dùng bắt đầu tải xuống một lượng lớn dữ liệu có thể không có lợi cho hiệu suất ứng dụng.

Để xác thực rằng việc đóng ứng dụng được thực hiện từ các trạng thái khác nhau và xác minh xem nó có mở lại trong cùng một trạng thái hay không.

Để đảm bảo rằng tất cả các chuỗi được chuyển đổi thành các ngôn ngữ thích hợp bất cứ khi nào có sẵn một cơ sở dịch thuật ngôn ngữ.

Để đảm bảo rằng các mục ứng dụng luôn được đồng bộ hóa theo các hành động của người dùng.

Để đảm bảo rằng người dùng cuối được cung cấp hướng dẫn sử dụng giúp người dùng cuối hiểu và vận hành ứng dụng có thể không quen thuộc với các thủ tục của ứng dụng.

Kiểm tra khả năng sử dụng thường được thực hiện bởi người dùng thủ công vì chỉ có con người mới có thể hiểu được khả năng nhạy cảm và thoải mái của những người dùng khác.

Compatibility Testing Test Cases

Thử nghiệm tương thích trên thiết bị di động được thực hiện để đảm bảo rằng thiết bị di động có kích thước, độ phân giải, màn hình, phiên bản và phần cứng khác nhau nên ứng dụng sẽ được kiểm tra trên tất cả các thiết bị để đảm bảo ứng dụng hoạt động như mong muốn.

Để xác nhận giao diện người dùng của ứng dụng là theo kích thước màn hình của thiết bị, không có văn bản / điều khiển nào là vô hình hoặc không thể truy cập được.

Để đảm bảo rằng văn bản có thể đọc được cho tất cả người dùng cho ứng dụng.

Để đảm bảo chức năng gọi / báo thức được kích hoạt bất cứ khi nào ứng dụng đang chạy. Ứng dụng này được thu nhỏ hoặc tạm ngưng trong trường hợp có cuộc gọi và sau đó bất cứ khi nào cuộc gọi dừng lại, ứng dụng sẽ được tiếp tục.

Recoverability Testing Test Cases

Phục hồi sự cố và gián đoạn giao dịch

Xác nhận tình hình phục hồi ứng dụng hiệu quả sau các tình huống gián đoạn / sự cố bất ngờ.

Xác minh cách ứng dụng xử lý giao dịch trong khi mất điện (tức là pin chết hoặc đột ngột tắt thiết bị thủ công)

Việc xác nhận quá trình mà kết nối bị treo, hệ thống cần phải thiết lập lại để khôi phục dữ liệu bị ảnh hưởng trực tiếp bởi kết nối bị treo.

Important Checklist

Cài đặt thử nghiệm (cho dù các ứng dụng có thể được cài đặt trong một khoảng thời gian hợp lý và với tiêu chuẩn bắt buộc)

Gỡ cài đặt thử nghiệm (cho dù ứng dụng có thể được gỡ cài đặt trong một khoảng thời gian hợp lý và với tiêu chí bắt buộc)

Các trường hợp kiểm tra mạng (xác nhận xem mạng có hoạt động theo tải yêu cầu hay không, cho dù mạng có thể hỗ trợ tất cả các ứng dụng cần thiết trong quá trình thử nghiệm)

Kiểm tra các phím chưa được ánh xạ

Kiểm tra màn hình splash của ứng dụng

Tiếp tục nhập bàn phím trong quá trình ngắt và các thời điểm khác như sự cố mạng

Các phương thức xử lý việc thoát khỏi ứng dụng

hiệu ứng sạc trong khi một ứng dụng đang chạy trong nền

Pin yếu và nhu cầu hiệu suất cao

Loại bỏ pin trong khi một ứng dụng đang được thực hiện

Tiêu thụ pin theo ứng dụng

Kiểm tra tác dụng phụ của ứng dụng

Nguồn dịch: https://www.guru99.com/testing-mobile-apps.html

All Rights Reserved

Viết Test Case Cho Phần Đăng Nhập Của Một App Mobile

+ App chỉ cho phép đăng nhập bằng số điện thoại di động.

+ Logo không có link, chỉ là cái hình đại diện

+ Số điện thoại là một label

+ Nút đăng nhập là một button

+ Ô nhập số điện thoại là 1 textbox theo quy định của số điện thoại

Hãy viết test case cho tất cả các trường hợp kiểm thử.

+ Về giao diện, thì cần nhìn tổng quan xem kết quả app thực tế có giống với hình vẽ của mẫu thiết kế hay không.

+ Font chữ, kích thước các nút và logo, cũng như chiều cao, chiều dài textbox và label

+ Điều kiện để đăng nhập thành công là gì?

+ Phương thức đăng nhập được thực hiện như thế nào?

+ Chỉ có cái điện thoại không thì không thể đăng nhập được.

Vì nếu vậy thì người khác biết số điện thoại của mình là có thể đăng nhập được. Vì vậy mình đoán là sau khi nhập số điện thoại, nó sẽ hiển thị màn hình tiếp theo để nhập mật khẩu. Hoặc hệ thống sẽ gửi một mật khẩu dùng một lần (OTP) đến số điện thoại (vừa được nhập) để đăng nhập. Nếu làm theo cách OTP thì sẽ có rủi ro, người cầm điện thoại của mình sẽ nhập số điện thoại của mình và nhận được sms của mình, và đăng nhập luôn

+ Điều kiện để đăng nhập thất bại là gì?

Khi đã biết điều kiện để đăng nhập thành công, thì mình sẽ biết làm sao để nó thất bại.

+ Nhập khoảng trắng đầu, giữa và cuối dòng.

+ Số điện thoại bắt đầu 1 chữ số (khác 0)

+ Nhập sđt hợp lệ (10 số)

+ Nhập sđt hợp lệ (11 số)

1. Sdt nhập cả chữ và số thì sao, ktra security. Khoảng trắng 2 đầu sdt 2. Test xoay ngang , dọc màn hình. 3. 2 điện thoại cùng dn 1 số ntn. 4. Sau dn thành công thì vào màn hình nào. 5. Môi trg test nữa ví dụ điện thoại nào, hệ điều hành. 6. Có kết nối, k kết nối mạng thì sao 7. Đăng nhập vào nhận mã otp xong thì điện thoại sụt nguồn, tắt máy, mất mạng sao … 8. Đăng nhập có cuộc gọi đến thì sao

9. Đăng nhập vào ok, chưa thoát ra, lại đăng nhập vào bằng 1 điện thoại khác thì hệ thống xlys ntn

10. Copy ký tự đặc biệt, ký tự chữ rồi paste vào có được không

11. Trường hợp dùng bảng mã khác unicode thì nhập số có oki ko

12. Nếu app này được cài đặt nhiều ngôn ngữ thì khi chuyển đổi giữa các ngôn ngữ có bị lỗi hay không

How To Write Test Cases ( Hướng Dẫn Cách Viết Testcases)

Đầu tiên, chúng ta cùng tìm hiểu:

A. Testcase là gì?

Testcase là các trường hợp kiểm thử bao gồm các hành động được thực hiện nhằm kiểm tra từng chức năng của ứng dụng phần mềm có hoạt động đúng theo như mong muốn hay không.

B. Làm thế nào để có thể viết được Testcase tốt?

I. Trước khi bắt tay vào việc viết Testcase thì chúng ta cần nhớ những điểm sau đây:

Là 1 newbie, mới gia nhập công ty, chúng ta nên hỏi QA leader về template viết Testcase và xin file đó để làm. ( Vì mỗi công ty sẽ có cách viết khác nhau)

Viết Testcase nhớ phải bám sát tài liệu yêu cầu ( spec)

1 Testcase ID không quá 15 bước ( step)

Trước khi viết Testcase thì ta nên đọc và phân tích tài liệu thật kĩ càng, có chỗ nào chưa hiểu thì đặt Q&A ( Question & Answer) với các member trong team hoặc QA leader hoặc khách hàng để việc viết testcase và test được chính xác và chắc chắn hơn.

II. Những nguyên tắc để viết TestCase tốt:1. Các trường hợp kiểm thử cần phải đơn giản và minh bạch: (Test Cases need to be simple and transparent)

Tạo các testcase đơn giản nhất có thể nhưng vẫn phải rõ ràng và dễ hiểu.

2. Tạo Testcase với vai trò mình là End -user (người dùng ứng dụng đó)

Mục tiêu cuối cùng của bất kì dự án phần mềm nào cũng là đáp ứng được tất cả các yêu cầu của khách hàng. Vậy nên đặt vị trí của mình là người dùng thì sẽ thực hiện test được hiệu quả hơn. Chứ không nên có suy nghĩ mình chỉ là QA, chỉ là tester nên mình cứ test theo những gì spec nói thôi. Khi thấy UI nó khó dùng thì ta nên ta feedback lại với PM hay với mọi người để tất cả cùng cân nhắc có nên thay đổi hay không.

3. Mỗi testcase đều phải được xác định

Đặt tên ID cho từng testcase để dễ dàng theo dõi

b, Phân vùng tương đương (Equivalence Partition): Kỹ thuật này phân vùng phạm vi thành các phần / nhóm bằng nhau có xu hướng có cùng hành vi.

c,Kỹ thuật Bảng quyết định (Decision tables) : Phương pháp này tìm được những tác động khi kết hợp các yếu tốt đầu vào khác nhau và các trạng thái phần mềm mà phải thực hiện đúng các quy tắc nghiệp vụ khác.

d, Kỹ thuật đoán lỗi (Error Guessing Technique): Đây là đoán / dự đoán lỗi có thể phát sinh trong khi thực hiện test manual.

5. Review chéo (Peer Review): Sau khi tạo xong Testcase, hãy nhờ đồng nghiệp của bạn review giúp, có thể là QA leader hay QA cùng team để phát hiện ra các case mà bạn còn thiếu hoặc bạn chưa nghĩ tới.

C. Thực hành viết Testcase:

Khi join vào dự án, chúng ta được QA Leader giao cho nhiệm vụ là viết Testcase cho màn Login của 1 website với UI như thế này:

Ta sẽ viết theo format chuẩn như sau:

Testcase ID Test Scenario Test Steps Test Data Expected Results Actual Results Status

LG01

Check UI

As expected

Pass

LG02

Check button Sign in when user input valid data

4. User can login successfully and system go to the Homepage

As expected

Pass

LG03

Check button Sign in when user input invalid data

4. User cannot login and system shows error message: Email is invalid.

As expected

Pass

Qua 3 ví dụ trên các bạn có thể dễ dàng hơn với việc với Testcase rồi đúng không nào? Tương tự các case trên, các bạn áp dụng Kĩ thuật Bảng quyết định, ta sẽ có thêm các case sau:

Use Case Và Use Case Testing

Use case là một tài liệu mô tả từ đầu đến cuối hành vi của hệ thống từ góc nhìn của người sử dụng. Use case mô tả sự tương tác đặc trưng giữa người dùng bên ngoài (Actor) và hệ thống. Mỗi Use case sẽ mô tả cách thức người dùng tương tác với hệ thống để đạt được mục tiêu nào đó. Ngoài ra, Use case cũng xác định trình tự các bước mô tả mọi tương tác giữa người dùng và hệ thống. Tuy nhiên, Use case được định nghĩa theo thuật ngữ của người dùng, không phải của hệ thống, mô tả những gì mà người dùng làm và người dùng nhìn thấy hơn là những gì đầu vào hệ thống mong đợi và đầu ra của hệ thống là gì.

Những thành phần của Use case

Brief description: Mô tả ngắn gọn giải thích các trường hợp

Actor: Người dùng hệ thống

Precondition: Là các điều kiện được thỏa mãn trước khi bắt đầu thực hiện

Basic flow: hay “Main Scenario” là những luồng cơ bản trong hệ thống. Đó là luồng giao dịch được thực hiện bởi người dùng để hoàn thành mục đích của họ. Khi người dùng tương tác với hệ thống, vì đó là workflow bình thường nên sẽ không có bất kì lỗi nào xảy ra và người dùng sẽ nhận được đầu ra như mong đợi.

Alternate flow: Ngoài workflow thông thường, hệ thống cũng có thể có workflow thay thế. Đây là tương tác ít phổ biến hơn được thực hiện bởi người dùng với hệ thống

Exception flow: Là các luồng ngăn cản người dùng đạt được mục đích của họ

Post conditions: Các điều kiện cần được kiểm tra sau khi hoàn thành.

Use case diagram

Use case diagram là một sơ đồ biểu diễn bằng hình ảnh về các hành vi của người dùng trong một hệ thống, cách người dùng tương tác với hệ thống. Nó chỉ ra luồng đi từ hoạt động này sang hoạt động khác trong một hệ thống. Nó đặc biệt quan trọng trong việc xây dựng mô hình chức năng của hệ thống và nhấn mạnh tới việc chuyển đổi quyền kiểm soát giữa các đối tượng người dùng (Actors)

System: Nó có thể là một trang web, một ứng dụng hoặc bất kỳ component nào khác. Nó thường được biểu diễn bằng một hình chữ nhật. Nó chứa đựng các trường hợp sử dụng (Use case). Người dùng được đặt bên ngoài ‘hình chữ nhật’.

Use case: thường được biểu diễn bằng các hình bầu dục, chỉ định các hành động bên trong nó.

Actors: là những người sử dụng hệ thống. Nhưng đôi khi nó có thể là các hệ thống khác, người hoặc bất kỳ tổ chức nào khác.

Use case testing là một kỹ thuật kiểm thử chức năng của kiểm thử hộp đen, vì thế chúng ta sẽ không cần quan tâm đến code. Nó giúp Tester xác định được các kịch bản kiểm thử được thực hiện trên toàn bộ hệ thống từ đầu đến cuối của mỗi giao dịch.

Một vài đặc điểm của Use case testing

Use case testing không phải được thực hiện để quyết định chất lượng của phần mềm

Use case testing không đảm bảo bao phủ được toàn bộ ứng dụng của người dùng

Dựa trên kết quả kiểm thử từ Use case, chúng ta không thể quyết định việc triển khai môi trường của sản phẩm

Nó sẽ giúp tìm ra được những lỗi từ kiểm thử tích hợp

Ví dụ về Use case testing

Ví dụ với trường hợp kiểm tra điểm của sinh viên của hệ thống quản lý giáo dục

Actors: Students, Teacher, Parents

Pre-condition:

Hệ thống phải có kết nối mạng Internet

Người dùng phải có ‘Student ID’

Qua bài viết này tôi hi vọng các bạn có thể hiểu rõ hơn về Use case và Use case testing. Viết Use case là một quá trình lặp lại. Bạn chỉ cần dành một chút thời gian để thực hành và cần có kiến thức tốt về hệ thống để thiết kế Use case. Tóm lại, chúng ta có thể sử dụng ‘Use Case testing’ trong một ứng dụng để tìm các liên kết còn thiếu, các yêu cầu không hoàn chỉnh… Tìm chúng và sửa đổi hệ thống sẽ đạt được hiệu quả và chính xác cho hệ thống.

Nguồn: https://www.softwaretestinghelp.com/use-case-testing/

All Rights Reserved