TikTok Flashcards

Behavioral interview prep

1
Q

About me

A

I have 5+ experience in the field. Started out as a support techitian and worked myself up as a Software quality assurance engineer. Along the way I have build myself a set of skills including leading a team and finding common pinpoints and bottlenecks within a qa process.
- My last company was Enel, where I worked as a software quality assurance engineer. Enel is a global company based in Italy. Our subdivision produced electric car chargers.
- I was responsible for testing web and mobile apps that supported electric car chargers.
- I got to wear many different hats. I spearheaded key projects such as dashboard migration for utility companies and end-to-end testing of our B2C mobile app, ensuring successful completion from start to finish.
- This experience taught me valuable lessons in project ownership, multitasking, and proactive decision-making.
- My completion these projects led to a significant reduction in software defects by 25%, improving overall product quality and customer satisfaction.
- Here my daily activities consist of creating a test plan according to the requirements, ensure that overall test quality and progress on track covering Android, iOS, frontend and Server testing. I also work on automation projects using Postmen and Selenium WebDriver with Python, that helped reduce testing time by 50%. Our team follows CI/CD processed to streamline software development, ensuring rabid and efficient delivery.
- Prior to Enel I completed a full stack web development bootcamp at UC Berkeley extension.
- Before the coding bootcamp I was a quality assurance analyst at Meta, working on executing functional and performance testing, along with an app stability. I created over 2000 and executed over 20000 test cases, filed over 1000 defects with 50% of high priority.
- Before quality analyst position I was a support technician at Meta where I improved the efficiency of the overall checkout process by reducing troubleshooting time and suggesting automation. Within 3 months I was promoted to a quality assurance analyst at Meta.
- My unconventional path to an engineering role showcases my ability to think outside the box and adapt quickly to new challenges. I believe that makes me a perfect candidate for this role.
- At TikTok, I would love to learn the processes at a deeper level and become a subject matter expert, contributing significantly to the company’s success and innovation in the e-commerce space.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

How do you know that you are testing the right thing? Or how do you know that your testing is going well?

A

Acceptance criteria, common knowledge of technical products, domain specific knowledge, always consult product people

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Tell me about your experience without TPM

A

without Technical Product Manager.
Project manager makes sure everything on time
Product manager knows everything about the product.
- 2 dashboards, only data analytic
- analyze and determine functionality, collaborating with stakeholders
- develop clear migration goals, detailed test strategy and plan, functional data migration and performance test cases.
- dashboards launched seamlessly, demonstrated my ability to take ownership of projects and collaborate effectively

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ho do you deal with Unexpected Changes in the requirements.

A
  • B2C mobile app
  • sudden shift in the user interface design
  • reach out to developers team and stakeholders to understand the changes
  • quick impact analysis
  • modified test plan with new requirements and adjuster testing priorities
  • regression test to ensure existing functionality
  • collaborated with the team with feedback on potential areas for consern
  • compehensive documentation
  • all of it helped avoid disruptions and mitigate risk to deliver product to customers
  • team recognized proactive approach
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

When you needed to stop the release.

A
  • incorrect aggregated data in the dashboard supporting mobile app(Honda)
  • disconnection from 2 systems leading to inflated data
  • halted the release after initiating a meeting with stakeholders including manager and release coordinator
  • recommended postponing the release by one day to address the issue. Despite the initial promise to maintain customer trust and satisfaction
  • insisted on creating and running thorough integration test to avoid this in the future
  • we delivered bug free product ensuring long rearm success in our partnership
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tell me about project that you did from the beginning to an end

A
  • meta with device glitchines
  • filed an issue and discussed with engineers but not enough logs for a fix
  • top manager encountered the same issue and it became critical
  • proposed a test strategy and plan to my manager
  • asked to give me 2 new hires and divided the strategy in 2 parts: searching for existing issues with specific keywords and executing specific test cases
  • Established company’s wide chat
  • within a few weeks we gathered about logs for developers to fix issue
  • headset tracking was improved by 10% and test cases are still executed by regression team
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tell me about the time you did something wrong and how you fixed it.

