• Save
Testing of Embedded SW – Alternative to Classic TDD
Upcoming SlideShare
Loading in...5
×
 

Testing of Embedded SW – Alternative to Classic TDD

on

  • 802 views

 

Statistics

Views

Total Views
802
Views on SlideShare
536
Embed Views
266

Actions

Likes
0
Downloads
4
Comments
0

2 Embeds 266

http://lib.custis.ru 244
http://wiki.office.custis.ru 22

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Testing of Embedded SW – Alternative to Classic TDD Testing of Embedded SW – Alternative to Classic TDD Presentation Transcript

  • Тестирование встроенного ПО:Альтернатива классическому TDD
    1
    Dmitry Ovechkin
    Director of Product Development at Innova Systems
    Dmitry_ov@yahoo.com
  • Что такое test driven development?
    2
    result_tTestCalc(void)
    {
    if (13 == Calc(5; 8))
    return SUCCESS;
    else
    return FAIL;
    }
    Сначала
    ТЕСТ
    short Calc(int A, int B)
    {
    return A + B;
    }
    Потом
    КОД
  • Плюсы TDD
    3
    Unit
    Tester
    Unit
    Схема Unit Test-а
  • Минусы TDD
    4
    Unit
    Tester
    Unit
    Схема Unit Test-а
  • Что такое Feature test driven development?
    5
    result_tTestCalc(void)
    {
    if (13 == Calc(5; 8))
    return SUCCESS;
    else
    return FAIL;
    }
    Сначала
    FEATURE
    ТЕСТ
    short Calc(int A, int B)
    {
    return A + B;
    }
    Потом
    КОД
  • Feature Test driven development
    6
    Unit 1
    Feature
    Tester
    Unit 2
    Unit 3
    Схема Feature Test-а
  • Схема FTDD для встроенного ПО
    Serial Interface
    Serial Interface
    Device
    PC
    Serial Manager
    Test Engine
    Кнопка
    Логирование
    Feature
    Tester
    Компонент 1
    Компонент 2
    Скрипт
    XML Команда
    Компонент 3
    Список скриптов
    7
  • Диаграмма последовательности
    Скрипт
    Test Engine
    Serial Manager
    Компонент
    Компиляция кода
    Прошивка имиджа
    Нажать кнопку
    Сериализация команды
    Посылка команды в сериал интерфейс
    Загрузка ожидаемой команды
    Де-сериализация команды
    Вызов метода компоненты
    Статус вызова метода
    Лог
    Сериализация команды
    Посылка статуса в сериал интерфейс
    Сравнение результата с ожидаемым
    Логирование результата
    8
  • Описание команды – Reset_req.xml
    <?xml version="1.0" ?>
    <struct>
    <length type="uint8" />
      <const name="id" type="uint8">0x10</const>
    <list name="resetType" type="uint8">
    <alias value="0x00">Hard</alias>
    <alias value="0x01">Soft</alias>
      </list>
    </struct>
    9
  • Описание команды – Reset_conf.xml
    <?xml version="1.0" ?>
    <struct>
    <length type="uint8" />
      <const name="id" type="uint8">0x11</const>
    <list name="status" type="uint8">
      <alias value="0x00">Success</alias>
     <alias value="0x01">Invalid parameter</alias>
      <alias value="0x02">Unsupported attribute</alias>
      <alias value="0x03">Not Success</alias>
      </list>
    </struct>
    10
  • Проверка команды - Reset.py
    """
    @parameters
    port - port (ports list) to use
    resetType - resetType
    status - expected status
    """
    for port in ports:
    port.send('SysResetReq',
    resetType = resetType
    )
    for port in ports:
    cmd, conf = port.receive()
    check(cmd == 'SysResetConf')
    check(conf['status'] == status)
    11
  • Вызов reset команды – testcase1.py
    # Parameters list
    port1=‘COM1’
    port2=‘COM2’
    cmdStatus=‘Success’
    rType=‘Soft’,
    #calling reset
    writeLog('1. Resetting nodes')
    function('reset',
    port = [port1, port2],
    resetType=rType,
    status=cmdStatus
    )
    12
  • логирование
    Case      : testcase1Description: Resetting devices
    1. Resetting nodes Send command RESET_REQ    length 0x02    id 0x10    resetType 0x01 (Soft)  Receive command RESET_CONF    length 0x02    id 0x11    status 0x00 (Success)
    13
  • 14
    Thank You!
    Dmitry Ovechkin
    Director of Product Development at Innova Systems
    Dmitry_ov@yahoo.com