Các Loại Kiểm Thử Phần Mềm Phần II

Ở phần trước mình đã giới thiệu với các bạn 3 loại kiểm thử đầu tiên, phần này mình sẽ tiếp tục giới thiệu 4 loại kiểm thử tiếp theo .

I.Kiểm tra bảo mật(Security testing)

Định nghĩa Kiểm tra bảo mật là một loại thử nghiệm phần mềm có mục đích phát hiện các lỗ hổng của hệ thống và xác định rằng dữ liệu và tài nguyên của nó được bảo vệ khỏi những kẻ xâm nhập có thể.Nó là một loạt của kiểm thử phi chức năng Non-functional Testing(Phần I) - Security testing kiểm tra xem ứng dụng có dễ bị tấn công, nếu có ai hack hệ thống hoặc đăng nhập vào ứng dụng mà không có sự cho phép nào. - Đó là một quá trình để xác định rằng một hệ thống luôn bảo vệ dữ liệu và duy trì các chức năng như đúng mục tiêu dự định đề ra - Việc kiểm tra an ninh được thực hiện để kiểm tra xem có bất kỳ rò rỉ thông tin theo nghĩa nào bằng cách mã hóa ứng dụng hoặc sử dụng nhiều phần mềm , phần cứng và tường lửa - Bảo mật phần mềm là làm cho phần mềm vẫn hoạt động tốt với sự có mặt của một cuộc tấn công nguy hiểm nào đó . Có 4 khu vực cần tập trung xem xet trong kiểm thử bảo mật: An ninh mạng: Tìm kiếm những lỗ hổng trong cở sở hạ tầng mạng (tài nguyên và chính sách).Những phần mềm, vi rút độc hại có thể xâm nhập qua các lỗ hổng trong đường truyền mạng , điều này rất nguy hiểm cho cả hệ thống vì hệ thống luôn luôn chạy song song với hệ thống mạng. An toàn trong phần mềm hệ thống: Điều này liên quan đến việc đánh giá các điểm yếu trong phần mềm khác nhau (hệ điều hành, hệ thống cơ sở dữ liệu và phần mềm khác). Bảo mật ứng dụng phía máy khách: Điều này đề cập đến việc bảo đảm rằng khách hàng (trình duyệt hoặc bất kỳ công cụ nào) không thể bị thao túng. Bảo mật ứng dụng phía máy chủ: Điều này bao gồm việc đảm bảo rằng máy chủ và công nghệ của nó đủ mạnh để chống lại bất kỳ sự xâm nhập nào. Ví dụ Bài kiểm tra bảo mật đơn giản nhất mà bất cứ ai có thể làm trên một ứng dụng đó là : Khi 1 người dùng chưa đăng nhập vào hệ thống mà được phép show toàn bộ thông tín chính, thông tin quan trọng (ví dụ nhu trang admin) thì chứng tỏ phần mềm đó tính bảo mật thấp B1: Đăng nhập vào ứng dụng web: B2: Đăng xuất khỏi ứng dụng : B3: Click nút back trên trình duyệt: Kiểm tra xem trình duyệt có yêu cầu người dùng đăng nhập lại hệ thống hay không Ngoài khái niệm về kiểm thử bảo mật cơ bản nhất chúng ta cần quan tâm đến các khái niệm khác trong kiểm thử bảo mật: Bảo mật, toàn vẹn, xác thực, sẵn có, ủy quyền và không phản đối. Có vô số cách để kiểm tra chất lượng của 1 phần mềm, một ứng dụng và kiểm tra bảo mật không phải là duy nhất và tốt nhất về mức độ an toàn của ứng dụng nhưng Kiểm tra bảo mật được bao gồm như một phần trong quá trình phát triển phần mềm tiêu chuẩn.Hiện nay có khá nhiều hacker đang rình rập vào hệ thống của chúng ta, và người dùng thi fluoon đặt niềm tin vào hệ thống đang sử dụng .chính vì thế hãy kiểm tra bảo mật để không phụ lòng tin đó của khách hàng.

II.Kiểm tra hiệu năng

