Software Engineering Online Test
About the test
The Software Engineering online test assesses knowledge of software development and engineering concepts, principles, and best practices through a series of multiple-choice and fill-in-the-blank questions.
The assessment includes work-sample tasks such as:
- Creating RESTful APIs.
- Using OOP principles and OOP design patterns to write reusable code.
- Selecting an appropriate solution and software architecture to satisfy specific business needs.
A good software engineer needs a solid understanding of how software systems work together, how to optimize them, and how to design systems to avoid potential issues.
Sample public questions
Your team has started to write software for managing a vehicle storehouse using a programming language that supports OOP. This is the class hierarchy you plan to use:
class Vehicle class Car inherits Vehicle class Bicycle inherits Vehicle class MountainBike inherits Bicycle class Downhill inherits MountainBike
Objects of which type can be assigned to a variable of type Bicycle?
You are working on a solution for building a web server. According to an agreement, the web server should offer 99.99% availability.
Which components will help satisfy the agreement?
You are searching for a web service that could be used to get the expected search volume of keywords for an online advertising platform. Before choosing the web service, your team wants to split web services into different categories.
Some web services lack proper documentation. Which documentation looks like it's describing RESTful APIs and which looks like it's describing SOAP-based web services?
|Looks like?||Documentation that describes getting the search volume of a keyword|
During a discussion about architecture for a new web app the following sketchup was made:
The authors of the sketchup forgot to write the descriptions for three components marked with red numbers.
Select the best choice, regarding the context, for the description that should define each component.
You are working on multilayer architecture for a new website for the largest news portal in your area. Your colleague has already prepared layers.
Your task is to choose the best option for each layer from the available technologies and programming languages your team knows.
|Layer||Available Technology or
|Business Logic Layer||___|
|Data Access Layer||___|
In a language that supports the OOP paradigm, we have the following code that serializes the content of a shopping cart to JSON format:
class ShoppingCart private content : Dictionary<Int, String> public function serialize() : String return new JsonSerializer().serialize(content.clone()) end function end class class JsonSerializer public function serialize(value : Dictionary<Int, String>) : String // Code that serializes dictionary to JSON format and returns it as string end function end class
A client wants to allow loosely coupled plugins to be able to serialize the shopping cart content to their own formats (e.g., XML). Select lines of code that, together, would extend the code above to allow this.
The function below is used to search for an element in a binary tree that contains linked nodes.
function treeContains(treeNode : Node, element : int) : bool if (treeNode == NULL) return false else if (treeNode.getValue() == element) return true else left : bool = treeContains(treeNode.getLeft(), element) right : bool = treeContains(treeNode.getRight(), element) return left || right end if end function
What can be said about the treeContains function?
A word processor uses the following code for defining font format:
class FontFormat inherits Object private fontName : String private fontSize : Int public constructor(name : String, size : Int) fontName = name fontSize = size end constructor public function getFontName() : String return fontName end function public function getFontSize() : Int return fontSize end function override public function equals(obj : Object) : Bool if (!(obj instanceof FontFormat)) return false end if FontFormat f = (FontFormat)obj return f.getFontName() == fontName && f.getFontSize() == fontSize end function override public function getHashCode() : Int return fontName.getHashCode() ^ fontSize.getHashCode() end function end class
Analysis shows that even the largest documents use fewer than a hundred different combinations of font name and size. The same analysis shows that the application sometimes uses thousands of FontFormat objects, most of which share the same font name and size.
(Fill in the blank with the software design pattern that solves the issue.)
The ____________ software design pattern can be used to minimize the memory footprint by sharing FontFormat objects.
For companies: premium questions
Buy TestDome to access premium questions that can't be practiced.
Get money back if you find any premium question answered online.
21 more premium Software Engineering questions
Sorted Array Search, Panel System, Engine, UML Diagrams, Welcome Screen, Advertising Platform, Mock Configuration, Sort Comprehension, Tree Traversal, Do Recursive, Cloud Solution, Collaborative Software, Spreadsheet App, Blame, Service Discovery, Car Persistence, Web Protocol, HTTP Post, Candidates REST API, REST Communications, Cookies.
Skills and topics tested
- Data Structures & Algorithms
- Algorithmic Thinking
- Binary Search
- OOP & Design Patterns
- Behavioral Patterns
- Creational Patterns
- Design Patterns
- Method Overriding
- Inversion of Control
- Tree Traversal
- Solution & Software Architecture
- Cloud Computing
- Solution Architecture
- Software Architecture
- Software Architecture Patterns
- Collaborative Environment
- REST API & HTTP
- Network Security
For job roles
- Back-End Developer
- Full-Stack Developer
- Mobile Developer
- Software Developer
- Web Developer
- Web Front-End Developer
Sample candidate report
What others say
Simple, straight-forward technical testing
TestDome is simple, provides a reasonable (though not extensive) battery of tests to choose from, and doesn't take the candidate an inordinate amount of time. It also simulates working pressure with the time limits.
Jan Opperman, Grindrod Bank
Solve all your skill testing needs
150+ Pre-made tests
From web development and database administration to project management and customer support. See all pre-made tests.
Mix questions for different skills or even custom questions in one test. See an example.
How TestDome works
Choose a pre-made test
or create a custom test
Invite candidates via
email, URL, or your ATS
a test remotely
Sort candidates and
get individual reports