Software Engineer in Test Group (3 members) Test Automation/CI/CD Group vision : 自動化と高速化を進め、プロとして最高のDXを実現する Create the best DX (Developer Experience) in the world. @naotospace NA070
from two times a week to four times a week. We achieved this goal by solving some problems in the automated system testing which is executed before release.
testing Release! • E2E(End-to-End) test using Selenium. • Executed before release. • To make sure no incident is increasing by degrades. System testing
Define the scopes about manual testing and automated testing • Manual:Specification based – New features and regression test • Automated:Risk based – Comprehensive regression test
“Bucky” $ bucky run -case case_1 Data base Save test result Execute test TestC ode TestC ode Test Case Page object Element Locater Element Location Page object Make test report Bucky-core Bucky-management
New testing framework “Bucky” # YAML example american: - Boston Red Sox - Detroit Tigers - New York Yankees national: - New York Mets - Chicago Cubs - Atlanta Braves
“Bucky” - case_name: favorite_1 func: Save to favorite. desc: Save Real Estate to favorite from detail page procs: - proc: Open Real Estate’s detail page. exec: operate: go url: www.homes.co.jp/chintai/b-0000000000000/ - proc: Save to favorite. exec: operate: click page: bukken_detail part: favorite - proc: Check whether target Real Estate is saved as favorite. exec: verify: assert_exist_part page: bukken_detail part: complete_favorite
Very simple ◦ No programming skills dependence ◦ No if and loop ◦ Reduce complexity -> Improved maintainability -> Stabilization test execution Solution 2 New testing framework “Bucky”
“Bucky” # Open Real Estate’s detail page. self.driver.get('www.homes.co.jp/chintai/b-0000000000000/’) # Save to favorite. page = bukkenluist.Page(self.driver) page.favorite.click # Check whether target Real Estate is saved as favorite. self.verify.is_true(self.is_exist_part(page, 'complete_favorite’)) def is_exist_part(page, part_name): try: getattr(page, part_name) return True except NoSuchElementException: return False except Exception as e: raise Exception(e.message) - case_name: favorite_1 func: Save to favorite. desc: Save Real Estate to favorite from detail page procs: - proc: Open Real Estate’s detail page. exec: operate: go url: www.homes.co.jp/chintai/b-0000000000000/ - proc: Save to favorite. exec: operate: click page: bukken_detail part: favorite - proc: Check whether target Real Estate is saved as favorite. exec: verify: assert_exist_part page: bukken_detail part: complete_favorite Bucky-core Old(Python)
We published as OSS. Please take a look and have a try of Bucky! https://github.com/lifull-dev/bucky-core https://github.com/lifull-dev/bucky-management