Experience of black-box testing on set-top-boxes/IP-connected devices, games consoles and tablets

http://www.tested.com/tech/set-top-boxes/

Streaming media,是指將一連串的媒體數據壓縮後,經過網路分段傳送數據,在網路上實時傳輸影音,以供觀賞的一種技術與過程。

Amazon Instant Video (formerly Amazon Video On Demand and LOVEFiLM Instant) is an Internet video on demand service by Amazon in the United States, United Kingdom, Germany and Japan. It offers television shows and films for rental and purchase, as well as free to customers with an Amazon Prime subscription.主要透過 PC、平板電腦、手機這樣的終端,獲取點播或者下載觀看服務。

Amazon Fire TV is a digital media player and microconsole developed by Amazon.com.It is a small network appliance and entertainment device designed to stream digital audio/video content to a high-definition television. The device also allows users to play video games with the included remote, via a mobile app, or with an optionalgame controller. The device features 2 GB of RAM, MIMO dual-band Wi-Fi, and a Bluetooth remote control with a microphone for voice search. It supports 1080p streaming and Dolby Digital Plus 5.1 surround sound. Unveiled on April 2, 2014, the Amazon Fire TV was made available for purchase the same day for US$99.

Functions: Play movie(buffering time, clear), Voice search, Play game(game controller), Switch between TV and Kindle Fire, Connect to TV and wifi easily, Remote control(buttons), Play music(background, also do other things), Photos(available within seconds after you upload it to cloud drive), Profiles for kids,

GUI testing: Search/Home/Movie/Photos/Apps...Layout, Navigation, Font/Color/Size,

Compatibility: Compatible with high-definition TVs with HDMI capable of 1080p or 720p at 60/50Hz, including popular HDCP-compatible models from these manufacturers: Hitachi, JVC, LG, Mitsubishi, NEC, Panasonic, Philips, Pioneer, Samsung, Sharp, Sony, Toshiba, Vizio, Westinghouse. Dual-band, dual-antenna Wi-Fi (MIMO) for faster streaming and fewer dropped connections than standard Wi-Fi. Supports 802.11a/b/g/n Wi-Fi networks.

Contents format supported: Video: H.263, H.264, MPEG4-SP, VC1
Audio: AAC, AC-3, E-AC-3, HE-A, PCM, MP3
Photo: JPG, PNG

Battery.

Set-box test automation:

Stb-tester issues commands to the device under test in the same way a real user does (infrared signals to a set-top box, or taps & swipes on a mobile device, etc).

press("MENU")
wait_for_match()

Example test script

Stb-tester then checks the behaviour of the device under test by analysing the device’s video output: checking that a particular user interface element appears or disappears, that video plays or pauses, or using optical character recognition to read on-screen text.

The reports contain video recordings of each test run. You can configure stb-tester to gather logs from the device-under-test (for example if you have serial access) or other logs related to the test (for example network traces); these logs appear in the report under the relevant test run. You can also configure the report to display any particular data; for example if you’re soak-testing a channel-change test, you might want the duration of the channel-change to appear as a column in the report, so that you can sort by that column and instantly find the test results worth analysing.

http://www.tcs.com/SiteCollectionDocuments/White%20Papers/tcs_telecom_whitepaper_STBTESTING.pdf

Thesis:

I am solid in video compression algorithms and H.264 standard. H.264 standard: macroblocks->Luminance/Color, Prediction mode->Inter/Intra, Residual block is transformed(Integer Discrete cosine transform, convert residual from spatial domain to frequency domain), quantized(in-significant high-freq data becomes zeros), and entropy coded(zigzag scanning). Decompression: Entropy decoder first decodes the compressed bitstream to produce quantized coefficients as well as header information, then dequantization, inverse transformed, add to the prediction signal to form the restored macroblock.

My first research work was on improving the interpolation filter for sub-pixels when performing motion estimation to reduce redundancy between transmitted frames and current frame. In H.264, fixed interpolation filter is adopted, while Adaptive IF is estimated for every image. But AIF takes the whole image into account to calculate wiener filter, my proposal is to only include those high-frequency area to generate filter coeff. We use Bjontegaard Delta bit rate and Bjontegaard Delta Peak signal to noise ratio for measurement.