A
  • mistakes are learning opportunities
  • test cases for critical feature for state by state taxes calculations
  • due to miscommunication in our team, I misunderstood the priority of the test cases for validating tax calculations for states with no sales tax
  • co-worker discovered at a later stage when testing states tax in NH
  • I admitted my mistake to my team and stakeholders
  • prioritized the missing test cases
  • communicated clearly to my team about oversight and collaborated to re-test
  • to prevent similar problems I proposed implementing peer reviews and regular cross-checks
  • I approach the experience as a learning opportunity and committed to be more detail oriented and
  • we got back on track and release was not affected
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

unique technical issue that you solved:

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the negative feedback that I’ve got:

A
  • presenting test plan infont of my peers and stakeholders
  • shy and would not present my work in a full light
  • manager came up and gave a few tips on structuring key points
  • I learned a few breaching techniques that would help with anxiety
  • I understand the stress of the new environment and ability to cope with the stress
  • I searched for resources online and sought guidance from peers who excelled in public speaking
  • I was able to improve significantly within a few months
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Where do you see yourself in a 5 years:

A

Subject matter expert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

If you had a conflict with one of your teammates, how did you resolve it?

A
  • Onboarding junior hire
  • unintentionally overstepped boundaries by answering questions directed to her during meetings
  • She started increasing the distance from me I took a moment to reflect
  • My task was to address the conflict and foster positive working relationship
  • I scheduled one-on-one meeting with her to discuss it openly
  • I expressed my admiration for her progress and acknowledged her perspective and said that I would take a step back unless she explicitly asked for my assistance
  • as a result we were able resolve a conflict and rebuild a positive working relationship
  • my teammate felt empowered to reach out for assistance when needed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What’s your biggest weakness?

A

Situation:
- Since I am not a native speaker of the language, I am mostly very soft spoken. And sometimes people take that as vulnerability. But when necessary I can be very assertive and precise.
- Recognizing this as a weakness, my task has been to overcome the misconception that my soft-spoken demeanor equates to a lack of assertiveness or confidence. My goal is to ensure that my communication style accurately reflects my abilities and capabilities.
- I began by conducting a self-assessment of my communication style and how it may be perceived by others.
- I started doing more research on assertive speaking. This involved learning strategies for speaking assertively, expressing my opinions and ideas with conviction, and advocating for myself and others when needed.
- I engaged in regular practice sessions and role-playing exercises to refine my assertiveness skills in simulated scenarios.
- I actively sought feedback from colleagues, mentors, and supervisors on my communication style and areas for improvement.
- As a result, I have been able to effectively advocate for myself and others, contribute more meaningfully to discussions and decision-making processes, and build stronger relationships based on mutual respect and trust.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Tell me about your strengths give an example:

A
  • I love starting new projects, onboarding is much faster because I love organizing everything beforehand
  • testing a mobile app for B2C, we had very limited time to run a first regression test
  • prior to starting I did thorough research and gathered all necessary material with project requirements and tools, documented everything in details
  • developed a structured onboarding plan and milestones for each team member. Setting up accounts, accessing relevant tools and scheduling training as needed
  • we completed onboarding within one day and were able to complete a regression test within 3 days within designated time. Usually it takes at least a week.
  • strong communication
  • at Meta with the glitchi issue, with critical priority
  • I assessed the situation, gathered necessary information, created a group chat with necessary stake holders, created daily standups and clearly explained the problem
  • We found the solution to the problem and the bug was fixed successfully, and I was able to take leadership initiative on the project and was praised by my manager.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

If there was a conflict with the team, how would you resolve it?

A
  • migration of 2 dashboards
  • conflict regarding the timeline and approach. faster migration and potential risks with rushing the process
  • my task was to resolve a conflict and find a solution for a timely migration
  • Listened to the concerns and facilitated an open and constructive discussion to find common ground
  • with input from all team members I was able to create a test plan that would have an extra day of exploratory testing and have daily stand-ups and regular check-ins
  • migration was successful with minimum down time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is the tech perspective to improve the e-commerce product

A

