GTAC 2016: Bản trình bày

Nhận xét Mở đầu

Matt Lowrie (Google)

Sự phát triển của năng suất kinh doanh và kỹ thuật

Manasi Joshi (Google)

Đường liên kết: Video, Trang trình bày

Trong bài phát biểu này, chúng tôi sẽ cố gắng giới thiệu cho mọi người về hành trình phát triển kỷ luật năng suất kỹ thuật tại Google, cũng như về khả năng và vai trò của nguyên tắc này đối với sự phát triển kinh doanh của Google trong việc phát triển nhanh chóng, ổn định và tự tin thông qua các quy trình phát triển/phát hành/giám sát. Chúng tôi cũng ám chỉ một số thách thức mà chúng tôi đang phải đối mặt hiện nay và những góc nhìn mới về việc thử nghiệm trên nhiều nền tảng thông qua trải nghiệm sản phẩm có tính kết nối/dọc mà Google đang trải qua.

Tự động lái Robot Telepresence

Tanya Jenkins (Công ty tư vấn Cantilever)

Đường liên kết: Video, Trang trình bày

Việc kiểm thử giao diện lái xe của thiết bị viễn thông có thể khó khăn. Công cụ này hoạt động trong thế giới thực, tương tác với người và đối tượng, nhưng phải được kiểm thử trong môi trường có kiểm soát. Làm cách nào để giải quyết việc tạo một môi trường lái xe từ xa thực tế trong khi xác thực đồng thời vị trí và vị trí của thiết bị khi bạn không thể nhìn thấy? Tôi sẽ trình bày giải pháp đổi mới.

Ví của bạn có gì?

Hima Mandali (Thủ đô 1)

Đường liên kết: Video, Trang trình bày

Capital One là một trong những công ty thẻ tín dụng lớn nhất tại Hoa Kỳ với hơn 70 triệu tài khoản. Tại Capital One, chúng tôi đang xây dựng rất nhiều sản phẩm tuyệt vời mang đến trải nghiệm kỹ thuật số tuyệt vời cho khách hàng. Khi thiết bị di động trở thành kênh ưu tiên của khách hàng, bài nói chuyện này sẽ tập trung vào cách chúng tôi giải quyết vấn đề tự động thử nghiệm cho ứng dụng web dành cho thiết bị di động và những việc chúng tôi đã làm để đưa quy trình phân phối phần mềm nhanh hơn. Chúng tôi cũng sẽ chia sẻ về các công cụ nguồn mở mà chúng tôi đã sử dụng và trang tổng quan nguồn mở mà chúng tôi xây dựng để giải quyết vấn đề của mình.

Sử dụng số liệu thống kê về tự động chạy thử nghiệm để dự đoán thử nghiệm nào sẽ chạy

Boris Prikhodky (Công nghệ Unity)

Đường liên kết: Video, Trang trình bày

Kiểm thử đã trở thành một phần quan trọng trong quá trình phát triển ứng dụng, nhưng phải làm gì khi vị cứu tinh trở thành nút thắt cổ chai trong cuộc sống hằng ngày. Tại đây, chúng tôi chia sẻ kinh nghiệm về những việc đã làm khi có thời gian chờ từ 3 đến 6 giờ để chạy một cấu hình thử nghiệm. Trong phương pháp tiếp cận này, chúng tôi sẽ trình bày phương pháp tiếp cận đơn giản nhưng mạnh mẽ để tiết kiệm thời gian quý giá khi chạy các thử nghiệm xanh trong một trang trại thử nghiệm. Những cách có thể cải thiện quy trình cũng được đề cập.

Tự động thử nghiệm dựa trên Selen cho Windows và Windows Phone

Nikolai Abalov (2gis)

Đường liên kết: Video, Trang trình bày

Có Selenium để tự động hóa thử nghiệm ứng dụng web. Hiện có Ứng dụng dành cho thiết bị di động trên iOS và Android. Nhưng đối với Windows Desktop và Windows Phone/Mobile, chúng tôi đã tìm ra giải pháp dựa trên Selen của riêng mình. Vì vậy, Winium đã được tạo. Winium là một giải pháp nguồn mở giúp tự động hoá quy trình kiểm thử của các ứng dụng trên Windows Desktop và Windows Phone/Mobile. Winium dựa trên Selenium, vì vậy, bạn có thể bắt đầu sử dụng Selenium một cách tương đối dễ dàng nếu đã biết Selenium hoặc Appium, nó có thể được tích hợp vào cơ sở hạ tầng của selen hiện có của bạn. Trong buổi nói chuyện, tôi sẽ giới thiệu các dự án soạn Winium và minh hoạ cả Winium.Desktop và Winium.Mobile đang hoạt động.

