Without listening there is no understanding. And without understanding there can be no progress.
Insights for helping engineers and leaders develop T-shaped skills, scale teams, and build sustainable, high-performing delivery organizations.
Search by labels
leadership
(23)
qualityassurance
(18)
projectmanagement
(11)
growthmindset
(8)
goodread
(7)
tedtalks
(7)
agile
(5)
Thursday, October 22, 2020
Saturday, March 14, 2020
The Myers Briggs (MBTI) Personality Quiz
Ever heard someone describing himself as an ENTJ or an INFP? Check out the below video to see what it means:
Wednesday, February 26, 2020
Monday, February 17, 2020
Crew Resource Management
A methodology developed by the Aviation industry, currently being adopted by Emergency Medical Services and which could also bring significant benefits if implemented in the business world.
Monday, February 10, 2020
Monday, February 3, 2020
A Just Culture
Or why we should learn from mistakes and not punish the ones doing them - an important leadership lesson from the aviation world.
Monday, January 27, 2020
How To Speak So That People Want To Listen - TED Talk by Julian Treasure
Or why how we speak is as important as what we speak.
Monday, January 20, 2020
How to build a test automation framework from scratch
This tutorial will cover the steps for building a fully functional and complete Java test automation framework with Serenity, Cucumber and Selenium WebDriver for Front-end testing capabilities and with JUnit and RestAssured for Back-end testing capabilities.
As prerequisites, you need IntelliJ IDEA and Java Development Kit 8 or higher installed.
As learning examples we will be testing https://pokeapi.co/, a RESTful API that returns Pokémon data and https://en.wiktionary.org/wiki/, the online dictionary built by the Wikimedia Foundation.
1. Create the Maven project using the Serenity Cucumber Archetype.
2. Add the WebDriver.
3. Update the Serenity and Cucumber dependencies.
4. Setup the Cucumber reporting.
@RunWith(CucumberWithSerenity.class)
@CucumberOptions(
features = "src/test/resources/features/consult_dictionary/",
plugin = {"html:target/cucumber-html-report", "json:target/cucumber-json-report.json"})
public class DictionaryTestSuite {}
5. Run the Front-end test suite.
6. Refactor the test scenarios and make them easily extendable over time.
7. Extend testing on multiple scenarios.
At this point, the framework is up and running with Front-end testing capabilities. In the next 4 steps we will add the Back-end testing capabilities.
8. Add the JUnit and RestAssured dependencies.
9. Implement a basic GET request.
10. Add tests for the returned payload.
11. Extend testing on multiple cases.
And there you have it, the test automation framework is fully functional.
You can also use the Jenkins Serenity plugin to execute such test suites remotely and periodically.
As prerequisites, you need IntelliJ IDEA and Java Development Kit 8 or higher installed.
As learning examples we will be testing https://pokeapi.co/, a RESTful API that returns Pokémon data and https://en.wiktionary.org/wiki/, the online dictionary built by the Wikimedia Foundation.
1. Create the Maven project using the Serenity Cucumber Archetype.
As seen, it comes with the predefined structure and a test example.
2. Add the WebDriver.
The WebDriver controls the browser that will be used during testing. In this example, the geckodriver was added, this is used for the Firefox browser. You first need to make sure that the version of the WebDriver is compatible with the version of your browser, e.g. compatibility for chromedriver.
3. Update the Serenity and Cucumber dependencies.
Keeping the Maven dependencies up to date is important so that you benefit from all new features and stability improvements.
4. Setup the Cucumber reporting.
The resulting class will be:
@CucumberOptions(
features = "src/test/resources/features/consult_dictionary/",
plugin = {"html:target/cucumber-html-report", "json:target/cucumber-json-report.json"})
public class DictionaryTestSuite {}
5. Run the Front-end test suite.
As seen, you can check the test results either using the Cucumber reporting feature for a brief summary or the more detailed and screenshot abundant Serenity reporting feature.
6. Refactor the test scenarios and make them easily extendable over time.
Using Scenario Outlines makes it easy to maintain the tests and to add or change the test data over time.
7. Extend testing on multiple scenarios.
At this point, the framework is up and running with Front-end testing capabilities. In the next 4 steps we will add the Back-end testing capabilities.
8. Add the JUnit and RestAssured dependencies.
9. Implement a basic GET request.
The resulting class will be:
class RestClientTest {
@Testvoid testPokemonJson() {RestAssured.baseURI = "https://pokeapi.co";given().log().uri().when().get("/api/v2/pokemon/2").then().statusCode(200);
}
}
10. Add tests for the returned payload.
As seen, each value from the returned JSON can be straightforwardly tested.
11. Extend testing on multiple cases.
As shown, JUnit 5 offers the possibility to easily load test data as a .csv file.
And there you have it, the test automation framework is fully functional.
You can also use the Jenkins Serenity plugin to execute such test suites remotely and periodically.
Friday, January 17, 2020
Mirror Neurons - TED-Ed Talk by VS Ramachandran
Or how a small group of neurons shaped human culture and civilization as we know them.
Tuesday, January 14, 2020
How to setup a performance test suite with Apache JMeter
The Apache JMeter™ application is open source software,
a 100% pure Java application designed
to load test functional behavior and measure performance. It was
originally designed for testing Web Applications but has
since expanded to other test functions
To run JMeter you need Java Development Kit 8 or higher installed.
In this tutorial we will be testing https://pokeapi.co/, a RESTful API that returns Pokémon data.
1. Start by adding a Thread Group, through this component you will be able to control the number of threads, how they start and other aspects.
2. Implement a basic GET request for returning data about a certain Pokémon and add a Listener component to visualize the results.
3. Add Assertions on the response.
As shown in the video, you can check the basic elements like response code and message or go in-depth and extract other values from the payload with regular expressions (useful tool for working with regex here).
At this point the test is strongly hardcoded and hard to maintain over time. For example, if there were 100 tests in this suite and the server or the endpoint would change, you would have to manually update each one. So in the next step let's parametrize the test and keep the variables in a central component.
4. Centralize the variables in Config elements.
5. Extend the testing for multiple Pokémons.
6. Add a Summary Report and start testing on multiple threads.
A number of threads of 100 with a ramp-up period of 10 seconds means that each 100 milliseconds a new thread will be opened.
You can use the Jenkins Performance plugin to execute such test suites remotely and periodically.
To run JMeter you need Java Development Kit 8 or higher installed.
In this tutorial we will be testing https://pokeapi.co/, a RESTful API that returns Pokémon data.
1. Start by adding a Thread Group, through this component you will be able to control the number of threads, how they start and other aspects.
2. Implement a basic GET request for returning data about a certain Pokémon and add a Listener component to visualize the results.
3. Add Assertions on the response.
As shown in the video, you can check the basic elements like response code and message or go in-depth and extract other values from the payload with regular expressions (useful tool for working with regex here).
At this point the test is strongly hardcoded and hard to maintain over time. For example, if there were 100 tests in this suite and the server or the endpoint would change, you would have to manually update each one. So in the next step let's parametrize the test and keep the variables in a central component.
4. Centralize the variables in Config elements.
5. Extend the testing for multiple Pokémons.
6. Add a Summary Report and start testing on multiple threads.
A number of threads of 100 with a ramp-up period of 10 seconds means that each 100 milliseconds a new thread will be opened.
You can use the Jenkins Performance plugin to execute such test suites remotely and periodically.
Subscribe to:
Comments (Atom)