Software Skills Flashcards

1
Q

What is software testing?

A
  • Process of executing a program or application with the intent of find as many defects as possible;
  • To verify whether all specified requirements have been fulfilled
  • To validate if software product works as the users & other customers expect
  • To prevent defects by finding defects on early SDLC stages by evaluate work products such as requirements, design, & code
    • To find defects in requirements prevent defects in design
    • To find defects in design to prevent defects in code
    • Identifying defects prior to a release prevent users from facing failures after release
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is software requirements specification (SRS)?

A
  • It’s a document which acts as a contract between the customer & the supplier
  • SRS contains all the requirement of the end user regarding that application. SRS can be used as a communication between the user & a supplier
  • The developer & tester prepare & examine the application according to the SRS
  • SRS is prepared by Business Analyst by taking all requirements from the customer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Software Development Life Cycle (SDLC)?

A

SDLC defines the phases in building of software/application
- Project planning
- Requirements gathering
- Design
- Developing (coding)
- Testing
- Production (deployment)(Releasing the product)
- Maintenance (Making sure product is stable, looking at customer report on bugs & fixing them)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is Software Testing Life Cycle(STLC)?

A

STLC is a sequence of different activities performed by the testing team to ensure the quality of the software or the product
Test planning - The process of writing and updating the test plan;
Test monitoring and control - is the process of checking whether everything is going according to the written test plan;
Test analysis - Is the process of determining ‘What to test’;
Test design - Is the process of determining ‘How to test’;
Test implementation - is the process of setting up all the conditions necessary to start testing;
Test execution - is the process of executing test cases and comparing the expected and actual results;
Test completion - is the process of collecting data from completed test activities and reporting results.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the difference between STLC & SDLC?

A
  • STLC is a part of SDLC.
  • SDLC defines all the standard phases which are involved during the software development process, whereas the STLC process defines various activities to improve the quality of the product.
    SDLC is a Development Life Cycle whereas STLC is a Testing Life Cycle.
    In SDLC, the development team creates the high and low-level design plans while In STLC, the test analyst creates the System, Integration Test Plan
    In SDLC, real code is developed, and actual work takes place as per the design documents, whereas in STLC testing team prepares the test environment and executes test cases.
    The SDLC life cycle helps a team to complete successful development of the software while STLC phases only cover software testing.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is requirement?

A
  • Requirements convey the expectation of users for the software/product.
  • Goal of requirement is to develop & maintain sophisticated & descriptive SRS document
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

When does the testing start?

A
  • Testing starts from testing the requirements. We have to make sure the requirements are correct in first place.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Why do we test?

A
  • To build bug free application
  • To satisfy end user & client
  • To build great product to generate more revenue
  • I love testing & testing is my passion
  • software Testing saves money;
  • software testing improves product quality;
  • software testing Increases customer trust, satisfaction, and confidence;
  • software testing reduces risks;
  • software testing affects security.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is tester’s main responsibility? What is the job responsibilities of a tester?

A
  • To find bugs as much as possible, as early as possible
  • To satisfy the end user & client by delivering bug free & user-friendly application
  • Write automation of testing & set up the same for different platforms like web or mobile
  • Managing & handling bug reports
  • Preparing & delivering test cases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Is 100% testing possible?

A
  • We can’t test the application 100% since there are unlimited scenarios that we can’t even imagine
  • Software testing is risk-based activity based on priority of the functionality, we can test as much as possible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is positive testing?

A

Testing the application with valid input.
Ex. If I login with valid username & password

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is a User Story?

A

User Story is an unit of work that should be done in one sprint. Ideally a User Story shouldn’t last more that a week

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is an Epic?

A

Epic is a big chunk of work that has one common objective. It’s a placeholder for required features with few lines of description. It can hold multiple user stories which are focused on a specific scope. Normally it takes a few sprints to finish one Epic.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a task?

A
  • A task represents work that needs to be done
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

How to estimate Epic?

A
  • Small 0-2 weeks
  • Medium 2-4 weeks
  • Large 4-8 weeks
  • XLarge 8-16 weeks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is defect or bug?

A

A defect is an error in an application. It occurs when any mistakes are made by developer during designing or building the application & when this flow is found by a tester. It’s the tester responsibility to do the testing of an application to find as many defects as possible to ensure that a quality product will reach the customer
A bug - is a general term describing any unexpected hardware or software problem. In short, it is any behavior or result that a program or system gets, but was not designed to do.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is Defect Life Cycle?

A

Bug life cycle also known as defect life cycle is a process in which defect goes through different stages in its entire life. This lifecycle starts as soon as a bug is reported by the tester and ends when a tester ensures that the issue is fixed and won’t occur again.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are the Defect Life Cycle stages?

A
  • New
  • Assigned
  • Open
  • Fixed
  • Pending Restart
  • Retest
  • Reopen
  • Verified
  • Closed
19
Q

What does Priority mean?

A

Priority is an order in which a defect should be fixed.
Defects that leave the software unusable are given the higher priority over defects that cause a small functionality of the software to fail

20
Q

What are types of priority?

A
  • Low: the defect is an irritant but repair can be done once the more serious defect has been fixed
  • Medium: during the normal course of the development activities defect should be resolved. It can wait until a new version is created
  • High: the defect must be resolved as soon as possible as it effects the system severely & can’t be used until it fixed
21
Q

What is severity?

A

Severity is defined as the degree of impact that a defect has on the operation of the product. It indicates the seriousness of the defect on the product functionality

22
Q

What are the types of severity?

A
  • Critical: the defect indicates the complete shut down of the process, nothing can proceed further
  • Major: the defect is highly severe & collapses the system. However, certain parts of the system remain functional
  • Medium: it causes some unwanted behavior but the system is still functional
  • Low: it won’t cause any major break-down of the system
23
Q

How to estimate a User Story?

A

The Fibonocci sequence is one of the popular scoring scale for estimating agile story points. Agile teams often use the Fibonacci sequence to estimate the “size” of tasks and user stories for their upcoming sprint.
1, 1, 2, 3, 5, 8, 13…

24
Q

What are the Story Points?

A

Story points help to estimate what a team can get done in a given amount of time.
Story points reward the team for solving problems based on the difficulties, not time spent.

25
Q

How many environments do you know?

A
  • Development E. (DEV) allows developers to make code changes into the application for fixing the bugs. Once the fix has applied, it’s an unit tested by the dev. Testers aren’t advised to perform testing in DEV
    DEV is where you configure, customize, & use source control to build an image of the application to be promoted to another environment
  • Test E. - staging or QA environment helps in ensuring the reliability of our code, pipeline, & overall product. Here can be run: manual testing, automated smoke tests, automation tests, automated integration tests
  • Pre-Production E. where we do the final testing before going into production. This E. replicates production E.
  • Production E. after the validation in QA E. & Pre-Production E., features are pushed to Production E.
26
Q

What is a Smoke test?

A

It’s a group of tests that are executed to verify if the basic functionalities of that particular build are working as expected or not.
Smoke test covers most of the major functions of the software but none of them in depth
The result of the test is used to decide whether to proceed with further testing
Smoke test is normally used in Integration Testing, System testing, & Accepting Testing

27
Q

What is Regression Testing?

A

Regression Testing is a type of software testing that verify code changes (defect fix, new features, change in existing features) to make sure it doesn’t impact existing functionality. Runs after each 2 weeks sprint or close to the end of the sprint & before the release. Also can run every day, depends on a team decision. This test can be done using both White Box or Black Box testing methods

28
Q

Velocity vs Capacity

A

Team’s velocity is a number of story point delivered/demo in a Sprint. Ex. if team planned 30 story points (Business value) worth of user stories in a sprint & able to deliver as planned then team’s velocity is 30
Velocity is how many story points the team will have for 1 sprint

Team’s capacity is a number of available hours for a Sprint. Available hours calculated based on resources planned holiday & company holiday if any.
Capacity is a total number of available hours for a sprint

29
Q

What is an Integration Testing?

A

Integration testing is a level of software testing where individual units/components are combined & tested as a group. The purpose - is to expose faults in the interaction between integrated units.
This testing can use black box, white box & gray box testing.
Can be manual or automated. Done by QA

30
Q

What is System Testing?

A

System Testing is a level of the software testing where a complete & integrated software is tested. Purpose - to evaluate the system’s compliance with the specific requirements.
Usually, Black Box testing is used & normally done manually.

31
Q

What is Acceptance Testing?

A

Acceptance testing is a level of software testing where a system is tested for acceptability. Purpose - to evaluate the system’s compliance with the business requirements & access whether it’s acceptable for delivery
Normally Black Box testing is used & it’s executed manually

32
Q

Reasons for Performance Test

A
  • To determine whether the application satisfies performance requirements
  • To measure stability under peak traffic events
33
Q

Change Request and Feature Request

A
  • Change request (CR) is a proposal to alter a product or system, often brought up by the client or another team member. During a project, this can happen when a client wants to change or alter the agreed-upon deliverables
  • Feature Request (FR) is specific ideas that a customer will send to the company asking to add something that they feel will make the product better
34
Q

What is Gray Box Testing?

A

Gray box testing is an application security testing technique that mixes white box and black box testing. In a white box assessment, the tester has complete internal knowledge of the system being tested (source code, design docs, etc.). A black box assessment is performed without any knowledge of the system’s internals.

Gray box testing splits the difference by providing the evaluator with partial knowledge of the system internals. For example, a gray box tester may not have complete knowledge of an application’s source code but may have partial knowledge of it and/or access to design documentation. This provides more insight than black box testing and less than a white box assessment

35
Q

What is White Box Testing?

A

White Box Testing is a software testing method in which the internal structure/design/implementation of the item tested is known to the tester
White box testing allows testers to dive into the code implementation and ensure that all logical conditions, calculations, and branches are tested thoroughly. It helps identify defects or issues within the code that may not be apparent from an external perspective, enabling developers to make necessary improvements and increase the overall reliability of the software.

36
Q

What is Black Box Testing?

A

In black box testing, we focus on the expected behavior of the function without considering its internal workings. We design test cases based on the function’s specifications, requirements, and expected outcomes.

37
Q

What is the difference between Error, Bug, Defect, Failure and Fault?

A

Error (mistake) - is a human action that produces an incorrect result;
Defect/bug/fault also have the same meaning, and they are synonyms;
Defect/Bug/Fault - a deviation between the expected result and the actual result in an application or in a module;
Failure - is the inability to achieve a certain goal.
Error/mistake happens first during the development process, and leads to defect/bug/fault during the testing process, then happens a failure - during user experience in the product.

38
Q

What are the 7 Testing principles?

A
  • Testing shows the presence of defects, not their absence;
  • Exhaustive testing is impossible;
  • Early testing saves time and money;
  • Defects cluster together;
  • Beware of the pesticide paradox;
  • Testing is context dependent;
39
Q

What is a bug (defect) report? What to include in a Bug Report?

A

A bug report is a technical document that contains all the necessary information about the bug and the conditions under which it can be reproduced. Depending on the bug tracking system, your template could differ.
Usually, a bug report consists of
Defect Identifier(ID);
Project (name of the current project);
Title;
Description;
Steps to reproduce;
Actual result;
Expected result;
Attachments (screenshots, videos, text);
Environment used;
Application/ Software Version;
Bug severity;
Bug priority;
Author;
Assigned to;
The status that shows the current stage of working with the
bug;
Creation date.

39
Q

What are the entry and exit criteria?

A

Entry criteria (definition of ready) - the set of conditions for officially starting a defined task;

Exit criteria (completion criteria, test completion criteria, definition of done) - the set of conditions for officially completing a defined task.

40
Q

What is functional testing?

A

Functional testing - is a type of software testing that is used to verify the functionality of the software application tested against the functional requirements and specifications. In simple words, the functional testing answer to the question of what the component/system does? The purpose of functional testing is to check the primary function.

41
Q

What is Non-functional testing?

A

Non-Functional Testing - is defined as a type of Software testing to check non-functional aspects of a software application, such as:
performance testing;
usability testing;
scalability testing;
maintainability testing;
reliability testing;
security testing of the software etc.

42
Q

What is GUI testing?

A

GUI testing - It is one of the unique types of software testing that is frequently used to check the Graphical User Interface features of the application or the software. In simple words, a user does not see the source code, however, the Graphical User Interface is part of an application that is visible to a user.