Định nghĩa Là một loại thử nghiệm phần mềm với mục đích để xác định xem 1 hệ thống có chạy ổn định hãy có đáp ứng được yêu cầu khi chạy trong một tải nhất định, thực loại kiểm thử phi chức năng Nó có thể phục vụ các mục đích khác nhau : nó có thể chứng minh rằng hệ thống đáp ứng các tiêu chí thực hiện. Nó có thể so sánh hai hệ thống để tìm được hệ thống nào thực hiện tốt hơn. Hoặc nó có thể đo lường những gì thuộc hệ thống mà khiến cả hệ thống thực hiện không tốt Tại sao phải kiểm tra hiệu năng: - Cải thiện trải nghiệm người dùng trên nhiều hệ thống - Thu thập các số liệu hữu ích cho việc cải thiện hệ thống đó - Xác định xem sản phẩm đó đã sẵn sàng để đưa ra phát hành hay chưa? - Cung cấp các báo cáo, số liệu cho các bên liên quan về hiệu suất sử dụng hệ thống Có 4 loại chính trong kiểm tra hiệu năng - Load Testing(Kiểm tra tải) - Stress Testing(Kiểm tra áp lực) - Endurance Testing(Kiểm tra độ bền) - Spike Testing Một số tip khi kiểm tra hiệu năng: - Có rất nhiều công cụ hỗ trợ việc kiểm tra hiệu năng nhưng chúng ta nên sử dụng công cụ phù hợp nhất với mục đích của bạn - Không kết luận dựa vào 1 bài kiểm tra nên dựa vào nhiều bài kiểm tra khác - Cảnh giác những khi môi trường test thay đổi - Ví dụ cho một công cụ hỗ trợ test hiệu năng .Đó là Apache jmeter(mình sẽ tìm hiểu và hướng dẫn ở bài sau)

III.Kiểm tra hồi quy

Định nghĩa: Khi một sản phẩm có bất kỳ thay đổi hay sửa đổi , thậm chí là những thau đổi nhỏ nhất nhưng có thể ảnh hưởng nhiều đến hệ thống.Cùng với sự thay đổi đó chúng ta cần lựa chọn test hồi quy để có thể kiểm tra xem những chức năng, tính năng của hệ thống có còn nguyên vẹn hay không Mục đích của kiểm tra hồi quy là tìm ra lỗi mà có thể xảy ra vô tình vì những thay đổi hoặc sửa đổi mới. Trong quá trình kiểm tra lỗi đã được khắc phục và phần ứng dụng đã bắt đầu hoạt động như bình thường. Nhưng có thể có khả năng lỗi được sửa có thể ảnh hưởng đến phần khác của ứng dụng. Cách để phát hiện những 'lỗi bất ngờ ' của các bản sửa lỗi là thực hiện kiểm tra hồi quy. Điều này cũng đảm bảo rằng các lỗi phát hiện sớm hơn. Thông thường việc kiểm tra hồi quy được thực hiện bởi các công cụ tự động hóa bởi vì để sửa lỗi này, cùng một thử nghiệm được thực hiện lặp đi lặp lại và nó sẽ rất tẻ nhạt và mất thời gian để thực hiện nó một cách thủ công. Trong quá trình kiểm tra các trường hợp thử nghiệm được ưu tiên tùy thuộc vào những thay đổi được thực hiện cho các tính năng hoặc mô-đun trong ứng dụng. Tính năng hoặc mô-đun nơi thay đổi hoặc sửa đổi được thực hiện mà toàn bộ tính năng được đưa vào ưu tiên để thử nghiệm. Kiểm tra hồi quy là rất quan trọng khi có những sửa đổi hoặc cải tiến liên tục trong ứng dụng hoặc sản phẩm. Giúp duy trì chất lượng sản phẩm cùng với những thay đổi mới trong ứng dụng. Ví dụ: Một phần mềm quản lí giáo viên với 3 chức năng chính tương đương : THêm , lưu , xóa .Gần đâyy một chức năng khác được thêm đó là : Cập nhật.Chức năng mới này hoạt động rất OK , đáp ứng đúng nhu cầu , nhưng không có gì đảm bảo rằng các chức năng khác : thêm, lưu xóa hoạt động vẫn bình thường .Chính vì thế chúng ta cần đến test hồi quy. Có 4 loại kiểm tra hồi quy như sau: 1) Thử nghiệm hồi quy hiệu chỉnh: Thử nghiệm hồi quy hiệu chỉnh có thể được sử dụng khi không có thay đổi trong các thông số kỹ thuật và trường hợp thử nghiệm có thể được sử dụng lại. 2) Thử nghiệm hồi quy tiến bộ: Thử nghiệm hồi quy tiến bộ được sử dụng khi sửa đổi được thực hiện trong các thông số kỹ thuật và các trường hợp thử nghiệm mới được thiết kế. 3) Retest-All Chiến lược: Chiến lược retest-all rất tẻ nhạt và mất thời gian bởi vì ở đây chúng ta sử dụng lại tất cả các test dẫn đến việc thực hiện các trường hợp kiểm tra không cần thiết. Khi có bất kỳ thay đổi nhỏ hoặc thay đổi được thực hiện với ứng dụng thì chiến lược này không hữu ích. 4) Chiến lược Chọn lọc: Trong chiến lược chọn lọc chúng ta sử dụng một tập con của các trường hợp thử nghiệm hiện tại để giảm bớt nỗ lực và chi phí. Nếu bất kỳ thay đổi nào được thực hiện cho các thực thể chương trình, ví dụ: Chức năng, biến vv, sau đó một đơn vị kiểm tra phải được chạy lại. Ở đây phần khó khăn là tìm ra các phụ thuộc giữa một trường hợp thử nghiệm và các thực thể chương trình nó bao gồm. Khi nào sử dụng test hồi quy: - Bất kỳ 1 tính năng mới được thêm - Bất kỳ lỗi nào được sửa - Bất kỳ những gì liên quan đến hiệu suất được sửa Ưu điểm: - Lỗi được tìm thấy sớm - Đame bảo sự thay đổi không ảnh hưởng đến bản hiện tại - Giúp cải thiện chất lượng sản phẩm - Có thể dùng tool tự động Nhược điểm - Tốn thời gian và chi phí khi phải test thủ công - Ngay cả khi có những thay đổi nhỏ cũng phải kiểm tra hồi quy

