Các loại lỗi phần mềm tester nên biê t năm 2024
Chúng ta sống trong một thế giới ngày càng trở nên trực tuyến. Do đó, nhu cầu về phần mềm và ứng dụng mới ngày càng tăng để đáp ứng số lượng người tiêu dùng ngày càng tăng. Tuy nhiên, sự thay đổi này đòi hỏi một cơ chế kiểm soát chất lượng, vì vậy, nhu cầu kiểm thử phần mềm của các doanh nghiệp và tổ chức cũng đang ngày càng phát triển. Show
Bài viết này đã tổng hợp 20 câu hỏi về kiểm thử phần mềm để giúp bạn hiểu rõ hơn về quy trình này, từ khái niệm cho tới các quy trình thực hiện, các công cụ kiểm thử, v.v. 20 câu hỏi về kiểm thử phần mềm1. Kiểm thử phần mềm là gì?Kiểm thử phần mềm (software testing) là hoạt động nhằm tìm kiếm và phát hiện ra các lỗi của phần mềm, đảm bảo phần mềm chính xác, đúng và đầy đủ theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra. Software testing cũng cung cấp mục tiêu, cái nhìn độc lập về phần mềm điều này cho phép đánh giá và hiểu rõ các rủi ro khi thực thi phần mềm. Đây cũng được xem là quá trình xác định xem nó có đáp ứng nhu cầu của các cổ đông hay không cũng như phát hiện các lỗi và xác định chất lượng tổng thể của mặt hàng đó bằng cách đo lường hiệu suất, tính năng, chất lượng, tiện ích và tính đầy đủ của nó. Điểm mấu chốt, đó là kiểm soát chất lượng. 2. Tại sao cần kiểm thử phần mềm?Sau đây là những lý do quan trọng tại sao các kỹ thuật kiểm thử phần mềm nên được đưa vào phát triển ứng dụng:
3. Kiểm thử phần mềm bao gồm những bước nào?Quá trình kiểm thử phần mềm sẽ bao gồm những bước sau đây:
Sau cùng, báo cáo lại kết quả thử nghiệm với cấp trên sau khi đã tiến hành phân tích, theo dõi kết quả thành phẩm nghiêm ngặt. 4. Các kỹ năng cần thiết của một chuyên gia kiểm thử (Tester)?Người kiểm thử phần mềm cần các kỹ năng như:
5. Kế hoạch kiểm thử (test plan) sẽ bao gồm những gì?Kế hoạch kiểm tra (test plan) là một tài liệu chính thức chỉ định phạm vi kiểm tra, phương pháp được sử dụng, các tài nguyên cần thiết và thời gian ước tính để hoàn thành quy trình kiểm tra. Nó được bắt nguồn từ các đặc tả kỹ thuật (Software Requirement Specification). * Lập Test Plan có các lợi ích như:
* Làm thế nào để lập Test Plan Vì lập Test Plan là nhiệm vụ quan trọng nhất của Quy trình quản lý kiểm thử. Thực hiện theo 7 bước dưới đây để tạo một kế hoạch kiểm tra theo IEEE 829 Analyze the product – Phân tích sản phẩm
6. Sự khác biệt giữa các test scenario, test cases, và test script là gì?Sự khác biệt giữa test scenarios, test cases, và test script là:
Và cũng để kiểm tra xem tất cả các luồng kinh doanh có làm việc đúng như mong đợi hay không. Trong scenario testing, tester cần phải đặt bản thân vào vị trí của người dùng cuối để kiểm tra và chạy các chức năng của sản phẩm. Việc chuẩn bị các scenario – kịch bản là phần quan trọng nhất đối với các tester, để làm được thì tester sẽ cần tới sự tư vấn hoặc giúp đỡ từ phía khách hàng và các lập trình viên.
7. Có những phương pháp kiểm thử phần mềm nào?Có 3 phương pháp kiểm thử phần mềm hiện được áp dụng phổ biển:
8. Các cấp độ của kiểm thử phần mềm?Có bốn cấp độ :
9. Các mô hình kiểm thử phần mềm được sử dụng hiện nay?Dưới đây là 6 mô hình kiểm thử phổ biến nhất hiện nay:
10. Tester cần nắm được những nguyên tắc kiểm thử phần mềm nào?Có 7 nguyên tắc quan trọng mà tester cần phải nhớ trong quá trình kiểm thử: 1:Kiểm thử chứng mình sự hiện diện của lỗi.2: Kiểm thử toàn bộ là không thể.3: Kiểm thử càng sớm càng tốt.4: Lỗi thường được phân bố tập trung.5: Nghịch lý thuốc trừ sâu.6: Kiểm thử phụ thuộc vào ngữ cảnh.7: Quan niệm sai lầm về việc “hết lỗi”.11. Xác minh (verification) và xác thực(validation) là gì?Xác minh (Verification) là một quá trình đánh giá các sản phẩm làm việc trung gian của một vòng đời phát triển phần mềm để kiểm tra xem liệu rằng chúng ta có đi đúng hướng để tạo ra sản phẩm cuối cùng. Các sản phẩm trung gian có thể bao gồm các tài liệu được tạo ra trong các giai đoạn phát triển như, đặc tả requirement, tài liệu thiết kế, thiết kế database, sơ đồ ER, các test case, traceability matrix …Đôi khi chúng ta có khuynh hướng bỏ qua tầm quan trọng của việc xem xét các tài liệu này nhưng chúng ta nên hiểu rằng tự mình rà soát lại có thể tìm ra nhiều điểm bất thường tiềm ẩn mà khi phát hiện hoặc sửa trong giai đoạn phát triển sau đó có thể rất tốn kém. Mặt khác, xác nhận (Validation) là quá trình đánh giá sản phẩm cuối cùng để kiểm tra xem phần mềm có đáp ứng được yêu cầu nghiệp vụ không? Hoạt động validation bao gồm smoke testing, functional testing, regression testing, systems testing etc… Sự khác nhau giữa Verification và Validation: Verification Validation Đánh giá các sản phẩm trung gian để kiểm tra xem nó có đáp ứng các yêu cầu cụ thể của từng giai đoạn không. Đánh giá sản phẩm cuối cùng để kiểm tra xem nó có đáp ứng được yêu cầu nghiệp vụ không. Kiểm tra xem sản phẩm có được xây dựng đúng theo yêu cầu và đặc điểm kỹ thuật thiết kế không. Xác định xem phần mềm có phù hợp với nhu cầu sử dụng và đáp ứng yêu cầu nghiệp vụ không. Kiểm tra xem “Chúng tôi xây dựng sản phẩm đúng không”? Kiểm tra “Chúng tôi xây dựng đúng sản phẩm”? Điều này được thực hiện mà không cần chạy phần mềm. Được thực hiện cùng với việc chạy phần mềm. Bao gồm tất cả các kỹ thuật test tĩnh: bao gồm các bài đánh giá, kiểm tra và hướng dẫn Bao gồm tất cả các kỹ thuật test động: bao gồm tất cả các loại test như smoke test, regression test, functional test, systems test và UAT 12. Giải thích quy trình kiểm thử thủ công?Quy trình kiểm tra thủ công như sau:
13. Kiểm thử thủ công khác với kiểm thử tự động ra sao?Kiểm thử thủ công là quá trình kiểm tra lỗi phần mềm theo cách thủ công. Nó yêu cầu người kiểm tra thực hiện các bước kiểm tra theo cách thủ công và so sánh kết quả thực tế và kết quả mong đợi. Kiểm thử tự động sử dụng phần mềm đặc biệt để kiểm soát việc thực hiện kiểm thử và so sánh kết quả với kết quả mong muốn. Do đó, kiểm thử tự động nhanh hơn nhiều so với kiểm thử thủ công và có thể giảm thời gian cần thiết để hoàn thành chu trình kiểm thử. Tiêu chí Tự động Thủ công Định nghĩa Sử dụng các công cụ tự động hóa để thực thi các trường hợp kiểm thử Các trường hợp kiểm thử được thực thi bởi tester (con người) và các phần mềm Thời gian xử lý Kiểm thử tự động nhanh hơn đáng kể so với cách tiếp cận thủ công Việc kiểm thủ công tốn nhiều thời gian và nhân lực Thời gian đầu tư ban đầu Số vốn đầu tư cho kiểm thử tự động cao hơn, tuy nhiên về lâu dài sẽ tốt hơn Số vốn đầu tư thấp hơn nhưng về lâu dài không lại không đem lại hiệu quả cao Độ tin cậy Phương thức đáng tin cậy, được thực hiện bởi công cụ và tập lệnh Không chính xác vì có khả năng là do lỗi của con người Thay đổi UI Đối với một thay đổi nhỏ trong giao diện của AUT, các tập lệnh kiểm thử tự động cần được sửa đổi để hoạt động như mong đợi Những thay đổi nhỏ như id, lớp,… sẽ không gây ảnh hưởng tới quá trình thực thi Đầu tư Cần đầu tư cho các công cụ kiểm tra cũng như các kỹ sư tự động hóa Cần đầu tư cho nguồn nhân lực. Hiệu quả chi phí Không hiệu quả về chi phí với hồi quy khối lượng thấp Không hiệu quả về chi phí với hồi quy khối lượng lớn Báo cáo thử nghiệm khả năng hiển thị ất cả các bên liên quan có thể đăng nhập vào hệ thống tự động hóa và kiểm tra kết quả thực hiện kiểm tra Thử nghiệm thường được ghi lại trong Excel hoặc word, kết quả kiểm tra không sẵn có Sự quan sát của con người Kiểm thử tự động không liên quan đến sự xem xét của con người. Vì vậy, nó không đảm bảo thân thiện với người dùng và trải nghiệm khách hàng tích cực. Phương pháp kiểm tra thủ công cho phép con người quan sát, có thể hữu ích để cung cấp hệ thống thân thiện với người dùng. Kiểm tra năng suất Kiểm tra hiệu suất như Kiểm tra tải, Kiểm tra căng thẳng, Kiểm tra Spike,… bắt buộc phải được kiểm tra bằng một công cụ tự động hóa. Kiểm tra hiệu suất không khả thi theo cách thủ công Kiểm thử hàng loạt Bạn có thể thực hiện kiểm thử nhiều tập lệnh cùng một lúc Không thể thực hiện kiểm thử hàng loạt Kiến thức lập trình Bắt buộc phải có kiến thức lập trình Không cần hiểu rõ lập trình 14. Một số ưu điểm của kiểm thử tự động?Đây là một số ưu điểm chính của kiểm thử tự động:
15. Sự khác biệt giữa thử nghiệm hệ thống và thử nghiệm tích hợp là gì?Kiểm thử hệ thống là một loại kiểm thử phần mềm nhằm đánh giá một sản phẩm phần mềm hoàn chỉnh và được tích hợp đầy đủ. Nó xác minh rằng phần mềm đáp ứng các yêu cầu được chỉ định trong thiết kế và các thông số kỹ thuật cấp hệ thống. Kiểm tra hệ thống cũng xác định bất kỳ điểm yếu, lỗi hoặc lỗi nào. Kiểm thử tích hợp là kiểm thử phần mềm xác minh sự tương tác giữa hai hoặc nhiều thành phần hệ thống. Nó được thực hiện sau khi kiểm tra đơn vị và trước khi kiểm tra hệ thống. Nó kiểm tra cách các thành phần tương tác với nhau và cách chúng khớp với nhau. Kiểm thử tích hợp là cần thiết để đảm bảo rằng các thành phần của hệ thống hoạt động cùng nhau như mong đợi. 16. Sự khác biệt giữa smoke testing và sanity testing là gì?Smoke testing là một thử nghiệm cấp cao được sử dụng để đảm bảo các chức năng quan trọng nhất của hệ thống phần mềm đang hoạt động chính xác. Đây là một bài kiểm tra nhanh có thể được sử dụng để xác định xem có đáng để đầu tư thời gian và năng lượng vào các bài kiểm tra sâu rộng hơn hay không. Sanity testing là một thử nghiệm cụ thể hơn được sử dụng để kiểm tra xem những thay đổi gần đây đối với hệ thống có gây ra bất kỳ hành vi mới, không mong muốn nào không. Nó đảm bảo rằng các tính năng cơ bản vẫn hoạt động như mong đợi sau khi thực hiện các thay đổi nhỏ. 17. Sự khác biệt giữa thử nghiệm tĩnh và thử nghiệm động là gì?Kiểm thử tĩnh là một loại kiểm thử được thực hiện mà không thực thi mã của ứng dụng phần mềm. Thay vào đó, nó bao gồm các bài đánh giá, kiểm tra và hướng dẫn. Kiểm thử động là một loại kiểm thử liên quan đến việc thực thi mã của ứng dụng phần mềm để xác định kết quả của các chức năng và hoạt động nhất định. Nó bao gồm thử nghiệm đơn vị, thử nghiệm tích hợp và thử nghiệm chấp nhận. 18. Làm thế nào để bạn kiểm tra một sản phẩm nếu các yêu cầu vẫn chưa ổn định?Khi các yêu cầu vẫn chưa đóng băng, cách tiếp cận tốt nhất là sử dụng một phương pháp phát triển nhanh, chẳng hạn như Scrum. Bước đầu tiên sẽ là tổ chức các cuộc họp thu thập yêu cầu với tất cả các bên liên quan để hiểu mục đích của sản phẩm và kết quả mong muốn. Bước tiếp theo sẽ là chia dự án thành các câu chuyện người dùng riêng lẻ, có thể quản lý được. Từ đó, ưu tiên các câu chuyện của người dùng và chỉ định họ chạy nước rút để phát triển. Khi dự án tiến triển, chúng tôi liên tục kiểm tra sản phẩm bằng các kỹ thuật như kiểm tra đơn vị, kiểm tra tích hợp, kiểm tra mức độ chấp nhận của người dùng và kiểm tra hệ thống. Ngoài ra, khi các yêu cầu thay đổi, chúng tôi sẽ cập nhật các thử nghiệm của mình để đảm bảo sản phẩm đáp ứng các kết quả mong muốn. 19. Khi nào thì nên dừng quá trình kiểm thử?Dựa vào điều kiện dừng của dự án để biết chính xác lúc nào tester nên dừng kiểm thử. Tùy vào từng dự án mà điều kiện dừng sẽ có sự khác nhau, tuy nhiên thường sẽ bao gồm các điều như:
20. Một số tips khi viết các trường hợp thử nghiệm là gì?Dưới đây là 10 tips mà các tester có thể sử dụng:
Savvycom – Đối Tác Công Nghệ Hàng Đầu Tại Việt nam Thành lập từ 2009, Savvycom là một trong những công ty Công nghệ thông tin hàng đầu tại Việt Nam, chuyên cung cấp các dịch vụ tư vấn chuyển đổi số và giải pháp phần mềm trong lĩnh vực tài chính, y tế và bán lẻ cho các doanh nghiệp trong nước và quốc tế. Với mong muốn góp phần nâng cao vị thế của Việt Nam trên bản đồ công nghệ thông tin toàn cầu, Savvycom hướng đến sứ mệnh đưa công nghệ đổi mới vào cuộc sống bằng cách tận dụng nguồn lực lao động kỹ thuật tại Việt Nam, và tầm nhìn trở thành công ty CNTT hàng đầu trong khu vực ASEAN. |