Follow up questions:
- Are there any specific challenges or limitations in the existing infrastructure?

  • Depends on the department - keep up, it’s always evolving -
  • Customer experience - latest technologies.
  • Seamless process for UI and UX
  • How do you list/search products better.
  • return/exchange easy

CDLS - structure within the scope of
1. Describe my role in cdls - define, design, develop, deploy
2. Shift left approach - we are involved as early as possible. I need to be involved in every stage and make the design everything testable. - Design stage: Adding test case ID fo, to recommend to be restful api’s(certain set of guidelines);
- Develop involved in the sprints, testing, advocating unit test to develop by engineers, increasing test cases while it’s being developed. Make sure that we are within the scope.
- Deploy - leveraging test cases and running them at different stages, smoke after each release. We leverage use of unit test cases when engineers want to release something. Find early bugs and fix as early as possible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

How would you go about testing e-commerce flow for TikTok: customer want to purchase

A

Follow up questions:
- Do you want me to focus on a specific feature or just the flow on general:

  1. Decision what feature to test depends on the requirements, surec for truth
  2. I will start by defining a test plan based on the requirements, everything about test strategy.
  3. Decide the scope, define the timeline.
  4. Who are the stockholders?
  5. I would divide test cases in 4 parts: consumer side, creator side, seller side and SaaS backend side.
  6. Briefly describe test cases: functional and non-functional.
    For functional:
    - regression
    - smoke
    - end-to-end
    non-functional:
    - performance
    - reliability
    - security
    - Usability and accessibility
  7. Deliverables, risk mitigation - what happens if I can’t complete in time,
  8. the environment that needs to be
  9. test devices available
17
Q

how/what steps to test the quality of a micro service

A

Follow up questions:
- Can you provide more details about the functionality and scope of the microservice?
- Are there any dependencies or integrations with other microservices or external systems?

Confirm that you understand the micro service - I assume that it has multiple microservices with other microservices and you are asking how to test the specific questions what is this micro service, do I need to test it with interatctions with other microservices.

  • how fast it is?
  • how big and accurate is the response body
  • how well it performs under stress

