Chương I: Tổng quan về kiểm thử tự động Trong lĩnh vực kiểm thử phần mềm thì kiểm thử tự động đóng một vai trò vô cùng quan trọng và được xem như một giải pháp hiệu quả trong việc cải thiện độ chính xác và nâng cao năng suất kiểm thử các sản phẩm phần mềm [1]. Trong chương này, em sẽ trình bày tổng quan về kiểm thử tự động. Kiểm thử phần mềm 1. Khái niệm về kiểm thử Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử.
Kiểm thử có thể cung cấp cho doanh nghiệp một quan điểm, một cách nhìn độc lập về phần mềm để từ đó cho phép đánh giá và thấu hiểu được những rủi ro trong quá trình triển khai phần mềm. Trong kỹ thuật kiểm thử tự động không chỉ giới hạn ở việc thực hiện một chương trình hoặc ứng dụng với mục đích đi tìm các lỗi phần mềm (bao gồm các lỗi và các thiếu sót) mà còn là một quá trình phê chuẩn và xác minh một chương trình máy tính, ứng dụng, sản phẩm nhằm: Đáp ứng được mọi yêu cầu hướng dẫn khi thiết kế và phát triển phần mềm. Thực hiện công việc đúng như kỳ vọng. Có thể triển khai được với những đặc tính tương tự.
Và đáp ứng được mọi nhu cầu của các bên liên quan. Tùy thuộc vào từng phương pháp, việc kiểm thử có thể được thực hiện bất cứ lúc nào trong quá trình phát triển phần mềm. Theo truyền thống thì các nỗ lực kiểm thử được tiến hành sau khi các yêu cầu được xác định và việc lập trình được hoàn tất nhưng trong Agile (là một tập hợp các phương pháp phát triển phần mềm linh hoạt dựa trên việc lặp đi lặp lại và gia tăng giá trị) thì việc kiểm thử được tiến hành liên tục trong suốt quá trình xây dựng phần mềm. Như vậy, mỗi một phương pháp kiểm thử bị chi phối theo một quy trình phát triển phần mềm nhất định.
Quy trình kiểm thử phần mềm Mục đích của kiểm thử là thiết kế một chuỗi các trường hợp kiểm thử mà có khả năng phát hiện lỗi cao. Để cho việc kiểm thử đạt được kết quả tốt cần có sự chuẩn bị về kế hoạch kiểm thử, thiết kế các trường hợp kiểm thử và các dữ liệu kiểm thử cho các trường hợp. Đây chính là đầu vào cho giai đoạn kiểm thử. Và sản phẩm công việc của giai đoạn kiểm thử chính là “báo cáo kiểm thử” mà tài liệu hóa tất cả các trường hợp kiểm thsử đã chạy, dữ liệu đầu vào, đầu ra mong đợi, đầu ra thực tế và mục đích của kiểm thử.1: Giai đoạn kiểm thử trong xử lý phần mềm Quy trình kiểm thử bao gồm một số giai đoạn: Lập kế hoạch kiểm thử: Bước đầu tiên là lập kế hoạch cho tất cả các hoạt động sẽ được thực hiện và các phương pháp được sử dụng.
Các chuẩn IEEE bao gồm các thông tin về tác giả chuẩn bị kế hoạch, danh sách liệt kê của kế hoạch kiểm thử. Vấn đề quan trọng nhất đối với kế hoạch kiểm thử. Với mục đích là quy định về phạm vi, phương pháp, tài nguyên và lịch biểu của các hoạt động kiểm thử. o Các tài liệu tham khảo.
o Khái quát về xác minh và thẩm định (V&V): tổ chức, tài nguyên, trách nhiệm, các công cụ, kỹ thuật và các phương pháp luận. o Vòng đời của các nhiệm vụ, các dữ liệu vào và các kết quả ra trên một giai đoạn vòng đời. 9 o Báo cáo xác minh và thẩm định phần mềm: mô tả nội dung, định dạng và thời gian cho tất cả các báo cáo. o Các thủ tục quản lý bao gồm các chính sách, thủ tục, các chuẩn, thực nghiệm và các quy ước.
Giai đoạn bố trí nhân viên kiểm thử: Việc kiểm thử thường phải tiến hành một cách độc lập và các nhóm độc lập có trách nhiệm tiến hành các họat động kiểm thử, gọi là các nhóm kiểm thử. Thiết kế các trường hợp kiểm thử: Các trường hợp kiểm thử là các đặc tả đầu vào cho kiểm thử và đầu ra mong đợi của hệ thống cùng với các câu lệnh được kiểm thử: o Các kỹ thuật kiểm thử hộp đen để kiểm thử dựa trên chức năng. o Các kỹ thuật kiểm thử hộp trắng để kiểm thử dựa vào cấu trúc bên trong. o Xử lý đo lường kiểm thử bằng cách thu thập dữ liệu.
o Đánh giá sản phẩm phần mềm để xác nhận sản phẩm có thể sẵn sàng phát hành được chưa? 1. Các loại kiểm thử Kiểm thử chức năng: Kiểm thử chức năng là một loại kiểm thử hộp đen (black box) và test case của nó được dựa trên đặc tả của ứng dụng phần mềm hoặc thành phần đang test. Các chức năng được test bằng cách nhập vào các giá trị và kiểm tra kết quả đầu ra và ít quan tâm đến cấu trúc bên trong của ứng dụng. Kiểm thử chức năng chú trọng đến chức năng của chương trình, đảm bảo các chức năng của ứng dụng đang hoạt động chính xác theo yêu cầu.
Có nhiều tình huống sử dụng phải được đưa vào kiểm thử chức năng, một số tính huống quan trọng là: o Cài đặt và khởi chạy ứng dụng đúng cách. o Người dùng có thể truy cập vào ứng dụng một cách dễ dàng. o Hộp văn bản, nút, menu và biểu tượng hoạt động chính xác. o Thông báo hiển thị chính xác và xuất hiện đúng khoảng thời gian.
10 o Mọi giao dịch hoặc mua hàng phải được diễn ra liền mạch. Kiểm thử hiệu năng: là kỹ thuật kiểm thử nhằm xác định băng thông, khả năng xử lý, khả năng mở rộng hay nói chung là hiệu năng của hệ thống dưới khối lượng truy cập, khối lượng công việc xác định. Kết quả của kiểm thử hiệu năng phục vụ việc điều tra, đo lường, đánh giá hiệu năng thực của hệ thống. Các tiêu chí đánh giá hiệu năng bao gồm: o Thời gian phản hồi (Response time): Xác định ứng dụng phản hồi nhanh hay chậm.
o Khả năng mở rộng (Scalability): Xác định với lượng truy cập tăng vọt, khả năng đáp ứng cũng như khả năng mở rộng của hệ thống. o Băng thông thông lượng (Throughput): Số kết nối tối đa mà hệ thống có thể đáp ứng, hay đơn giản và số người truy cập cùng thời điểm tối đa. o Tính ổn định (stability): Sự ổn định của hệ thống dưới các mức tải khác nhau. Kiểm thử an ninh: Người dùng ứng dụng ngày càng có ý thức về các vấn đề xung quanh bảo mật dữ liệu.
Quyền riêng tư trực tuyến và bảo mật dữ liệu cá nhân luôn là mối quan tâm lớn nhất của hầu hết cư dân mạng – 70% báo cáo lo ngại rằng thông tin cá nhân của họ sẽ bị chia sẻ mà không được sự cho phép. Trên thực tế, 81% người dùng nói rằng họ sẽ gỡ cài đặt ứng dụng và chuyển đổi nhà cung cấp vì lo ngại về vấn đề bảo mật. Không cần phải nói, kiểm tra bảo mật là điều bắt buộc đối với sự thành công của ứng dụng. Vì hầu hết mọi ứng dụng đều yêu cầu một số loại thông tin cá nhân để chạy, nên các thử nghiệm phải được tiến hành để củng cố chúng, nhằm cung cấp tính bảo mật dữ liệu.
Các QAs phải kiểm tra kỹ lưỡng để đảm bảo rằng ứng dụng có thể bảo vệ người dùng khỏi rò rỉ thông tin hoặc bị xâm nhập. Điều này đặc biệt đúng với ứng dụng tài chính. Kiểm thử cài đặt: Kiểm thử cài đặt nhằm kiểm tra xem ứng dụng có được cài đặt và gỡ cài đặt đúng cách hay không và đảm bảo rằng ứng dụng sẽ 11 không gây ra bất kỳ khó khăn nào cho người dùng. Các chuyên gia đảm bảo chất lượng định nghĩa kiểm tra cài đặt là một thủ tục đảm bảo rằng người dùng cuối có thể dễ dàng cài đặt được tất cả các thành phần của phần mềm và quá trình cài đặt không quá tốn thời gian hoặc không nhất quán.
Kiểm tra cài đặt xác nhận việc hoàn tất thành công quá trình cài đặt hoặc gỡ bỏ phần mềm, nâng cấp hoặc khôi phục phần mềm. Kiểm thử gián đoạn: Kiểm thử gián đoạn nhằm kiểm tra cách ứng dụng phản hồi khi gặp sự số gián đoạn không mong muốn. Tùy thuộc vào bản chất của sự gián đoạn, ứng dụng sẽ tạm dừng và sau đó trở lại trạng thái ban đầu hoặc thậm chí phản ứng theo một cách cụ thể. Các loại gián đoạn sẽ khác nhau trên từng loại thiết bị mà ứng dụng đang được kiểm thử, nhưng một số gián đoạn phổ biến cần được xem xét trong kiểm thử bao gồm: o Tin nhắn đến hoặc có cuộc gọi đến khi một ứng dụng đang chạy.
o Thiết bị được kết nối hoặc ngắt kết nối với tai nghe khi một ứng dụng đang chạy. o Thiết bị tắt khi ứng dụng đang chạy. o Thực hiện nâng cấp hệ điều hành khi ứng dụng đang chạy. o Thiết bị được cắm hoặc rút sạc khi ứng dụng đang chạy.
Kiểm tra rò rỉ bộ nhớ: Rò rỉ bộ nhớ đề cập đến tình huống trong đó ứng dụng không thể trả lại bộ nhớ mà ứng dụng đã sử dụng tạm thời để hoạt động. Nếu một ứng dụng được sử dụng hoặc mở thường xuyên, một sự cố rò rỉ bộ nhớ nhỏ có thể khiến ứng dụng bị chấm dứt. Rò rỉ bộ nhớ xuất phát từ lỗi lập trình, vì vậy mọi ứng dụng cần phải được kiểm tra vấn đề này. Kiểm tra rò rỉ bộ nhớ được thực hiện bằng cách chạy một ứng dụng trên nhiều thiết bị.
Bằng cách đó, các kiểm thử viên có thể kiểm tra được hiệu suất của ứng dụng trên các thiết bị có bộ nhớ khả dụng khác nhau và từ đó có thể tối ưu hóa ứng dụng để hoạt động hiệu quả hơn trên từng cấu hình. Kiểm thử tính khả dụng: Kiểm thử tính khả dụng hay còn được gọi là kiểm thử trải nghiệm người dùng, kiểm tra tính thân thiện với người dùng của ứng dụng. Về cơ bản, nó kiểm tra tính dễ sử dụng và tính trực quan, nhằm mục đích cung cấp trải nghiệm người dùng liền mạch, không có lỗi và dị thường. 12 Vì sự thành công của một ứng dụng phụ thuộc vào sự hấp dẫn của trải nghiệm người dùng đầu cuối, nên tốt nhất là chúng ta nên thực hiện các bài kiểm tra khả năng sử dụng với khách hàng thực tế trên thiết bị thực.
Đây là cách tốt nhất để hiểu sở thích của đối tượng mục tiêu. Ngược lại, người ta có thể có những người kiểm tra có kỹ năng chạy các kịch bản người dùng phản ánh hành vi của người dùng cuối.