Angie Jones PRO
Developer Advocate. International Keynote Speaker. Master Inventor.
Ace Your Next Technical Job Interview
Angie Jones
http://angiejones.tech
@techgirl1908
Senior Automation Engineer
Twitter, San Francisco, CA, USA
T.J. Maher
Adventures in Automation
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
UI
SERVICES
UNIT
@techgirl1908
public int add(int a, int b);
@techgirl1908
Given a user profile, how would you test
CRUD operations of a REST API?
@techgirl1908
CRUD | REST Methods | Tests |
---|---|---|
create | post | |
read | get | |
update | put | |
delete | delete |
@techgirl1908
CRUD | REST Methods | Tests |
---|---|---|
create | post | post with all optional and required data post with only required data post with required data missing post with invalid data for the parameters |
read | get | |
update | put | |
delete | delete |
@techgirl1908
CRUD | REST Methods | Tests |
---|---|---|
create | post | post with all optional and required data post with only required data post with required data missing post with invalid data for the parameters |
read | get | get when profile doesn't exist get when profile exists create profile then get update profile then get delete profile then get |
update | put | |
delete | delete |
@techgirl1908
CRUD | REST Methods | Tests |
---|---|---|
create | post | post with all optional and required data post with only required data post with required data missing post with invalid data for the parameters |
read | get | get when profile doesn't exist get when profile exists create profile then get update profile then get delete profile then get |
update | put | update existing profile update non-existing profile update deleted profile update then update again |
delete | delete |
@techgirl1908
CRUD | REST Methods | Tests |
---|---|---|
create | post | post with all optional and required data post with only required data post with required data missing post with invalid data for the parameters |
read | get | get when profile doesn't exist get when profile exists create profile then get update profile then get delete profile then get |
update | put | update existing profile update non-existing profile update deleted profile update then update again |
delete | delete | delete profile delete when there are dependencies delete after delete delete non-existing |
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
@techgirl1908
/html/body/div/div/div/div/div/div[2]/label/span[2]
@techgirl1908
@techgirl1908
.//span[contains(@class, 'PollXChoice-choice--radio')]/span[text() = '%s']
@techgirl1908
@techgirl1908
@techgirl1908
Notation | Description | Example |
---|---|---|
O(1) - Excellent | performance of execution is the same regardless of the input set | insert, delete, search Hash table |
O(log N) - Good | high performance at beginning but flattens as the size of the data set increases | binary search |
O(N) - Fair | performance will deteriorate in direct proportion to the growth of the input set | loop through List to find value |
O (N log N) - Bad | O(N) * O(log N) - task takes O(log N) and has to be repeated O(N) times | sorting |
O(N^2)- Horrible |
performance will deteriorate in direct proportion of 2 times the data set | nested loops N^2 is for 2 nested loops N^3 is for 3 nested loops |
O(2^N) - Horrible | number of calls inside function x number of times function will be called | recursive function with multiple calls (i.e fibonacci recursion) |
@techgirl1908
Structure | Description |
---|---|
Hash Table | maps keys to values |
Stack | line of data. last in, first out |
Queue | line of data. first in, first out |
Linked List | sequence of nodes where each node points to next node |
@techgirl1908
Instructions: 2 arrays. Print any that appear in both
Example:
a1 = {'a', 'b', 'c'}
a2 = {'b', 'c', 'd'}
@techgirl1908
Instructions: 2 arrays. Print any that appear in both
Example:
a1 = {'c', 'a', 'b', 'c'}
a2 = {'b', 'c', 'd'}
@techgirl1908
Instructions: 2 arrays. Print any that appear in both
Example:
a1 = {'c', 'a', 'b', 'c'}
a2 = {'b', 'c', 'd'}
Expected Result: {'c', 'b'}
@techgirl1908
Instructions: 2 arrays. Print any that appear in both
Example:
a1 = {'c', 'a', 'b', 'c'}
a2 = {'b', 'c', 'd'}
Expected Result: {'c', 'b'}
@techgirl1908
Instructions:
Given a list of Strings and a specific String, find out many times the String appears in the list
Example:
l = {"abc", "def", "abc", "ghi"}
s = "abc"
output = 2
@techgirl1908
Instructions:
Given a list of Strings and a specific String, find out many times the String appears in the list
Example:
l = {"abc", "def", "abc", "ghi"}
s = "abc"
output = 2
@techgirl1908
by Gayle McDowell
@techgirl1908
Angie Jones
http://angiejones.tech
@techgirl1908
Senior Automation Engineer
Twitter, San Francisco, CA, USA
By Angie Jones
Tech interviews these days are bananas, especially for automation engineers who need to know testing, development, and their specialty. In this talk, I walk through how to solve tricky interview problems for automation engineers.
Developer Advocate. International Keynote Speaker. Master Inventor.