Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> система автоматического тестирования прогрраммы 
:(
    Опции темы
KuMa1104
Дата 11.12.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Здравствуйте.
Недавно написал небольшую программу. 
Там всегото происходит html  разметка С#  кода и потом его расскраска.

Но  в целях обучения мне сказали что, нужно создать для неё с-му автоматического тестирования.
И сделать поскорее.

Как это сделать с чего начать?
Я почитал в нете но всё равно я несовсем предстовляю как это должно выглядеть.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
Ram1reS
Дата 11.12.2009, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 25.4.2008
Где: Москва

Репутация: 3
Всего: 5



Читайте про Unit Test'ы, для начала тут и тут.
Инструментарий, например, NUnit (офф. сайт) или встроенные тесты студии.

Пример с NUnit.org:
Класс:
Код

namespace bank
{
  public class Account
  {
    private float balance;
    public void Deposit(float amount)
    {
      balance+=amount;
    }

    public void Withdraw(float amount)
    {
      balance-=amount;
    }

    public void TransferFunds(Account destination, float amount)
    {
        destination.Deposit(amount);
    Withdraw(amount);
    }

    public float Balance
    {
      get{ return balance;}
    }
  }
}


Тест к нему:
Код

namespace bank
{
  using NUnit.Framework;

  [TestFixture]
  public class AccountTest
  {
    [Test]
    public void TransferFunds()
    {
      Account source = new Account();
      source.Deposit(200.00F);
      Account destination = new Account();
      destination.Deposit(150.00F);

      source.TransferFunds(destination, 100.00F);
      Assert.AreEqual(250.00F, destination.Balance);
      Assert.AreEqual(100.00F, source.Balance);
    
    }
  }
}



Это сообщение отредактировал(а) Ram1reS - 11.12.2009, 10:24
--------------------
 
PM MAIL ICQ   Вверх
Heinzz
Дата 11.12.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



в профессиональной студии есть вазможность создания тестов


--------------------
user posted image
PM MAIL   Вверх
ДобренькийПапаша
Дата 11.12.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Я тут так подумал. Конечно, юнит-тесты нужная вещь, но если пишешь что-то относительно больше в одно лицо и нужно быстрее разработать, то если ещё и юнит-тесты ко всем функциям писать, то кодить сутками придётся)))))

Конечно, на меня можно напасть, сказав, что благодаря юнит-тестам разработка пойдёт быстрее, ибо времени на отладку уйдёт меньше и вообще всё прочее-прочее. Но думаю, это не всегда так. И в каждом отдельном случае надо думать, а нужен ли мне юнит-тест? 

Думается, в критических местах использование тестов уместно.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
KuMa1104
Дата 11.12.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



спасибо всем.
Почитал про  NUnit, вроде понял.
Буду пробовать.

Ram1reS отдельное спасибо++


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
gwi52
Дата 11.12.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Всем привет!

Всегда знал, что системное тестирование необходимо, но руки не доходили.
Совсем недавно наконец-то руки дошли - всем очень рекомендую заняться, не откладывая.
Открывается даже то, о чем и не гадал, философия да и только.
Тестирую  просто - см. код.
Образцов много, даже самые невероятные.
В результате тестирования и доработки получаю очень устойчивый код.
Буду очень признателен за критику.

Код

public class myClass   // Тестируемый класс
{ public    myClass       (int a, int b, int c )    { A=a; B=b; C=c;    }
  public    int    A,B,C;
  public    int    Action (int D, int E, int F )    { return A+B+C+D+E+F;    }
}
public class tester
{ myClass My=new myClass(1,2,3);
  List<string> S;    string [] s; int i;
  public void Test    ()    
  { S=new List<string>();    
//              D    E    F    Result
     S.Add    ("1    2    3    12");             // Тестовые образцы
     S.Add    ("2    3    4    15");
     for  (i=0;i<S.Count;i++)
     { s=S[i].Split('    ');
       int I=My.Action (Convert.ToInt32(s[0]),Convert.ToInt32(s[1]),Convert.ToInt32(s[2]));
       if  (I!=Convert.ToInt32(s[3])) MessageBox.Show("myClass.Action", "Error");
     }
} }

PM MAIL   Вверх
ДобренькийПапаша
Дата 11.12.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Вроде нормально, только один вопрос. Вы этот код специально нечитабельным сделали? Такое ощущение что кодили в старом добром блокноте)))


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
gwi52
Дата 11.12.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Сорри.
Это с непривычки.
На самом деле очень удобно и читабельно.

PM MAIL   Вверх
gwi52
Дата 11.12.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



P.S. Добренькому папаше.

Есть большие программы, которые пишутся "в одно лицо" и на всю оставшуюся жизнь.
В таких программах устойчивость кода особенно важна.
Давние скрытые ошибки или, правильнее, неточности - для меня всегда мучение.
Лучше бы отсечь их в начале.
Хотя понятно, что нет такой программы, в которой нет хотя бы еще одной ошибки.
PM MAIL   Вверх
DenWPF
Дата 11.12.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



да ладно вам. есть программы в которых уже нету ошибок...

PM MAIL   Вверх
gwi52
Дата 11.12.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



сомневаюсь, не видел таких программ...
PM MAIL   Вверх
Exai1e
Дата 11.12.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: 3
Всего: 30



gwi52, имхо: ну мб и дело привычки, но такой код сложно читаем) и не подходит не под какие стандарты)


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
gwi52
Дата 11.12.2009, 20:11 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



"...зри в корень...", а не на форму...
когда мне приходится разбирать чужой код, я всегда привожу его к удобному для себя виду...
PM MAIL   Вверх
DenWPF
Дата 11.12.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



парень не смей такое делать...
ну по крайне мере в команде такое делать нельзя.
лучше учись воспринимать любой вид.
PM MAIL   Вверх
gwi52
Дата 11.12.2009, 20:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Согласен, в серьезной команде должен быть стандарт.
Но разбирать иногда приходится такое, что ни в какие стандарты не укладывается.
Пишут вроде серьезные люди, в серьезных фирмах, очень серьезных...
Но сами же признают, что работает не весь код, и поэтому, вот вам код - кувыркайтесь как хотите.
И разобрать этот код без манипуляций над ним нет никакой возможности, поверьте мне.
Более того я знаю многих хороших программеров, которые форматируют тексты.

Так что, безусловно, правила нужны, но не догмы.

У меня в практике бывали случаи, когда только форматированием я добивался понимания, а затем и оптимизации, в результате которой программа начинала работать в 100 (сто) раз быстрее.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.