My second research topic was on improving combined inter-intra prediction by tuning weighted coefficients according to the image characteristics.

  • An entropy coding design including:

    • Context-adaptive binary arithmetic coding (CABAC), an algorithm to losslessly compress syntax elements in the video stream knowing the probabilities of syntax elements in a given context. CABAC compresses data more efficiently than CAVLC but requires considerably more processing to decode.
    • Context-adaptive variable-length coding (CAVLC), which is a lower-complexity alternative to CABAC for the coding of quantized transform coefficient values. Although lower complexity than CABAC, CAVLC is more elaborate and more efficient than the methods typically used to code coefficients in other prior designs.
    • A common simple and highly structured variable length coding (VLC) technique for many of the syntax elements not coded by CABAC or CAVLC, referred to asExponential-Golomb coding (or Exp-Golomb).
  • Network Abstraction Layer (NAL) definition allowing the same video syntax to be used in many network environments. One very fundamental design concept of H.264 is to generate self-contained packets, to remove the header duplication as in MPEG-4's Header Extension Code (HEC).[32] This was achieved by decoupling information relevant to more than one slice from the media stream. The combination of the higher-level parameters is called a parameter set.[32] The H.264 specification includes two types of parameter sets: Sequence Parameter Set (SPS) and Picture Parameter Set (PPS). An active sequence parameter set remains unchanged throughout a coded video sequence, and an active picture parameter set remains unchanged within a coded picture. The sequence and picture parameter set structures contain information such as picture size, optional coding modes employed, and macroblock to slice group map.[32]

Test scenarios we write:

The automated testing framework is using a technology called fluent interface, which enables script writers to write test cases like using natural language. For example,

OrderRef ref = trader.withTradingApplication().createNewOrderWith().

                        .symbol("xxx").side(BUY).quantity(100)..send();

A fluent interface is normally implemented by using method cascading (concretely method chaining) to relay the instruction context of a subsequent call (but a fluent interface entails more than just method chaining).

In us-galaxy, tests are organized into different packages according to the features. Packages like: auto Rule, eod Rule, expunge Rule, manual adv, manual ioi, integration b-g, integration p-g. In autoRule package, test rules on Country, CovUser, Desk, Region....

Testing trading application: 

Environment: QA env, SIT2 env for f2b testing, then UAT env.

Functional testing: for example, in the release there is some new feature ErrorMove added, then you need to perform the testing steps to verify if it is the expected behavior. Test steps: download the latest version deployed in QA env, create order, execute order, move the executions to error book, check if the order's execQty is less, and if error book has got the qty.

also, if the release has some bug fix, we need to test if the bug is fixed and also perform the regression testing, mainly through automation.

Status report: green sign-off.

Agile project development we use:

We have bi-weekly sprint meeting, which includes Review, Planning, Retrospective. Review part is reviewing every body's work during last sprint, if task is delivered on time, and if not, what the blocking reason is. Planning is according to every body's own velocity, include the tasks into sprint by considering the priority, severity of tasks in the backlog.  Retrospective: collect everybody's thought on the good, bad part of the testing process, what actions can be done to improve current situation, who is responsible for the action. Still, in the middle of sprint, some tasks may be added into the sprint if they are important or the person has time left.

We also have daily scrum meeting, in which every one states the work he has done yesterday and his planning for today.

The team I am currently working in:

Automated testing team: with both QA and automated testing framework developers. QA does both manual and automated testing. And developers build and support the testing framework for QA to use when writing and executing automated test scripts. Our team automates all the in-house applications at the cash equities side, from front-office trading applications, middle-office booking/risk management, to back-office settlement applications. The sprint is also divided according to the function area.

From the beginning of automating testing an application, I first discuss with QA on the automatable items and collect them in a work log. Then by prioritizing the tasks, we do some initial planning, like delivering date for them.  It usually takes developers several weeks to build the framework from scratch and provide the first feature to be tested. Then we start regular sprint planning, once a new feature is delivered, developer will provide script example and instruct QA how to use the framework. The planning for the next sprint not only includes new featues, but also bugs found in the testing framework. Therefore, in the following sprint, QA will also have task to verify the bug in the harness is not there anymore.

Self intro:

I will start with my educational background. I was studying on Communications Engineering in Tianjin University, so I learned a lot of hardware-related courses like low/high frequency circuit analysis, wireless communication, assembly language, digital circuit design, etc. I was honored the Outstanding Graduate that year with a major rank 2nd among 120 students.

Then I accepted the full research scholarship offer from Hong Kong University of Science of Technology. During my two and a half year master study in UST, I was mainly doing research on Video compression algorithms design. I obtained quite a lot of knowledge on video and image processing and current video coding standards: published three papers on top international academic conferences as the first author.

After graduation, I spent four months working in a local technology firm doing C# programming, then I started summer internship program in Equities Single-Stock OMS team in Barcaps Capital. When the three-month internship ended, I was the only intern in Hong Kong who was retained as a permanent employee.

In HK I was part of Equities QA team and I was responsible for developing automated testing framework for APAC OMS using programming language core Java. I was cooperating with script writers and OMS developers, and our framework finally covered almost 80% percent of OMS testing. In September last year, I joined the Automated testing team in Prague office, which is the technology center of Barcap in Europe. I got the chance to develop testing framework for more systems, like Global Program trading system and Interest-of-order publishing system.

And since I would like to move to another place or back to Hong Kong now, I have resigned from Barcap and am looking for job in testing area.

Reason to change: 

