How do you grow from junior to senior software test engineer
Software test engineer grows from junior to senior learning the software programs necessary to do the job, gaining domain knowledge, and becoming proficient in the core skills.
I) The software programs
II) Domain knowledge
1) For some software products, software test engineer needs to gain domain knowledge.
2) The domain knowledge requires an understanding of the specific terminology and the core theory.
3) Domain knowledge adds a lot of value in communication:
with users outside the software development team, reviewing the software requirements document, reading and responding to emails, reviewing bug tickets, and communicating test results.
4) Examples of domain knowledge fields:
Accounting, Banking, Biology, Chemistry, Civil Engineering, Computer Science, Earth Science, Economics, Electrical Engineering, Finance, Fintech, Insurance, Investments, Law, Linguistics, Materials Science, Mathematics, Pensions, Physics, Science, Space Science
5) The software test engineer needs to have domain knowledge in only the software program’s domain.
III) Core skills
1) Become a software program expert user
2) Understand, follow, and create test cases from the software requirements document
3) Review the software requirements document to identify missing information
4) Perform test planning to summarize test combinations
5) Identify tests to skip to complete testing in a reasonable time window
6) Organize tests to check more than one test in fewer test steps
7) Write an accurate and comprehensive test plan
8) Setup input parameters and data files for a specific test
9) Generate comprehensive test results reports
10) Understand the software program’s help notes
11) Understand and follow the internal company’s communications such as emails and tickets
12) Identify low, medium, high, and critical priority software bugs
13) Write accurate bug description
14) Write correct and detailed steps to reproduce the bug
15) Create test cases from the ticket
16) Provide accurate estimates to complete a test project
17) Identify a subset of tests to execute for a testing project, regression testing, automation testing, and the software deployment testing
18) Understand software changes scope and related features to include in a test project
19) Quickly understand user reported complaint or proposal about software program and communicate to the rest of the team the highlights of the user’s message
20) Train less experienced users and provide user’s support
21) Complete a test project in the shortest amount of time and within the expected deadline
22) Proactively act to inform the software development team about issues that arise during testing (I gave several examples):
a) A computer is not working
b) Email is not working
c) Internet connection is down
d) Cannot connect to the company’s servers
e) The software program is not responding
f) The latest change is not ready to test
g) The major bug is holding the test project
h) The supervisor changed priorities
i) The test project is on-hold due to technical difficulties in the software development team or the company’s internal infrastructure changes
New software test engineer advice if not employed
1) Becoming an expert in the main software programs necessary to do the job.
2) For Microsoft Excel (or Google sheets) and Jira(free online cloud account), you do not need to become an absolute expert, but you will need to:
a) Understand the major features of the software program, how they fit together, and how they are related
b) Find minor software program’s features and see how they become part of the big picture
3) Pick a famous open-source software program (like Firefox, Apache OpenOffice, Bugzilla, Vscode, FileZilla, GIMP) and find its online bug list or Forum. Read Forum or bug list, go through a couple of bugs, take note bug description, and take note of the steps to reproduce a bug. The goal of this exercise is to train yourself to spot an issue and understand how to phrase the bug description.
4) Read and try to understand online help documentation for a software program. This exercise will teach you how to research on your own.
New software test engineer advice if employed
1) Become an expert in the software program you will test
2) Read and try to understand online help documentation for the software program
3) Find any training materials
4) Find specification documents and try to understand them
5) Find bugs/tickets about the software program to get a sense of tickets and bugs. Pay attention to each ticket description and steps to reproduce in a bug ticket
6) Create your test parameters project and try to figure out how to use the software program
7) Understand the major features of the software program, how they fit together, and how they are related
8) Find already closed tickets and research the tests performed, the test plan template used, and the test results report
9) Understand what you need to test in your test project for a specific ticket, bug, new changes, and checking existing functionality.
10) Try to get feedback from people on your software development team about your work:
a) Ticket/Bug description and ticket status change description
b) Tests to include and tests to skip in your test project
c) The scope of each parameter and user input you will need to check
d) The user input data scope you will need to check
f) Test Plan Review for correctness and completeness
11) The following skills you will learn on your own:
a) Writing detailed and correct steps to reproduce the bug
b) Understand the test scope (core and related functionality to check)
c) Organize tests to check more than one test in fewer test steps
d) Present your test results report or test summary results
e) Structure Test setup including parameters and test data
I will not include test automation knowledge in this article.