Landing your first job can be tough sometimes, it really depends on the chemistry between you and the team interviewing you. The interview process can be long, depending on the recruiter, over the phone, and in person. It's incredibly important to educate yourself on these questions below to prevent being nervous or freezing up mid-interview.
Our basic training course covers the majority of these interview questions, so you're not just memorizing the question, but you have hands on experience and know the answers.
Note: Mobile devices are supported but because of device fragmentation.. you might experience bugs.
Planning, Design, Development Testing and release are the basic components of the SDLC.
Sometimes this is simplified into 4, where development and testing are merged into the same phase.
Ideally, all 6 are planned for:
Planning, Design, Development, Testing, Release, and Maintenance.
The software development life cycle is a process used to plan, design, develop, test, release and maintain software.
It starts with a simple idea, and over the SDLC process turns into a full application.
Scrum is the answer to solving planning for complex projects. It clarifies the product requirements and defines the scope.
Scum usually includes a backlog, doing and done column.
The product owner or scrum master will prioritize the backlog and help reduce any ambiguities for the task.
The team will pull these tasks out of the backlog and plan what is known as a sprint.
The ticket is moved into the "doing" column when it is being worked on.
The ticket is then moved into the "done" column once it has been completed.
You should stop what you're doing and write the bug down immediately. You may forget about the bug or skip some necessary steps if you decide to write it at a later time.
In the tech world, quality assurance is a process engineers use to to determine if the product that is being developed meets the planned requirements. The company ususally has employees (known as qa, testers, or quality assurance engineers) dedicated to testing quality of the project.
The Quality Assurance process is used to increase the quality of the product, and hopefully the customers' confidence as well. The process helps unroot design flaws, bugs, crashes, and overalll --- increase the users experience.
JSON, and XML.
PUT: puts a file or resource at a specific URI, and exactly at that URI. If there's already a file or resource at that URI, PUT replaces that file or resource. If there is no file or resource there, PUT creates one.
DELETE: requests inform the server to delete some type of data. Such as deleting a users profile.
Post: requests typically submit information to a server for processing. It may return the updated payload in the response.
GET makes a request to a server that does not contain any type of payload body. It is a request that"gets" variables or settings from a server.
Typically the response from the server is in Json format
iOS can terminate suspended apps without notice if it's running low on memory.
An app is considered to be in a suspended state when it's in the background but code is not being executed.
An app is considered to be in a background state when it is running in the background and executing code.
An app is considered to be in a non-running state when it has not been launched.
An app is in an inactive state when it is running in the foreground but not receiving events, such can occur when a call or text comes in on the device.
An application is in an active state when it is running in foreground and is receiving events.
There are 5:
True. Apps that are running in the background behave differently because there is a limitation of resources in iOS.
Yes. OS version 4 and up supports multitasking. Multitasking allow the apps to remain in background after launching while other apps/features of the device are used. Apps are in background until they are terminated.
Xcode has a built in iOS simulator in which you can select the type of device and OS version you want to test. Testing only on a simulator, however, is not recommended. The app needs to be tested on the actual device before releasing to production.
Xcode is the iOS version of an IDE (integrated development environment). It's used for creating Apple applications, managing workflow, testing, and submitting created applications into the Apple App store.
Almost every social networking application uses location services.
FaceBook: Uploading an image or video on Facebook will prompt you if you want to add your current location.
Tinder: the dating app, determines your matches based on the geo-proximity between you and the match.
iPoll: a survey site, sends your surveys based on your location to earn rewards.
GeoFences provide a bunch of information.
A GeoFence is a virtual 'fence' around latitude and longitude points on a map.
GeoFencing is a feature within the mobile device that can track the users location. It uses the GPS and WIFI to determine the devices current location.
GeoFence 'fences' can be used in various different ways, such as monitoring a user, knowing where they live and where they like to shop.
When a new issue or user story is created it will follow this flow.
Note: Some companies may add an additional column after "in progress" labeled as "In QA".
Jira is a project management tool that was developed by Atlassian. It is one of the worlds most popular project management tools.
It is used to track project requirements, issues, velocity and more.
The tester will test the appearance of the application by reviewing the design, colors, layout and clicking links and buttons.
GUI testing is required to analyze the look and feel of the application. This is how clients and customers will interact it. It's purpose is to validate that all functionality is working as expected.
You will hear it called "gooey" or each letter announced as G.U.I.
This stands for graphical user interface.
In GUI Testing tester tests the application front end design to see whether its meets the client requirements or not.
A Smoke Test is used to determine if all the basic components of an application are in good working order. This is typically done on new builds.
This testing type is used to determine if a new application version is in good enough shape for more in-depth testing.
Functional testing is a type of manual test used to determine whether or not an application's features perform as expected in the requirements.
This testing type tests how a user would install/uninstall and/or upgrade software. This is usually used for more robust desktop applications.
This is a manual testing technique which does not require documentation and planning. While ad-hoc testing tries to negatively test an application, exploratory testing is a positive testing technique.
This testing technique involves testing a finished application as if it's being used by a real-life user. An example of this would be creating a Facebook account and using the all the features that a real life user might use to verify it they function as expected.
Load Testing is a technique that maximizes system resources of the server.
Stress testing is used to determine how much stress a system or a product can handle before it breaks. For example, creating hundreds of users per second and scaling up the user creation until the system cannot keep up.
This type of functional test is usually done for applications with specific performance requirements.
Accessibility testing is a testing technique used to determine if an application or product could be used by people with disabilities such as deafness or blindness. This is common testing when automating mobile devices.
Assertion testing is used to verify whether or not set conditions reflect the requirements of the product. .
Automated testing is performed using various automation testing tools such as JMeter and Selenium.
Beta testing is testing that is done typically by end-users on an application right before it is commercially released.
Grey box testing is testing using a combination of white and black box techniques. It requires some knowledge of the application's inner workings, but not as much as would be necessary in white box testing. This can be performed by a team of testers or developers.
No, ideally the majority of critical show stopping bugs are found and fixed before releasing. However, bugs are everywhere and can take a long time to find. Most applications ship with low priority bugs and have them fixed later.
You should try to find as many as you can, it's best to not have any critical bugs in production that effect the user experience.
The two types of testing that yields a high amount of bugs is "Ad-hoc" and "Negative" testing.
Functional testing is done by both developers and testers. Testers should have more functional testing of the application. It is a type of black box testing. It is to specifically test a feature that has been created.
Unit testing is typically done by a developer or automation engineer. They write automated test cases for functionality that they are writing. This requires detailed knowledge of the application, design and code.
Developers usually heavily follow this in test driven development.
This type of testing is accomplished with knowledge of internal design and source code.
Tests are created after the source code has been reviewed. The tests are written to give "code coverage" to the application.
Note: This is not typically done by a manual tester.
This type of testing is accomplished without previous knowledge of internal design or source code.
Test are completely based off of business requirements and functionality.
Positive testing validates that the functionality actually works.
Negative testing is an attempt to break the functionality in unexpected ways.
SDLC is a process used by the entire project team, SDLC typically has 6 phases, planning, design, development, testing, deployment, and maintenance.
STLC is the software testing life cycle. This life cycle starts at the same time as the SDLC, however, it focuses on the the quality of the application and validating that the product requirements are being achieved.
A bug is typically unexpected behavior of functionality. We determine what is the expected behavior by requirements, technical specifications, standup meetings, or how other similar applications behave.
Device fragmentation is mobile QA job security :)
It's a major headache for developers as the mobile devices come in all shapes and sizes, large variations of operating system, different performance, and high quality or low quality screen resolutions.
Building an application could work perfectly on a single device, such as an iPhone 6, or Note 4, but be completely broken on the iPad Mini or Nexus 7.
One major example of device fragmentation is the fact that android has 24,000+ unique devices. Testing all variations of android would be impossible.
XCode is the best too for debugging iOS mobile applications.
Xcode provides the same features as Android Studio such as:
Ideally the business analyst will write use cases before developers start coding. However, who writes isn't as important as what is actually in them.
Quality Assurance Engineers may write use cases to use as test cases. This is not ideal since use cases should be written before developers start coding.
Quality is meeting expectations, such as the customers, or your managers. It meets product requirements is reasonably bug free. This includes no showstoppers.
A use case is a description of a set of interactions between a system and one or more actors (where 'actor' can be people, or other system: for example, people would be the online shopper (QA) and PayPay be the system).
The use case document generally will include this kind of information:
1. use case title
4. preconditions (steps that must be executed before running the use case)
5. alternate paths or extensions (negative testing, edge cases, different testing paths)
6. post conditions (expected results, what the system should have done by the end of the step)
Quality Engineers usually write test cases based off of use cases.
Test cases are a set of instructions to test the functionality of the system in order to determine if it meets the requirements.
These steps are usually written in sequential order based upon requirements to help testers evaluate the quality.
A test plan documents the strategy that will be used to verify and ensure that a product or system meets its design specifications and other requirements. A test plan is usually prepared by or with significant input from test engineers.