How - API:
- how it will be used
- how it will interact with dependencies
- understand the API documentation
- understand different service codes
- define test cases based on the documentation and requirements
- incorporate with CI/CD pipelines
- execute the tests in different stages (unit, integration, component, contract, end-to-end
- report

18
Q

how integration testing is being done

A
  1. Identify integration points
  2. Develop test scenarios
  3. Prepare test data
  4. Execute integration tests
  5. verify data integrity
19
Q

how to narrow the cause of a bug for example in a API test.

A
  • I review the test case and the API request/response involved to understand the context of the bug.
  • I execute the test again to reproduce the issue consistently.
  • When there is a failure - client side or server side. To know what side are the codes.

If it’s a client side - make sure that all elements of request are correct:
- I examine the request parameters, headers, and payload to ensure they are correctly formatted and aligned with the API documentation.
- I also verify the endpoint URL and HTTP method to confirm they match the expected values
If the request appears correct, I focus on analyzing the response received from the API. I check for anomalies such as unexpected status codes, error messages, or missing data. Inspecting the response payload and comparing it against the expected outcome helps pinpoint any discrepancies.

Server side issue :
- from the error code I understand. In addition I would look at the server side logs, and exceptions
Discuss network issues, looking at the test case - the data is correct,
In some cases, the issue may stem from environmental factors such as network latency, server downtime, or data inconsistencies. To address this, I validate the test execution environment and ensure it is stable and consistent.
Collaboration with developers and other stakeholders is crucial during the debugging process. I document my findings and communicate them effectively, providing relevant context and evidence to facilitate a swift resolution.

You can always export the API call with all of the parameters, import in postman.

500 internal error - what am I gonna do? Go and check the logs, analyze the error, make issues in the db.
400 bad request - request has an issues - go into logs
Narrow down- try different requests, if the error come up for. Try different filters - category has a special character

20
Q

How to automate the API test execution:

A

Follow up question:
- Are there any existing test suites or test cases I should be aware of?
- What level is coverage and granularity is expected from it?

  1. Create a Postman Collection:
  2. Write Test Scripts:
  3. Set Environment Variables:
  4. Configure Environment:
  5. Integration with Continuous Integration (CI) Pipelines
  6. Reporting and Analysis
21
Q

How contract testing is being done

A

Contract testing is a method used to verify interactions between microservices or components in a distributed system. It ensures that each service understands the contracts it must adhere to when communicating with other services

22
Q

what is component testing

A

Component testing is a way to check if individual parts, or components, of a software application work correctly on their own.

23
Q

Tools for performance tests

A
  • Apache Jmeter for web applications and API
  • postman for API

And I would be happy to learn the tools used at TikTok

24
Q

How to implement mocking test data

A
  1. Identify dependencies- which mirroservices needs to be mocked
  2. Define mock responses
  3. Choose mocking frameworks: Python- pytest-mock
    JS - testdouble.js
  4. Implement mocks
  5. Integrate with tests
25
Q

How do you create an API bug

A
  • Title/Summary
  • Description: A detailed description of the problem, including:
    The API endpoint affected by the bug.
  • Steps to reproduce the issue, including endpoint, headers, body, logs, any error messages or status codes returned by the API, and authentication tokens.
  • Actual vs. Expected Results
  • Environment Details
  • Client environment details (e.g., browser, operating system, device).
  • Attachments
  • Priority and Severity
  • Assignee and Due Date
  • Additional Information
26
Q

What is ApI throttling

A

also known as limiting, API throttling restricts the number of requests a client can make within a specified time period

27
Q

Minimum number of swaps required to sort the array - this was asked to me

You can find the solution to this in Omkar’s material for cyclic sort

A

def min_swaps(arr):
n = len(arr)
swaps = 0

# Create a list of tuples (value, index)
arr_pos = [*enumerate(arr)]

# Sort the list based on the array values
arr_pos.sort(key=lambda x: x[1])

# Initialize visited to mark visited elements
visited = {i: False for i in range(n)}

for i in range(n):
    if visited[i] or arr_pos[i][0] == i:
        continue
    
    cycle_size = 0
    j = i
    
    while not visited[j]:
        visited[j] = True
        j = arr_pos[j][0]
        cycle_size += 1
    
    if cycle_size > 0:
        swaps += (cycle_size - 1)

return swaps

Example usage:
arr = [4, 3, 2, 1]
print(“Minimum number of swaps required:”, min_swaps(arr))

28
Q

What are the headers, endpoints, bearer token, keys for authorization.

A
  • HTTP headers are additional pieces of information sent alongside a request or response.
  • Endpoints are URLs that clients use to access specific resources or functionality provided by the API.
  • A bearer token is a type of access token used for authentication and authorization in OAuth 2.0 and similar authentication frameworks.
    Keys for authorization refer to various types of credentials or tokens used to authenticate clients and authorize their access to protected resources.
29
Q

SOAP base protocol- difference between rest

A

SOAP (Simple Object Access Protocol) and REST (Representational State Transfer) are both protocols used for designing and implementing web services, but they have significant differences in their architecture, communication style, and usage.
SOAP is often used in enterprise environments where strict message validation, security, and reliability are paramount, while REST is favored for its simplicity, flexibility, and scalability in web and mobile applications.

30
Q

How to test an API

A
  • manual test with the postman, performance with jMeter.
31
Q

Most common status codes and their reason

A
  • 400 - bad request - the server could not process the request due to malformed syntax, invalid parameters, or missing required parameters.
  • 401 - “Unauthorized” error, the client making the request is not authenticated or does not have proper authorization to access the requested resource. Something wrong with authorization credentials
  • A 403- “Forbidden” error, the server understood the request, but refuses to authorize it. Insufficient permissions or request rate limiting
  • 404 - “Not Found” error, the server could not find the requested resource. Incorrect URL, temporary unavailable, access permissions
  • 500 - “Internal Server Error,” the server encountered an unexpected condition that prevented it from fulfilling the request. Code bugs or database errors
  • 501 - “Not Implemented” error, the server does not support the functionality required to fulfill the request. Missing or unsupported HTTP method or unsupported API endpoint