Kiểm thử The Quirkier

Brian Vanpee (Google)

Đường liên kết: Video, Trang trình bày

Không phải tất cả các lỗi đều được tạo như nhau. Đôi khi, những điều kỳ quặc trong các ngôn ngữ lập trình mà chúng tôi sử dụng là nguyên nhân đáng trách, và việc tìm ra điều đó thường khiến người lập trình và người thử nghiệm giỏi nhất vấp ngã. Hãy tham gia cùng chúng tôi để chúng tôi xem xét một cách thú vị hơn khía cạnh thử nghiệm kỳ quặc hơn bằng cách hiển thị một số ví dụ được chọn lọc kỹ lưỡng từ nhiều ngôn ngữ mà chúng tôi sử dụng hàng ngày. Cuối cùng, chúng tôi sẽ thử thách bạn và cố gắng đoán ra điều kỳ quặc khi chúng tôi trình bày một loạt các ví dụ về quả cầu kỳ lạ bằng các ngôn ngữ như C, Java, Objective-C, PHP và ngôn ngữ yêu thích của mọi người – JavaScript.

Thuật toán máy học để thiết lập môi trường thử nghiệm trên thiết bị di động

Rajkumar Bhojan (Công nghệ Wipro)

Đường liên kết: Video, Trang trình bày

Với sự phát triển nhanh chóng của công nghệ điện toán di động, có một nhu cầu lớn về kiểm thử ứng dụng dành cho thiết bị di động trên thiết bị di động. Quản lý thiết bị di động đóng vai trò quan trọng trong việc thử nghiệm ứng dụng dành cho thiết bị di động và hiểu những thách thức trong Quản lý thiết bị di động cũng quan trọng như giải quyết chúng. Để tránh các vấn đề cụ thể về Thiết bị, nhà phát triển tự động thử nghiệm phải thử nghiệm ứng dụng trên một số lượng lớn thiết bị, tốn kém chi phí. Trong cuộc trò chuyện này, chúng tôi sẽ trình bày cách thuật toán máy học có thể xác định đúng tập hợp thiết bị để thiết lập môi trường thử nghiệm trên thiết bị di động.

“Bạn có thể nghe thấy tôi không?” – Kiểm tra chất lượng âm thanh qua

Alexander BrauckmanDan Hislop (Citrix)

Đường liên kết: Video, Trang trình bày

IATF: Khung kiểm tra API đa thiết bị và nhiều nền tảng tự động mới

Yanbin Zhang (Intel)

Đường liên kết: Video, Trang trình bày

Để dễ dàng áp dụng công nghệ WebRTC và cung cấp rộng rãi ứng dụng đó để mở rộng hoặc tạo mới, Intel đã phát triển giải pháp WebRTC từ đầu đến cuối, Intel® Collaboration Suite dành cho WebRTC. Hiện tại, Intel đã thiết lập một hệ sinh thái ngày càng phát triển của Bộ công cụ cộng tác Intel® dành cho WebRTC trên toàn thế giới. Sự hợp tác trong nhiều lĩnh vực khác nhau, bao gồm giáo dục, y tế, đám mây trong ngành, phát sóng trực tuyến mạng xã hội, hội nghị truyền hình và thiết bị đeo, v.v. Số lượng nền tảng được hỗ trợ API SDK tăng nhanh chóng, giúp tăng khả năng tương thích trên nhiều nền tảng và thử nghiệm việc tích hợp. Việc tự động kiểm tra khả năng tương tác trên các SDK khác nhau trên nhiều nền tảng sẽ trở thành vấn đề lớn. Trong cuộc trò chuyện này, chúng tôi sẽ giới thiệu Khung kiểm thử API đa thiết bị và nhiều nền tảng tự động, API-IATF. Bạn có thể áp dụng tính năng này cho mọi thử nghiệm SDK trên nhiều nền tảng và nhiều thiết bị cần giao tiếp trên nhiều nền tảng.

Sử dụng công cụ Phân tích chính thức trong thử nghiệm phần mềm

Fedor Strok (Yandex/NRU HSE)

Đường liên kết: Video, Trang trình bày

Bản phân tích khái niệm chính thức cung cấp cho chúng tôi một hộp công cụ để xây dựng bản thể học chính thức trên tập hợp các đối tượng có nội dung mô tả (được biểu thị dưới dạng tập hợp các thuộc tính). Nhánh đại số này ra đời năm 1984 và hiện được áp dụng cho nhiều nhiệm vụ khai thác dữ liệu khác nhau. Buổi nói chuyện này tập trung vào các kỹ thuật đặc biệt có giá trị cho việc kiểm thử phần mềm: sử dụng bản thể học chính thức cho các báo cáo kiểm thử thuận tiện và để xác định trường hợp kiểm thử bán tự động.