Personal reason: I would like to move to another city or back to HK, I prefer fast-paced and more international environment.

This quality assurance engineer position is in the video-related team. I was majoring in Communcation Engineer in my undergraduate study, and had been doing research on video compression for three years. So I have gained a lot of knowledge on the hardware design, video processing and compression algorithms. Then my three-year working experience has trained me on software engineering side, I am solid in core Java programming and also familiar with automated testing methodologies. So I think I may make use of both my hardware and software knowledge in this position.

Also, amazon is the largest Internet based company and I would like to work with the most intelligent people there. I am expecting the highly cooperative, efficient working environment. I would like to develop my long-term career there.

I think my personalities fit into testing job better. I am extremely detail oriented, and hardworking. I like communicating with others. I am good at solving automated testing issues. My previous experience as a developer would be my advantage comparing to other testers, I am able to dig deep into the problem and handle technical issues properly.

a* products的更多相关文章

  1. Building third-party products of OpenCascade

    Building third-party products of OpenCascade eryar@163.com Available distributives of third-party pr ...

  2. SharePoint Configuration Wizard - Unable to upgrade SharePoint Products and Technologies because an upgrade is already in progress

    故障描述 当要运行SharePonit Products and Technologies Configuration Wizard的时候,出现了如下图所示的错误提示. 错误信息为: Unable t ...

  3. Registry values for ProductID and LocaleID for AutoCAD and the vertical products

    原文地址:http://adndevblog.typepad.com/autocad/2013/08/registry-values-for-productid-and-localeid-for-au ...

  4. magento添加多个产品到购物车(Add multiple products to cart )

    Step  1app\design\frontend\base\default\template\catalog\product\list.phtml<?php    $_productColl ...

  5. FVDI Commander products be replaced SVDI tools,really?

    You may have heard that some FVDI Commander products are being replaced by the new SVDI tools. This ...

  6. 读书笔记-《Training Products of Experts by Minimizing Contrastive Divergence》

    Training Products of Experts by Minimizing Contrastive Divergence(以下简称 PoE)是 DBN 和深度学习理论的 肇始之篇,最近在爬梳 ...

  7. /users/products.:format 这种写法的其对应解析字符写法

    “products.:format" 这种写法可以有对应的下面两种路由形式 /products.json /products.xml "products.:format?" ...

  8. Amazon.com: NEW VI AND VIM EDITOR KEYBOARD STICKER: Office Products

    Amazon.com: NEW VI AND VIM EDITOR KEYBOARD STICKER: Office Products NEW VI AND VIM EDITOR KEYBOARD S ...

  9. Popular Products

    Popular Products 描述 Given N lists of customer purchase, your task is to find the products that appea ...

  10. 生成订单:三个表(Products,Orders,OrderItem)

    1.有三个表(Product上,Orders,OrderItem) 分别创建对应的三个实体类 OrderItem中有外键Order_id 参考Orders中的id :Product_id参考Produ ...

随机推荐

  1. Mongodb 副本集分片(二)---mongodb副本集部署脚本详解

    分享下,最近做的一主一从一仲裁的示例,如有需要,大家可以扩展成一主两从一仲裁. 大家可以看到  我的集群名字沿用了默认的neunnm,如果是其他的话   大家注意修改. 需要辅助文件hosts.con ...

  2. Rank() 、DENSE_RANK()、NTILE(n)的用法-转

    Rank() over()/DENSE_RANK()  over()的用法 1.Rank() over()/DENSE_RANK()  over() 这两个函数与ROW_NUMBER()函数类似,因为 ...

  3. C++ 读取txt文本内容,并将结果保存到新文本

    循序渐进学习读文件 // readFile.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> # ...

  4. 无废话WCF入门教程六[一个简单的Demo]

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  5. spring开发的总结

    1,当出现无法创建bean,( Error creating bean with name 'fileUploadService': Injection of resource dependencie ...

  6. PHP造PDO对象和事务功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 显示图片的(自定义)吐司Toast

    一般我们提示的时候都是直接提示文字的,其实Toast也可以显示图片 常用方法 Toast.makeText(context,text,duration)这返回一个Toast对象 toast.setDu ...

  8. 深入replace

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. stringObject.replace(reg/str,str/replacement); 这里主 ...

  9. [翻译]PYTHON中如何使用*ARGS和**KWARGS

    [翻译]Python中如何使用*args和**kwargs 函数定义 函数调用 不知道有没有人翻译了,看到了,很短,顺手一翻 原文地址 入口 或者可以叫做,在Python中如何使用可变长参数列表 函数 ...

  10. Mac的最小化和隐藏的区别

    Mac 中应用程序窗口的最小化和隐藏的快捷键: CMD + H 隐藏应用程序 CMD + M 最小化应用程序 重点在于两点的区别: 最小化会隐藏当前应用程序的窗口,不切换当前的应用程序:隐藏应用程序会 ...