Upgrade to Pro — share decks privately, control downloads, hide ads and more …

E2Eテストのシナリオと抽象化の粒度の話.pdf

tsuemura
September 19, 2024
510

 E2Eテストのシナリオと抽象化の粒度の話.pdf

東京ソフトウェア QA ミートアップ 2024-9-19
https://japantestcommunity.connpass.com/event/327073/

tsuemura

September 19, 2024
Tweet

More Decks by tsuemura

Transcript

  1. 自己紹介 末村 拓也 X: @tsueeemura Quality Evangelist at Autify, Inc.

    開発からマーケティングまで全部やる方のフルスタ ックエンジニア テトリスなどシンプルなパズルゲームが好き 最近はずっとツムツムをやっている
  2. POMの例 import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; /** * Page Object encapsulates

    the Sign-in page. */ public class SignInPage { protected WebDriver driver; // <input name="user_name" type="text" value=""> private By usernameBy = By.name("user_name"); // <input name="password" type="password" value=""> private By passwordBy = By.name("password"); // <input name="sign_in" type="submit" value="SignIn"> private By signinBy = By.name("sign_in"); public SignInPage(WebDriver driver){ this.driver = driver; if (!driver.getTitle().equals("Sign In Page")) { throw new IllegalStateException("This is not Sign In Page," + " current page is: " + driver.getCurrentUrl()); } }
  3. POMの例 /** * Login as valid user * * @param

    userName * @param password * @return HomePage object */ public HomePage loginValidUser(String userName, String password) { driver.findElement(usernameBy).sendKeys(userName); driver.findElement(passwordBy).sendKeys(password); driver.findElement(signinBy).click(); return new HomePage(driver); } }
  4. ある ECサイトのテストコード I.click('購入に進む') // 商品購入画面へ遷移 I.click('決済方法を選択') '購入に進む ' をクリックすると画面遷移が期待されているが、 コードでは表されていない状態

    ページ遷移に失敗すると、 決済方法を選択 要素が存在せずエラーになるが、 欲を言うと 期待したページに遷移していない エラーで失敗してほしい