Cách thử nghiệm không ổn định trong quá trình tích hợp liên tục: Thực tiễn hiện tại tại Google và hướng dẫn trong tương lai

John Micco (Google)

Atif Memon (Đại học Maryland, College Park)

Đường liên kết: Video, Trang trình bày

Google có rất nhiều bài kiểm thử mà chúng tôi chạy liên tục trong hệ thống tích hợp liên tục quy mô lớn của mình. Khi xem xét dữ liệu này, chúng tôi thấy rằng các thử nghiệm không ổn định khiến chúng tôi lãng phí nhiều khía cạnh khác nhau. Chúng tôi đang nỗ lực nhằm nâng cao khả năng hiểu được tác động, phát hiện và giảm thiểu mức độ dễ gây cháy vốn có trong hệ thống.

Trải nghiệm của nhà phát triển, FTW!

Niranjan Tulpule (Google)

Đường liên kết: Video, Trang trình bày

Trang trại thử nghiệm phân tán theo địa lý dựa trên Docker - Thử nghiệm thực hành cơ sở hạ tầng trong Chương trình Android của Intel

Jerry Yu (Intel) và Guobing Chen (Intel)

Đường liên kết: Video, Trang trình bày

OpenHTF - Khung thử nghiệm phần cứng nguồn mở

Joe Ethier (Google) và John Hawley (Google)

Đường liên kết: Video, Trang trình bày

Hướng dẫn tạo thử nghiệm để phát hiện tính không hiệu quả của vòng lặp

Monika Dhok (Viện khoa học Ấn Độ)

Đường liên kết: Video, Trang trình bày

Nhiều vòng lặp được xác định là nguồn gây ra lỗi hiệu suất trong nhiều thư viện java. Điều này đã dẫn đến việc thiết kế các kỹ thuật phân tích tĩnh và động để tự động phát hiện các lỗi hiệu suất này. Tuy nhiên, mặc dù hiệu quả của bản phân tích động phụ thuộc vào các bài kiểm tra đầu vào được phân tích, nhưng các bản phân tích tĩnh sẽ kém hiệu quả hơn trong việc tự động xác thực sự hiện diện của những vấn đề này, xác thực bản sửa lỗi và tránh hồi quy trong các phiên bản trong tương lai. Chúng tôi đề xuất một phương pháp mới để tự động tạo các quy trình kiểm thử nhằm phát hiện tính kém hiệu quả của vòng lặp trong các thư viện java. Buổi trò chuyện này sẽ cung cấp thông tin tổng quan về công việc này.

Need for Speed - Tăng tốc kiểm tra tự động hóa từ 3 giờ đến 3 phút

Emanuil Slavov (Komfo Inc)

Đường liên kết: Video, Trang trình bày

Tất cả các thử nghiệm tự động cấp cao đều bị chậm trong môi trường có tốc độ nhanh, được đánh dấu đầu tiên hiện nay. Đây là chú voi trong phòng mà mọi người sẽ bỏ qua. Và vì một lý do chính đáng. Để đạt được các thử nghiệm tự động nhanh chóng, đáng tin cậy và hữu ích, bạn cần làm việc chăm chỉ. Tuy nhiên, bạn không có lựa chọn nào — với các thử nghiệm tự động chậm, bạn chỉ dễ dàng giao hàng nhanh chóng cho khách hàng. Tại Komfo, chúng tôi chạy thử nghiệm hơn 3 giờ mỗi đêm. Thời gian thực thi không ngừng tăng lên. Các bài kiểm thử trở nên không ổn định và không thể sử dụng dưới dạng vòng lặp phản hồi. Có những lần thử nghiệm không thành công trong hơn 20 ngày liên tiếp. Lỗi hồi quy đã bắt đầu xuất hiện trong phiên bản chính thức. Chúng tôi đã quyết định ngăn chặn sự điên rồ này và sau nhiều nỗ lực cũng như nỗ lực hết mình, hiện tại các thử nghiệm tương tự chỉ chạy chưa đầy 3 phút. Đây là câu chuyện cải tiến liên tục về cách chúng tôi đạt được số lần thử nghiệm nhanh hơn gấp 60 lần.

Mức độ sử dụng mã là một yếu tố dự báo hữu ích về mức độ hiệu quả của bộ thử nghiệm trong thực tế

Rahul Gopinath (Đại học Bang Oregon)

Đường liên kết: Video, Trang trình bày

ClusterRunner: giúp phản hồi thử nghiệm nhanh chóng dễ dàng thông qua việc chia tỷ lệ theo chiều ngang

