Author Archives: anselmo
Author Archives: anselmo
Manual testing is a stepping stone of a QA-Tester. Among the objectives of the software test are verifying that the functionalities of a product meet specifications and requirements, as well as preventing failures so that it reaches the level of Expected Quality and actually do what it proposes to do. It requires knowledge of testing terminology and industry practices. This article introduces you to manual testing interview questions.
About the question: This question requires basic understanding of testing techniques
Answer: A software review is a broad definition of a process that aims to check a software product to give comments or approval.
A formal technical review is a software review in which a team does a technical analysis of the software, checking aspects like:
To have more information about formal technical review, check a presentation from how Kodak implemented it.
About the question: This question requires knowledge of basic software terminology.
Answer: Cyclomatic complexity is a software metric used to measure the complexity of a given module (a class, a method, a function, etc.) from counting the number of Independent paths that it can be executed until its end. An independent path is one that presents at least one new condition (possibility of flow deviation) or a new set of commands to execute.
What is the connection with manual test? The result of cyclomatic complexity indicates how many (at least) tests needed to be performed to check for all possible flows that the code can take to ensure complete testing coverage.
It is obtained by the following formula
Cyclomatic complexity = E – N +2*P
For more information, check the white box test website.
Answer: To solve this question one recommended approach would be to use Boundary Value analysis and equivalence partitioning strategies.
It would be very desirable for the candidate to explain both:
Equivalence partitioning is about finding a finite, minimum, number of test cases that cover the requirements. This means dividing the cases into groups that should yield the same rule.
In the above question, we could say that:
– the rule of 12% is yield for the values between 1 to 1999 inclusive.
– the rule of 10% is yield for values from 2000 (inclusive) and above.
Then you have an invalid group of values: 0 (no one can get a loan of 0, right?) to infinite negative (In this case you would be lending money to the bank) which normally is not called a loan in the industry.
So you have valid groups:
Each of these sets is called an Equivalence Class.
Since problems tend to occur with values that are at the boundary of these classes, we use the next technique that is called Boundary value analysis.
It advocates for the tests to be done for cases just below the extreme edges and also just above them.
These would be recommended test cases if this strategy is followed:
0 – 1 – 2
1998 – 1999 – 2000 – 2001
The valid input value for the given condition is:
Hence if the input value is below 18 years then it is an invalid input. Also if the input is 80 or more then it is invalid input. Therefore, three equivalence partition are:
[0…17|18…79|80…120], respectively invalid, valid, invalid.
Answer: There are two decision nodes (in blue) and three possible outcomes (in green). To find out branch coverage we need the minimum number of paths that covers all paths. A minimum of 3 paths covers all edge (1 -> 2 -> 3 -> 4), (1 -> 2 -> 5 -> 6 -> 4), (1 -> 2 -> 5 -> 7 -> 4). Hence branch coverage is 3.
Check this quick video for more information:
About this question: This question is aimed at checking the candidate’s understanding of types of testing.
Answer: Baseline is the formal document used as the baseline of a test plan. It is the document or set of documents from which test cases are designed. Such a testing is called baseline testing. It is used for non-functional testing.
Answer: The purpose of internationalization testing is to assert that the software presents the user with a visual and functional application, in the various languages for which it has been localized.
The localization testing is the process of testing the software using the local setting, i.e., taking into account the set of cultural conventions of a particular market, like date format and currency.
For more information:
Answer: A bug/defect can have the following stages:
Answer: A decision table testing is a black box testing technique to find test scenarios involving complex business logic. When different combinations of input result in different outputs, a decision table could be used. For each possible combination of inputs, the expected output is tabulated and then tested.
For example, consider a customer withdrawing cash from an ATM. Cash can be withdrawn if the customer gives correct pin and there is sufficient balance in customer’s account.
A decision tree is shown below:
|Is Pin correct?||True||True||False||False|
|Has sufficient cash balance?||True||False||False||False|
|Action (expected output)||Yes||No||No||No|
Answer: Binary portability testing aims to test an executable software across different platforms and environments like Windows, Linux, MacOS etc.
Answer: Quality Control is the set of activities to ensure a required quality of the product is achieved. It is the process of finding bugs and rectifying it. The purpose of Quality Assurance is to implement processes to achieve better quality in the product. Quality Assurance aims at improving the processes to meet the requirements.
Check this great page to learn more: Quality Assurance Is Not Quality Control.
Answer: Defect density is the number of confirmed bugs in an application divided by the size of the software:
Defect density = Number of defects / Size
Only confirmed defects are considered for this metric. The size of the software is usually measured by lines of code or functions points.
To complement this question, you can take a look at this great article about the defect of defect density.
About the question: This question tests user’s knowledge of manual and automated testing and experience with them.
Answer: I would select manual test for:
I would select automated tested for:
Answer: Impact analysis is the process to analyze the impact of changes introduced in the software, estimating potential consequences and risks that it could cause.
Answer: It is an incremental software development model that aims at the development of the project in a very short time. In this model, the modules are developed in parallel as prototypes. They are integrated to make the complete product. There is usually some beforehand planning included in the process.
Answer: Software review is a static testing technique to improve software quality early in the development process. A review team conducts the review process and a specific task is given to each member.
The role of a recorder is to record each defect found and include recommendations given in the meeting.
Answer: A test case tests a single condition of the application. It has a predefined set of steps to execute, describing “how” to test. They serve as a basis for testers to run the tests manually, but they can also be automated, and should cover as many situations as possible.
The test scenario is a document which describes situations to help the tester at the time of executing the tests. The test scenario describes “what” should be tested.
A Test Plan is a document responsible for presenting the planning for the execution of the tests of the software being developed, including the approach, features, and schedule of testing activities.
Answer: Test Scripts are computer readable statements that automate the execution of one or more (or parts of) Test Cases. Test Scripts can be created or generated automatically using test automation tools, programmed through a programming language or a combination of logging, generation, and programming.
Answer: Independent testers have a neutral approach and are more likely to be unbiased. They can observe things from a perspective that a developer, or a project lead or anyone else involved with coding or analysis part of the development process might miss.
Answer: A Latent defect is an existing defect that does not cause any failure as the exact set of conditions has never been met.
MySQL is a widely used relational database. According to db-engines.com, it ranks as second in usage, only losing to Oracle Database, and not by far. That’s why we prepare the following list of MySQL interview questions for you to use in your next interview.
So, in this article, you will see from basic to more advanced questions related to MySQL.
Answer: The most basic way would be to use the function “ifnull” in your select statement, like the example below:
SELECT ifnull(firstname,’Anonymous’) AS ‘Name’ FROM Person
Another more flexible option is the use of the COALESCE function, which accepts two or more parameters and returns the first non-null value:
SELECT coalesce(firstname,’Anonymous’) AS ‘Name’ FROM Person
Answer: You would most likely use the LIMIT keyword in your SELECT statement, see the example:
SELECT firstName FROM person LIMIT 100 ;
To have further information, check Limit Optimization on dev.mysql.com.
Answer: You execute this query:
The parenthesis is optional.
To have further information, check Date and Time Functions on dev.mysql.com.
Answer: There is a specific function for this purpose. It is the COUNT function, which you would use in your SQL statement like the example below:
SELECT COUNT(*) FROM TableName;
To have further information, check Counting rows on dev.mysql.com.
Answer: This function returns the number of items found in a particular command.
To have further information, check Counting rows on dev.mysql.com.
Answer: JOINs are instructions to combine data from different sets of data. The following are the different types of join expressions available in MySQL:
SELECT * FROM person p INNER JOIN address a ON p.id = a.person_id
SELECT * FROM person p LEFT JOIN address a ON p.id = a.person_id
SELECT * FROM person p RIGHT JOIN address a ON p.id = a.person_id
Answer: A primary key is used to identify an entity. It allows the object to be uniquely identified. For this, when a field is marked as PK, the database will not allow duplicate values to be stored.
A foreign key, on the other hand, is used to identify an object that is being used or referenced in another table. This is the principle of a relational database. A foreign key can only be foreign if it is primary in another table. The database manages this relationship, including preventing a primary key from being changed or removed if it is being referenced by a foreign key.
Answer: Stored procedures are SQL statements that can be written to the database and called anytime.
They are useful when:
Answer: Views are virtual tables, or even better, stored queries in the database that will produce a result. In a view we can combine data from one or more tables, enter data or do other DML operations. A view does not store the data itself, it always depends on the query that is stored to generate its results.
CREATE VIEW example as
SELECT * FROM websites WHERE size=’big’
Check dev.mysql.com page about creating views to learn more.
Answer: Basically no new record can be stored in this table. What happens is that the auto increment stops working, or incrementing, which means any further inserts will produce an error, since the key has been used already.
Check dev.mysql.com page about AUTO_INCREMENT.
Answer: You can execute the command:
SELECT VERSION() ;
In this case, the parenthesis is required.
Learn more about select function and other information functions on dev.mysql.com.
Answer: There are eight data type for string formats:
|Value||Char (4)||Storage Required||VarChar(4)||Storage Required|
|”||‘ ‘||4 bytes||”||1 bytes|
|‘ab’||‘ab ‘||4 bytes||‘ab’||3 bytes|
|‘abcd’||‘abccd’||4 bytes||‘abcd’||5 bytes|
|‘abcdefg’||‘abccd’||4 bytes||‘abcd’||5 bytes|
Answer: Index make it easier to find content, so MySQL can find content easier than searching it page by page. It always depends on whether the indexes are well defined.
Answer: You should configure indexes for the fields that you use in WHERE. You should first find the fields that are taking time and resources from the server and then create the index.
Answer: The quick answer is that the queries must be identical for the cache to store properly and then give a hit for already cached queries. Although this is a simple answer, it is unfortunately not completely true, because even in this case the cache might give a “miss”:
To have a complete list of cases where the cache will not work, check the query cache operation, from dev.mysql.com.
Answer: Triggers are SQL commands that can be specified to be run automatically when some event is issued. There are 6 opportunities for you to trigger your code automatically:
Learn more about the Trigger syntax on dev.mysql.com
Answer: CREATE USER ‘newuser’@’localhost’ IDENTIFIED BY ‘password’;
Answer: A GRANT statement would be the way to go.
GRANT ALL PRIVILEGES ON database.table TO ‘newuser’@’localhost’;
See more about the GRANT syntax on dev.mysql.com.
About the question: I would ask this question to assess how much is the candidate aware of the developments related to MySQL.
Answer: MariaDB is a fork of the MySQL project made by the original developers once Oracle acquired MySQL. They are very much compatible with each other.
Check what is MariaDB to know more on mariadb.com.
Answer: Both InnoDB and MyISAM are storage engines for MySQL.
The main difference lies in the fact that MyISAM does not provide support for transactions nor foreign keys. The question is why would one choose to use MyISAM?
If your needs are much more about reading than write, that it is a good option because it has a better performance. Especially updates and deletes are problematic in terms of performance and fragmentation of the rows. Use OPTIMIZE TABLE command to defragment the rows.
Since version 5.5, the default engine in MySQL is InnoDB. In most normal use cases it has a better performance than MyISAM and provides the more important features, special support for ACID-compliant transactions and foreign keys.
That’s why, if you want to use MyISAM engine in any specific table, it is necessary to set the ENGINE, as shown in the below example:
CREATE TABLE mylog (i INT) ENGINE = MYISAM;