IV.Kiểm tra tuân thủ(Compliance Testing)

Định nghĩa: Còn được gọi là kiểm tra sự phù hợp, kiểm tra quy chuẩn, kiểm tra tiêu chuẩn Là cuộc thử nghiệm để kiểm tra tính hợp lệ theo 1 tiêu chuẩn , quy chuẩn nào đó. Về cơ bản, đây là một loại kiểm tra được thực hiện trên hệ thống để kiểm tra xem tất cả các tiêu chuẩn quy định có được đáp ứng hay không. Để đảm bảo rằng các thỏa thuận được đáp ứng, đôi khi một ban điều hành và chuyên gia tuân thủ người được thành lập trong mỗi tổ chức. Hội đồng này đưa ra một kiểm tra xem các nhóm phát triển có đáp ứng các tiêu chuẩn của tổ chức hay không. Các nhóm làm một phân tích để kiểm tra xem các tiêu chuẩn có được thực thi và thực hiện đúng không. Ban quản lý cũng làm việc đồng thời để cải thiện các tiêu chuẩn, điều này sẽ dẫn đến chất lượng tốt hơn. Thử nghiệm tuân thủ còn được gọi là thử nghiệm Hợp chuẩn. Các tiêu chuẩn thường được sử dụng bởi ngành công nghiệp CNTT, về cơ bản được định nghĩa bởi các tổ chức lớn như IEEE (Viện kỹ sư điện và điện tử quốc tế) hoặc W3C (World Wide Web Consortium) ... Nó cũng có thể được thực hiện bởi một công ty độc lập / bên thứ ba Chuyên về loại thử nghiệm và dịch vụ này. Mục đích: - Xác định rằng quá trình phát triển và bảo dưỡng đáp ứng các phương pháp quy định. - Đảm bảo liệu các sản phẩm của từng giai đoạn phát triển, đáp ứng các tiêu chuẩn, quy trình và hướng dẫn. - Đánh giá tài liệu của dự án để kiểm tra tính đầy đủ và hợp lý Khi nào sử dụng: Nên sử dụng ngay khi mới bắt đầu dự án hơn là giai đoạn sau vì sẽ rất khó khăn để sửa chữa Kết luận Kiểm tra tuân thủ được thực hiện để đảm bảo sự tuân thủ của các sản phẩm của từng giai đoạn của vòng đời phát triển. Các tiêu chuẩn này phải được quản lý hiểu và ghi lại. Nếu cần tổ chức tập huấn và tập huấn cần thiết cho đội. Kiểm tra tuân thủ về cơ bản được thực hiện thông qua quá trình kiểm tra và kết quả của quá trình đánh giá phải được ghi chép đầy đủ.