Taejun Lee (Box Inc) và Joseph Harrington (Box Inc)

Đường liên kết: Video, Trang trình bày

Box chạy khoảng 30 giờ kiểm thử đơn vị và tích hợp trên mỗi cam kết. Chúng tôi tải song song các ứng dụng này để chạy trong vòng chưa đầy 17 phút bằng nền tảng phân phối thử nghiệm nguồn mở của chúng tôi, ClusterRunner. Tại sao Box lại có nhiều thử nghiệm đến vậy? ClusterRunner hoạt động như thế nào? Việc thiết lập ClusterRunner cho các thử nghiệm của riêng bạn có dễ dàng không? (Người tiết lộ: Có.) ClusterRunner cung cấp cho bạn phản hồi kiểm tra tốc độ cực nhanh bằng cách tải song song các kiểm thử trên một máy chủ lưu trữ và phân phối trên nhiều máy chủ. Được phát triển bởi nhóm Kỹ thuật năng suất của Box, chúng tôi sử dụng ClusterRunner nội bộ để chạy một bộ thử nghiệm hơn ba mươi giờ tuyến tính trong 17 phút và thực hiện hàng trăm lần mỗi ngày. ClusterRunner là nguồn mở và không phụ thuộc vào ngôn ngữ nên bạn có thể dễ dàng sử dụng cho dự án của riêng mình. Chúng tôi đã tạo ClusterRunner cho các nhóm kỹ thuật. Họ gặp khó khăn trong việc trì hoãn phản hồi trong thời gian dài hoặc để thử nghiệm mã chưa được kiểm thử đầy đủ. Chúng tôi đã thiết kế từ dưới lên để dễ sử dụng và có thể tích hợp với hệ thống CI hiện có. Tính năng này tìm hiểu thời gian chạy quy trình kiểm thử và lên lịch chạy các bản chạy thử trong tương lai để đưa ra ý kiến phản hồi nhanh nhất có thể. Các thành phần của API này giao tiếp thông qua một API REST thân thiện, giúp API có thể truy cập và có thể mở rộng.

Thử nghiệm tích hợp với nhiều thiết bị di động và dịch vụ

Alexander Dorokhine (Google) và Ang Li (Google)

Đường liên kết: Video, Trang trình bày

Mobly là một khung nguồn mở do Google phát triển dùng để kiểm thử những sản phẩm yêu cầu tương tác trên nhiều thiết bị, chẳng hạn như ứng dụng xã hội; hoặc các quy trình kiểm thử yêu cầu kiểm soát môi trường kiểm thử, chẳng hạn như kết nối Wi-Fi. Chúng ta sẽ thảo luận về sự khác biệt giữa thử nghiệm trên nhiều thiết bị và thử nghiệm trên nhiều thiết bị cũng như các vấn đề độc đáo của thử nghiệm đó, như đồng bộ hóa và luồng mã giữa nhiều thiết bị và cách Mobly giải quyết chúng.

Tỷ lệ so với Giá trị: Tự động thử nghiệm tại BBC

Jitesh Gosai (BBC) và David Buckhurst (BBC)

Đường liên kết: Video, Trang trình bày

Chúng tôi đã xây dựng một đám mây dành cho thiết bị nguồn mở nội bộ để mở rộng quy mô thử nghiệm các ứng dụng dành cho thiết bị di động và TV của mình nhưng khá nhanh chóng trở thành một con quái vật buộc chúng tôi phải suy nghĩ lại về phương pháp tự động hóa và tìm ra sự cân bằng chính xác giữa quy mô và giá trị. Tìm hiểu cách chúng tôi giải quyết những thách thức trong việc kiểm thử trên thiết bị nhờ tính năng tự động hoá tập trung và quyền sở hữu chung. Ngoài ra, hãy khám phá cách xây dựng đám mây thiết bị nội bộ của riêng bạn và tận dụng các công cụ nguồn mở của chúng tôi.

Tìm lỗi trong thư viện C++ bằng LibFuzzer

Kostya Serebryany (Google)

Đường liên kết: Video, Trang trình bày

Cách tôi tìm hiểu cách để thử nghiệm máy chủ

Jonathan Abrahams (MongoDB)

Đường liên kết: Video, Trang trình bày

Hãy đến để tìm hiểu cách chúng tôi kiểm tra tính mạnh mẽ của máy chủ MongoDB để tồn tại trong các tình huống sự cố hệ thống khác nhau. Tìm hiểu cách chúng tôi có thể tự động hóa sự cố đối với máy chủ thuộc bất kỳ loại hệ điều hành và cấu hình máy chủ nào (thực hoặc ảo).