Testing Flashcards
What is the difference between black box and white box testing?
Internal system design is not considered in black box testing. Tests are based on requirements and functionality. White box testing (aka glass box) is based on knowledge of the internal logic of an application’s code. Internal software and code working should be known for this type of testing. Tests are based on coverage of code statements, branches, paths, conditions.
What is unit testing?
Testing of individual software components, modules, and methods. Typically done by the programmer and not by testers, as it requires detailed knowledge of the internal program design and code. May require developing test driver modules, stubs, or test harnesses.
What is integration testing?
Testing of integrated modules to verify combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network, etc. This type of testing is especially relevant to client/server and distributed systems.
What is functional testing?
This type of testing ignores the internal parts and focus on the output is as per requirement or not. Black-box type testing geared to functional requirements of an application.
What is system testing?
Entire system is tested as per the requirements. Black-box type testing that is based on overall requirements specifications, covers all combined parts of a system.
What is regression testing?
Testing the application as a whole after the modification in any module or functionality to ensure new modules do not break old modules. Difficult to cover all the system in regression testing so typically automation tools are used for these testing types.
What is the difference between performance, load, and stress testing?
Performance testing is used to check whether system meets performance requirements under normal conditions. Load testing is used to check system behavior under heavy loads, such as testing of a web site under a range of loads and incrementally ramping up requests to determine at what point the system’s response time degrades or fails. In stress testing, the system is stressed beyond its specifications typically in spikes to check how and when it fails.
What is acceptance testing?
Normally this type of testing is done to verify if system meets the customer specified requirements. User or customer do this testing to determine whether to accept application.
What is the difference between alpha testing and beta testing?
“Alpha testing is a type of acceptance testing; performed to identify all possible issues/bugs before releasing the product to everyday users or public. The focus of this testing is to simulate real users by using blackbox and whitebox techniques. The aim is to carry out the tasks that a typical user might perform. Alpha testing is carried out in a lab environment and usually the testers are internal employees of the organization. Beta Testing of a product is performed by ““real users”” of the software application in a ““real environment”” and can be considered as a form of external user acceptance testing. Beta version of the software is released to a limited number of end-users of the product to obtain feedback on the product quality. Beta testing reduces product failure risks and provides increased quality of the product through customer validation. It is the final test before shipping a product to the customers.”
What is usability testing?
User-friendliness check. Application flow is tested, Can new user understand the application easily, Proper help documented whenever user stuck at any point. Basically system navigation is checked in this testing.
List the annotations in JUnit 4.
BeforeClass, Before, Test, After, AfterClass, Ignore, Suite, RunWith
In what order are annotated methods executed?
BeforeClass –> Before –> Test –> After –> AfterClass
How many times are the Before and After methods executed?
Once for each method annotated as Test. Used for setup and teardown for each test case scenario.
Name some of the methods available in the Assert class.
assertArrayEquals, assertEquals, assertNotEquals, assertTrue, assertFalse, assertSame, assertNotSame, assertNull, assertNotNull, assertThat, fail
What is test-driven development (TDD)?
Test-driven development (TDD) is an evolutionary approach to development which combines test-first development. In TDD, you write a failing unit test before you write just enough production code to fulfill that test and then refactor.
What is behavior-driven development (BDD)?
Similar to TDD, behavior-driven development uses a test-first develop later approach. The approach starts by writing a failing acceptance test, typically in a plain text / business and domain readable file. Then, developers write a failing unit test in a programming language, known as a step implementation. Then, as in TDD, you write just enough production code to fulfill that test and then refactor.