Môi trường kiểm thử là một thiết lập phần mềm và phần cứng cho các nhóm kiểm thử để thực hiện các trường hợp kiểm thử. Nói cách khác, nó hỗ trợ thực hiện kiểm tra với phần cứng, phần mềm và cấu hình mạng. Môi trường kiểm thử được cấu hình theo nhu cầu của Ứng dụng đang thử nghiệm. Trong một số trường hợp, môi trường kiểm thử có thể là sự kết hợp của môi trường kiểm thử và dữ liệu kiểm thử mà nó vận hành.
Thiết lập một môi trường kiểm thử đúng đảm bảo kiểm thử phần mềm thành công. Bất kỳ sai sót trong quá trình này có thể dẫn đến việc tăng chi phí và thời gian sử dụng.Test Bed là một môi trường thử nghiệm đã được chuẩn bị với dữ liệu thử nghiệm. Dữ liệu thử nghiệm giúp bạn xác minh các trường hợp thử nghiệm yêu cầu thiết lập dữ liệu nhất định.
Ví dụ: giả sử bạn muốn kiểm tra xem một chức năng cụ thể có tạo hóa đơn cho dữ liệu bán hàng có trong một cơ sở dữ liệu cụ thể hay không. Vì chúng ta cần chuẩn bị cơ sở dữ liệu với dữ liệu, môi trường thử nghiệm này được coi là giường thử nghiệm. Trên thực tế, sự khác biệt giữa môi trường thử nghiệm và giường thử nghiệm là khá nhỏ, nhưng điều quan trọng là phải biết sắc thái giữa cả hai thuật ngữ.
Bây giờ, hãy cùng tìm hiểu lý do tại sao chúng ta thực sự cần môi trường thử nghiệm.
Tầm quan trọng của môi trường thử nghiệm là gì? Bạn có thể có một định nghĩa trường hợp thử nghiệm tuyệt vời và là một kỹ sư thử nghiệm có tay nghề cao. Nhưng để thực sự khai thác sức mạnh của các trường hợp thử nghiệm và kỹ sư thử nghiệm của bạn, việc có một môi trường thử nghiệm được thiết kế tốt là rất quan trọng.
Môi trường thử nghiệm cung cấp phản hồi chính xác về chất lượng và hành vi của ứng dụng đang được thử nghiệm. Nói cách khác, môi trường thử nghiệm cung cấp cho bạn thiết lập cần thiết để chạy các trường hợp thử nghiệm của bạn.
Môi trường thử nghiệm giúp bạn nhiều hơn nữa bằng cách cung cấp một môi trường chuyên dụng để bạn tách biệt mã và xác minh hành vi của ứng dụng. Điều này đảm bảo rằng không có hoạt động nào khác có thể ảnh hưởng đến kết quả của các bài kiểm tra đang chạy trên máy chủ.
Hơn nữa, một môi trường thử nghiệm có thể hoạt động như một bản sao chính xác của môi trường sản xuất. Đây là yếu tố quan trọng nhất để bạn tự tin về kết quả xét nghiệm. Kỹ sư thử nghiệm cần chắc chắn 100% rằng ứng dụng hoạt động theo cùng một cách trong môi trường thử nghiệm cũng như trong môi trường sản xuất.
Một thực tế phổ biến là có cả môi trường thử nghiệm và môi trường dàn dựng. Hãy cùng tìm hiểu lý do tại sao chúng ta cần cả môi trường thử nghiệm và môi trường dàn dựng. Và chúng khác nhau như thế nào.
Kỹ sư kiểm thử sử dụng môi trường kiểm thử để kiểm tra một phần rất cụ thể của ứng dụng. Nó thường liên quan đến một cấu hình và thiết lập dữ liệu khác. Do đó, không có cái gọi là thiết lập một kích thước phù hợp với tất cả.
Đây chính là lý do tại sao các môi trường thử nghiệm không giống nhau. Họ thường cần một thiết lập khác để thử nghiệm các phần khác nhau của mã. Ngoài ra, điều quan trọng là phải hiểu rằng kỹ sư thử nghiệm tạo ra hàng tá môi trường thử nghiệm khi mã phát triển.
Nói tóm lại, khi sử dụng môi trường thử nghiệm, mã sẽ quyết định thiết lập của môi trường.
Môi trường dàn dựng sẽ sao chép môi trường sản xuất và lưu trữ phiên bản trực tiếp của ứng dụng của bạn. Điều quan trọng là môi trường dàn dựng của bạn phải là bản sao chính xác của môi trường sản xuất của bạn. Thông thường, điều này có thể đạt được bằng cách có tài liệu rất chi tiết. Nó phải mô tả tất cả các nhu cầu và cấu hình chính xác cho môi trường sản xuất của bạn.
Trong khi môi trường thử nghiệm tập trung vào việc thử nghiệm các thành phần riêng lẻ, thì môi trường dàn dựng tập trung vào việc thử nghiệm toàn bộ ứng dụng. Về cơ bản, môi trường dàn dựng là một sân chơi an toàn, trong đó bạn có thể kiểm tra toàn bộ ứng dụng.
Điều này làm cho một môi trường tổ chức lý tưởng để chạy các bài kiểm tra đầu cuối hoặc kiểm tra hiệu suất. Kiểm tra từ đầu đến cuối xác nhận rằng toàn bộ ứng dụng hoạt động như mong đợi bằng cách kiểm tra tất cả các tích hợp.
Bên cạnh đó, vì môi trường dàn dựng tái tạo môi trường sản xuất. Đó là một khu vực an toàn để kiểm tra các giới hạn của môi trường và ứng dụng của bạn bằng cách sử dụng kiểm tra hiệu suất.
Nói tóm lại, trong môi trường dàn dựng, bạn kiểm tra toàn bộ ứng dụng trong các điều kiện thực tế mà nó sẽ trải qua trong môi trường sản xuất.
Đối với môi trường kiểm thử, các khóa then chốt cần thiết lập bao gồm:
Google Chrome
hay Mozilla Firefox
, đôi khi có thể là trình duyệt cho di động.Việc kiểm thử được giới hạn trong những gì có thể được kiểm tra và những gì không nên được kiểm tra.
Những người sau đây là những thành viên cần thiết có liên quan đến thiết lập cho môi trường kiểm thử:
Môi trường kiểm thử sẽ cần phải làm các bước như sau:
Việc kiểm thử không nên thiết lập trên một máy cục bộ, mà nên thiết lập trên một máy chủ phân tán để đảm bảo mọi quá trình vận hành và sử dụng sẽ được tương thích với mọi user.
Chẳng hạn, thiết lập một máy chủ Fedora
cho ứng dụng PHP
, hay một máy chủ Ubuntu
cho ứng dụng Java Spring
....
Hệ thống mạng sẽ được thiết lập theo yêu cầu thử nghiệm. Nó bao gồm:
Điều này đảm bảo sự tắc nghẽn xảy ra trong quá trình thử nghiệm không ảnh hưởng đến các thành viên khác. (Nhà phát triển, nhà thiết kế, người chuẩn bị nội dung, v.v.)
Để kiểm thử ứng dụng web, chúng ta có thể cần thiết lập các trình duyệt khác nhau trên cùng 1 thiết bị hoặc các thiết bị khác nhau (Chrome, Firefox hoặc Safari cho macOS, Edge cho Windows).
Đối với các ứng dụng máy tính để bàn, ta cần nhiều loại Hệ Điều Hành khác nhau cho việc kiểm thử đa nền tảng (Windows, macOS, Linux).
Ví dụ: thử nghiệm ứng dụng Windows phone
có thể yêu cầu:
Visual Studio
Kiểm thử viên sẽ cần các công cụ chuyên dùng cho việc ghi lại các báo cáo lỗi
Nhiều công ty sử dụng một môi trường kiểm thử riêng biệt để kiểm tra các phần mềm hay ứng dụng. Phương pháp phổ biến được sử dụng là sao chép lại các dữ liệu của môi trường production để kiểm tra. Điều này giúp người kiểm thử phát hiện các vấn đề tương tự như một máy chủ thực tế, mà không làm hỏng dữ liệu đó.
Phương pháp sao chép dữ liệu production để kiểm thử dữ liệu bao gồm:
Personal Identifiable Information
(PII - Thông tin nhận dạng cá nhân) được sửa đổi cùng với các dữ liệu bí mật khác. PII được thay thế bằng dữ liệu chính xác, nhưng không phải dữ liệu cá nhân.Người kiểm thử hoặc nhà phát triển có thể sao chép các dữ liệu này vào môi trường thử nghiệm cá nhân của họ. Đồng thời, họ có thể sửa đổi nó theo yêu cầu nếu muốn.
Quyền riêng tư là vấn đề chính cần xem xét khi sao chép dữ liệu production. Để khắc phục các vấn đề quyền riêng tư, chúng ta cần xem xét các dữ liệu kiểm thử bị ẩn giấu.
Đối với các dữ liệu này, chúng ta có thể xem xét 2 cách tiếp cận như sau:
Black List
: Trong phương pháp này, tất cả các trường dữ liệu được giữ nguyên. Ngoại trừ những trường được chỉ định bởi người dùng.White List
: Theo mặc định, tất cả các trường dữ liệu sẽ bị giấu đi. Ngoại trừ một danh sách các phần được phép sao chép. Một trường trong được đánh dấu trong White List
có ý rằng việc sao chép dữ liệu là ổn và không cần phải ẩn giấu đi.Ngoài ra, nếu như chúng ta sử dụng dữ liệu của môi trường production, ta cần phải biết cách để lấy được dữ liệu nguồn. Truy vấn cơ sở dữ liệu bằng tập lệnh SQL là một cách tiếp cận khá hiệu quả cho việc này.
Quản lý môi trường kiểm thử liên quan đến việc bảo trì và theo dõi những thiết lập và chức năng của môi trường.
Danh sách các hoạt động của chức năng quản lý môi trường thử nghiệm thường sẽ bao gồm như sau:
Ta có một danh sách kiểm tra như sau cho môi trường kiểm thử
MS Word
, phần mềm bảng tính MS Excel
...Cách dễ nhất để quản lý môi trường thử nghiệm của bạn là thông qua tự động hóa. Bằng cách áp dụng tự động hóa xây dựng và triển khai, bạn có thể quản lý môi trường thành công.
Các công cụ tích hợp liên tục (CI) như Jenkins rất phù hợp cho mục đích này. Jenkins là một máy chủ tự động mã nguồn mở miễn phí được viết bằng Java và là một trong những công cụ CI phổ biến nhất trong ngành phần mềm. Công cụ này không chỉ giúp tự động hóa quá trình triển khai này mà còn hỗ trợ chạy các bộ thử nghiệm.
Một cách tiếp cận khác để quản lý môi trường thử nghiệm của bạn là có tài liệu chi tiết mô tả, ví dụ, cách tạo bản sao chính xác của môi trường sản xuất của bạn. Tuy nhiên, cách tiếp cận thủ công hơn này dễ mắc phải sai lầm của con người.
Lập kế hoạch không hiệu quả cho việc sử dụng tài nguyên có thể ảnh hưởng đến đầu ra thực tế. Ngoài ra, nó có thể dẫn đến xung đột giữa các đội trong dự án.
Có thể môi trường kiểm thử nằm cách xa nhau về mặt địa lý so với môi trường phát triển. Trong trường hợp như vậy, nhóm kiểm thử phải dựa vào các nhóm hỗ trợ cho các tài sản, thiết bị thử nghiệm khác nhau (Phần mềm, phần cứng và các vấn đề khác).
Đôi khi, môi trường kiểm thử được thiết lập trở nên quá phức tạp trong các trường hợp Kiểm thử tích hợp (Integration testing)
Nếu môi trường kiểm thử được sử dụng bởi nhóm phát triển và nhóm kiểm thử một cách đồng thời, kết quả kiểm thử sẽ bị hỏng do khó có thể xác định được đầu ra mong muốn so với thực tế.
Một số quá trình kiểm thử yêu cầu cấu hình môi trường kiểm thử phức tạp. Nó có thể đặt ra một thách thức cho nhóm kiểm thử (về thời gian, chi phí...).
Best Practices
cho người quản lý môi trường kiểm thửChúng ta đã tìm hiểu được thế nào là môi trường kiểm thử, các thiết lập của môi trường kiểm thử cũng như các vấn đề khó khăn đặt ra cho một người quản lý môi trường kiểm thử. Cảm ơn mọi người đã đọc bài. Hi vọng mọi người đóng góp giúp mình để bài viết được hoàn thiện hơn.
Anh Tester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu