Сегодня 18 января, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Записки о тестировании ПО
Записки о тестировании ПО
Голосов: 1
Адрес блога: http://swtesting.livejournal.com/
Добавлен: 2008-06-02 01:12:46
 

Простые правила написания функциональных автотестов.

2008-05-06 23:00:25 (читать в оригинале)

1) Имя метода автотеста должно ясно описывать, что этот тест делает. Например:
testLogin будет более информативным именем для автотеста, чем test1_1.
Какие плюсы могут быть от такого именования автотестов?
  • Вам будет проще ориентироваться в тестах.
  • Другим будет проще их использовать и поддерживать.


2) Лишняя логика в методе автотеста будет только усложнять его. Посмотрим на следующий тест :

public testPostMessage() {
    selenium.type("id=title", "Hello world");
    selenium.type("id=text", "and everybody!!!");
    for (int i = 0; i < 3; i++) {
        selenium.type("id=tags" + i, "test post" + i);
    }
    selenium.select("id=access", "label=all");
    selenium.click("id=submit");
}

Даже с простыми idшками не сразу можно понять что происходит в автотесте. Немного упростим его:

private void setMessageTitle(String title) {
    selenium.type("id=title", title);
}

private void setMessageText(String text) {
    selenium.type("id=text", text);
}

private void setMessageTags(String tag){
    for (int i = 0; i < 3; i++) {
        selenium.type("id=tags" + i, tag + i);
    }
}

private void setMessageAccess(String access){
    selenium.select("id=access", "label=" + access);
}

private void submit(){
    selenium.click("id=submit");
}

public testPostMessage() {
    setMessageTitle("Hello world");
    setMessageText("and everybody!!!");
    setMessageTags("test post")
    setMessageAccess("all")
    submit();
}

Код автотеста увеличился в размере, но при этом сам автотест стал более понятным.

3) Метод автотеста должен быть коротким настолько, насколько это возможно. Основной плюс опять же в простоте понимания такого теста. Например, есть два автотеста:

public void testLogin() {
    goToLoginForm();
    enterLogin();
    enterPass();
    clickLogin();
    assertTrue(isLoggedIn());
}

и

private void login() {
    goToLoginForm();
    enterLogin();
    enterPass();
    clickLogin();
}

public void testLogin() {
    login();
    assertTrue(isLoggedIn());
}

Второй автотест выглядит более понятным, несмотря на простоту примеров. С ростом размеров автотеста, количества автотестов, разница между первым и вторым вариантами написания автотеста будет ощущаться все больше и больше.

4) С помощью констант можно сделать код автотестов более понятными. Есть следующий тест:

public void testPassword() {
    assertTrue(login.isPasswordValid("qwerty"));
    assertFalse(login.isPasswordValid("asdf"));
}

Добавим в этот автотест несколько констант, и код станет более понятным :

String validPassword = "qwerty";
String inValidPassword = "asdf";

public void testPassword() {
    assertTrue(login.isPasswordValid(validPassword));
    assertFalse(login.isPasswordValid(inValidPassword));
}



 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.