QA Basics

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

Tell some examples of Bug Severity and Bug Priority?

- High Priority & High Severity: Submit button is not working on a login page and customers are unable to login to the application. - Low Priority & High Severity: Crash in some functionality which is going to deliver after couple of releases. - High Priority & Low Severity: Spelling mistake of a company name on the homepage. - Low Priority & Low Severity: FAQ page takes a long time to load.

What criteria do you consider for automating a test?

- How often does the test need to be executed? i.e. is that going to be a regression test? Sometimes the test will need to be executed once, but with a large set of data. - How much time does automating this test will save me so that I can use my time in exploratory testing. - How important is the test to the business; i.e. is the test scenario a typical user journey through the application. - How complex is it to automate the test and how likely is it that the complexity doesn't cause many false positives which increases results analysis time? - How likely is it that this test catches a defect? - How likely is it that a feature or functionality will break and what is the impact of it on the business? If it is high impact, then it should be automated to ensure it passes from release to release.

What are the common mistakes which create issues?

- Matching resources to wrong projects - Test manager lack of skills - Not listening to others - Poor Scheduling - Underestimating - Ignoring the small problems - Not following the process

Explain the steps for Bug Cycle?

- Once the bug is identified by the tester, it is assigned to the development manager in open status - If the bug is a valid defect the development team will fix it. - If it is not a valid defect, the defect will be ignored and marked as rejected - The next step will be to check whether it is in scope. If the bug is not the part of the current release then the defects are postponed - If the defect or bug is raised earlier then the tester will assign a DUPLICATE status - When bug is assigned to developer to fix, it will be given a IN-PROGRESS status - Once the defect is repaired, the status will change to FIXED at the end the tester will give CLOSED status if it passes the final test.

Can you list Test Deliverables that can be produced during testing activities?

- Test Strategy; - Test Plan; - Test Scenarios; - Test Cases/Scripts; - Test Data; - Requirement Traceability Matrix (RTM); - Defect Report/Bug Report; - Test Execution Report; - Graphs and Metrics; - Test summary report; - Test incident report; - Release Notes; - User guide.

What does Software Development Life Cycle (SDLC) mean?

//SDLC is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software.// Idea - Analysis - Design - Development - Testing - Bug fixing - Verification - Acceptance - Release - Support - Death

CUCUMBER

A cucumber is a tool based on Behavior Driven Development (BDD) framework which is used to write acceptance tests for the web application. It allows automation of functional validation in easily readable and understandable format (like plain English) to Business Analysts, Developers, Testers, etc

How do you determine defect priority?

Depending on the importance of this functionality to the customer/user. Priority is the sense of urgency in fixing the defect. We need to determine if it disrupts the ability to use application in a critical or major way, or it can wait to be fixed.

What is the difference between test scenarios, test cases, and test script?

Difference between test scenarios and test cases is that Test Scenarios: A Test Scenario is any functionality that can be tested. It is also called Test Condition or Test Possibility. Test Cases: It is a document that contains the steps that have to be executed; it has been planned earlier. Test Script: It is written in a programming language and it's a short program used to test part of the functionality of the software system. In other words a written set of steps that should be performed manually.

What is End-To-End Testing?

End-to-end testing is used to verify application flow from start to end. The purpose of this testing is to simulate the real user scenario and validate the system under test and its components for integration and data integrity. It is performed from start to finish under real-world scenarios like communication of the application with hardware, network, database and other applications. The main reason for carrying out this testing is to determine various dependencies of an application as well as ensuring that accurate information is communicated between various system components. It is usually performed after the completion of functional and system testing of any application.

What are some testing techniques that you have used?

Equivalence partitioning, boundary value analysis, error guessing. (Error guessing is a software testing technique which is based on guessing the error which can prevail in the code.) - Test cases should be made using past experience with similar type of applications - Keep track of previous error areas - It is necessary to have an understanding of the application under test - The tester must have knowledge of common implementation errors - It is necessary to evaluate historical data and the test results obtained.

What is Equivalent Class Partitioning?

Equivalent Class Partitioning is a testing technique where you divide the set of test condition into a partition that can be considered the same. For example, input field should accept only integer numbers from 1 to 10. We divide the range into classes: valid from 1 to 10, invalid from minus infinity to 0.99, invalid from 10.01 to infinity. Another classes will be: letters, special characters, spaces, etc. We then take only one value from each class. The hypothesis behind this technique is that if one condition/value in a partition passes all others will also pass. Likewise, if one condition in a partition fails, all other conditions in that partition will fail.

What is Pesticide Paradox?

Pesticide Paradox in software testing is the process of repeating the same test cases, again and again, eventually, the same test cases will no longer find new bugs. So to overcome this Pesticide Paradox, it is necessary to review the test cases regularly and add or update them to find more defects.

QA CHECKLIST

QA CHECKLIST is a to-do list for controlling the accuracy of testing processes. Some companies don't use test cases because they think it is not efficient and requires too much time to write and read them, so they use checklists instead.

What is random/monkey testing? When is it used?

Random testing is often known as monkey testing. In such type of testing data is generated randomly often using a tool or automated mechanism. With this randomly generated input, the system is tested, and results are analyzed accordingly. These testing are less reliable; hence it is normally used by the beginners and to see whether the system will hold up under adverse effects.

What is the difference between re-testing and regression testing?

Re-testing ensures the original fault has been removed; regression testing looks for unexpected side effects.

Smoke Test

So we pick the test cases from our test suite which cover the major functionality of the application. In general, we pick a minimal number of test cases that won't take more than half an hour to execute.

What is Software Quality Assurance?

Software Quality Assurance is the process of monitoring and improving all activities associated with software development, from requirements gathering, design and reviews to coding, testing and implementation.

What is Software Quality?

Software Quality is how close the actual software product is to the expected (intended) product.<br />Quality Software: Bug-free; Meets requirements and expectations; Delivered on time.

What is the difference between static and dynamic testing?

Static testing: During Static testing method, the code is not executed, and it is performed using the software documentation. Dynamic testing: To perform this testing the code is required to be in an executable form.

What is the difference between Testing Techniques and Testing Tools?

Testing technique: - Is a process for ensuring that some aspects of the application system or unit functions properly there may be few techniques but many tools. Testing Tools: - Is a vehicle for performing a test process. The tool is a resource to the tester, but itself is insufficient to conduct testing

What is quality?

The ability of a product or service to consistently meet or exceed customer expectations. Quality is the degree to which software meets specified requirements and/or user's expectations. Customer's satisfaction; Product being under requirements. But! Each type of customer will have their own view on quality. Meeting the requirements doesn't guarantee customer's popularity.

How to generate test cases for "replace a string" method?

a) If characters in new string > characters in the previous string. None of the characters should get truncated b) If characters in new string< characters in the previous string. Junk characters should not be added c) Spaces after and before the string should not be deleted d) String should be replaced only for the first occurrence of the string

software bug

an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.

What basic elements you put in a defect/bug report ( Bug tracking system, example, JIRA)?

· Report number: Unique number given to the report · Application / Module being tested · Version & release number · Problem Summary / Short Description / Synopsis · Steps to reproduce (Detailed Description) · Severity (Critical, Serious, Minor, Suggestion) · Priority (High, Medium, Low) · Environment (Software and/or hardware configuration) · Reported by · Assigned to · Status (Open, Pending, Fixed, Closed, cannot reproduce, etc.) · Resolution / Notes · Keywords

What is test plan?

A document that describes the objectives, scope, approach, and focus of a software testing effort. Test plan is a detailed document that outlines the test strategy, testing objectives, resources (manpower, software, hardware) required for testing, test schedule, test expectations and test deliverables. To get ready to write test plan one needs to: 1. Analyze the product 2. Design the Test Strategy 3. Define the Test Objectives 4. Define Test Criteria 5. Resource Planning 6. Plan Test Environment 7. Schedule & Estimation 8. Determine Test Deliverables.

What is negative and positive testing?

A negative test is when you put in an invalid input and receives errors. While positive testing is when you put in a valid input and expect some action to be completed in accordance with the specification.

What is a Release?

A release is the distribution of a new or upgraded version of software. Software is ready for or has been delivered or provided to the customer.

Test Suite

A set of several test cases for a component or system under test, where the post condition of one test is often used as the precondition for the next one.

Smoke Test Suite

A smoke test suite combines a number of smoke tests into a small suite of tests so that when the application is ready to deliver to staging or pre-production environments, developers will know in a matter of minutes whether the latest version of their application is ready for further QA and review. Smoke tests are also used at times in emergencies or when teams want to release a hot patch to their production applications.

Explain what is traceability matrix?

A test matrix is used to verify the test scripts per specified requirements of test cases. A test matrix is used to map test scripts to requirements.

AD HOC TESTING

AD HOC TESTING, also known as Random Testing or Monkey Testing, is a method of software testing without any planning and documentation. The tests are conducted informally and randomly without any formal procedure or expected results. The tester improvises the steps and arbitrarily executes them (like a monkey typing while dancing). Though defects found using this method are more difficult to reproduce (since there are no written test cases), sometimes very interesting defects are found which would never have been found if written test cases existed and were strictly followed. The success of ad hoc testing depends on the creativity and tenacity of the tester (and, of course, luck).

AWS

Amazon Web Services (AWS) is the world's most comprehensive and broadly adopted cloud platform. AWS has significantly more services, and more features within those services, than any other cloud provider-from infrastructure technologies like compute, storage, and databases-to emerging technologies, such as machine learning and artificial intelligence, data lakes and analytics, and Internet of Things. This makes it faster, easier, and more cost effective to move your existing applications to the cloud and build nearly anything you can imagine.

What is Verification?

Are we building the product right? The process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.

What is Validation?

Are we building the right product? The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements.

What is Black Box Testing?

Black box testing is defined as a testing technique in which functionality of the Application Under Test (AUT) is tested without looking at the internal code structure, implementation details and knowledge of internal paths of the software. This type of testing is based entirely on software requirements and specifications.

What is Boundary Testing?

Boundary testing is the process of testing between extreme ends or boundaries between partitions of the input values. So these extreme ends like Start- End, Lower- Upper, Maximum-Minimum, Just Inside-Just Outside values are called boundary values and the testing is called "boundary testing". The basic idea in boundary value testing is to select input variable values at their: Minimum, Just above the minimum, A nominal value, Just below the maximum, Maximum.

Faults found should be originally documented by whom?

By testers.

What is CRUD testing and how to test CRUD?

CRUD stands for Create, Read, Update and Delete. CRUD testing can be done using SQL statements.

Confluence

Confluence is Atlassian's content collaboration tool used to help teams collaborate and share knowledge efficiently. In Confluence, content is created and organized using spaces, pages, and blogs. Confluence's collaboration tools allow users to write, edit, comment and get work done together within the Confluence interface. Users can display a variety of content types thanks to Confluence's rich text editor, and an array of accepted attachment file types. Permissions and Restrictions all users to control the visibility of Confluence content at the Space or Page level, so only the right people have access to the right information. Confluence has also been designed to prevent duplicates, and display only the latest information.

What is the purpose of test design technique?

Identifying test conditions and Identifying test cases

List of Items Included in an Ideal Bug Report:

1. Title: your title should serve as a concise summary of what the bug is 2. Environment: The environment for every application can vary widely but be as specific as you can. You should always follow the given bug report template unless otherwise specified — it helps cut down on unnecessary information. 1) Device: What type of hardware are you using? Which specific model? 2) OS: Which version number of the OS has displayed the issue? 3)Account Used: This matters if you are given test accounts by the client. It's best to then include email + password in the issue report. When the developers get the bug, they understand which account was used to discover the issue. 4) Testing App Version: Which version number of the application are you testing? Simply writing "latest version" or "App Store Version" won't cut it, since some bugs are version-specific and it's hard to know the app store version when searching the store at a later date - make sure you include this specific information. 5) Connection type (if applicable): If the application you're testing is reliant on Internet connectivity, are you on WiFi, Ethernet, or cellular data? What is the speed of the connection? 6) Reproducibility Rate (if applicable): How many times have you been able to reproduce the error, using the exact steps you've taken to activate the bug? It's also useful to report how many times the bug has been reproduced vs. the number of attempts it's taken to reproduce the issue, in case it's an intermittent occurrence. 7) Steps to reproduce: We number our steps from beginning to end so developers can easily follow through by repeating the same process. 4. Expected Result: What should? This is where you put on your end-user cap and think about the desired outcome and offer deeper insights than "the app should not crash." 5. Actual Result: Here's the result of the bug. Does the application crash? Does nothing happen at all? Is an error displayed? 6. Visual Proof: (screenshots, videos, text) Any pertinent screenshots, videos, or log files should be attached 7. Severity/Priority: Sharing the severity offers a degree of impact the bug has on the functionality of the system and helps the dev team prioritize their work.

In white box testing, what do you verify?

1. Verify the security holes in the code 2. Verify the incomplete or broken paths in the code 3. Verify the flow of structure according to the document specification 4. Verify the expected outputs 5. Verify all conditional loops in the code to check the complete functionality of the application 6. Verify the line by line coding and cover 100% testing

2 reasons that a bug might not be fixed.

1. tester reported poor (not detailed enough..) 2. tester reported bug correctly (not a bug, priority is very low, to expensive to fix, needs refactoring; "Heisenbug" - hard to reproduce)

How to evaluate specs or problem Documentation?

1.ambiguities (неоднозначность) 2. omissions (пропуски) 3. inconsistency (несоответствие) 4. inaccuracies (неточность) 5. contradictions (противоречия)

Security Testing

A Type of Functional Testing, which investigates the functions relating to the detection of threats, such as virus from malicious outsiders.

How would you start planning your test activities on a new project?

In order to start planning I will need to gather information first. I would need to know the scope of testing, which means familiarize myself with the application, look through documentation, if it exists, perform some exploratory testing. I would also need to know the timeframe. If we are working in Agile sprints, most likely I will have a very limited time to perform testing. I will need to take a look at Jira or another issue management system and see how many features are planned to implement in a new sprint. Evaluate new features testing. I also need to know if there are automated regression tests already, will I need to create them or perform regression testing manually. These are some of the aspects to start planning. (If you talk for that long, interviewer will stop you).

Explain in a testing project what testing activities would you automate?

In testing project testing activities, you would automate are - Tests that need to be run for every build of the application - Tests that use multiple data for the same set of actions - Identical tests that need to be executed using different browsers - Mission critical pages - A transaction with pages that do not change in a short time

How do you know you have enough requirements?

It depends on every project, its complexity, who our customers and users are, what Software Development Model is used. Usually in agile environment, we can start implementation once we have high level requirements and Product Owners, Developers and Business Analysts have understanding of what product should look like. When we have sufficient information for the developer to implement end-to-end process without guessing about important functionality. If our goal is to launch a product with a specific functionality first, and add more functions in future, we need to make sure we have enough requirements about this specific functionality, even if we don't have them for the rest of the product. In agile, requirements gathering never really stops as we add more and more features in every sprint. In Waterfall we usually have a specific time or budget to gather as many requirements as possible. But even in Waterfall there can never be enough requirements, so usually we stop once we reached the deadline for the analysis stage.

When should testing be stopped?

It depends on the risks for the system being tested. There are some criteria based on which you can stop testing. - Deadlines (Testing, Release) - Test budget has been depleted - Bug rate fall below a certain level - Test cases completed with certain percentage passed - Alpha or beta periods for testing ends - Coverage of code, functionality or requirements are met to a specified point

What is the MAIN benefit of designing tests early in the life cycle?

It helps prevent defects from being introduced into the code.

What do you understand by software testing?

It's a process which confirms that a system works as per the business requirements and/or customer's expectations.

JIRA

JIRA is a tool developed by Australian Company Atlassian. It is used for bug tracking, issue tracking, and project management. The basic use of this tool is to track issues and bugs related to your software.

JQL

JQL stands for Jira Query Language and is the most powerful and flexible way to search for your issues in Jira. JQL is for everyone: developers, testers, agile project managers and business users.

Node.js

Node.js is a free, open-sourced, cross-platform JavaScript run-time environment that lets developers write command line tools and server-side scripts outside of a browser.

What is the step you would follow once you find the defect?

Once a defect is found you would follow the step a) Recreate the defect b) Attach the screenshot c) Log the defect

Regression Testing

Repeated Testing of an already tested program, after modification, to discover any defects introduced or uncovered as a result of the changes in the software being tested or in another related or unrelated software component

What is the process of creating a Test Case document?

Step 1: is to get a thorough understanding of the Application Under Test (AUT): This could be by reading the requirement documents thoroughly. In the absence of docs, we could try to understand any point of reference that we have - a previous version of the application or wire-frames or screenshots Step 2: After understanding the requirements, we make a list of what are the areas in this application that will have to be tested. In other words, we identify the test requirements. The focus in this step is to identify "What" to test. The outcome of this step is a list of Test Scenarios. Step 3: Once we have the test scenarios, we concentrate next on "How" to test them. This phase involves writing detailed steps about how to test a particular feature, what data to enter (Test Data) and what is the expected result.

What is a Test Case?

Test Case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly.

What is Test Environment? What environments did you use at your previous projects?

Test Environment is the combination of hardware and software on which Test Team performs testing. Example of environments: Stage, Pre-production, Production, Test, Dev, etc. Usually there is at least one Dev (development) environment, that is used for testing. After the code is tested in Dev environment, it is transferred to the UAT or Pre-prod environment where it's considered 'stable' (no major defects, application is working, client can run User Acceptance Tests in this environment).

What kinds of test documentation have you created?

Test Scenarios, Test Cases, Requirement Documents, User Manuals

What is a Test Suite?

Test Suite is a collection of test cases that are intended to be used to test a software program to show that it has some specified set of behaviours.

What is a Test Case?

Test case is a set of conditions or variables to verify under which a tester determines whether the software satisfies requirements and functions properly. A test case is a single executable test which a tester carries out. It guides them through the steps of the test. You can think of a test case as a set of step-by-step instructions to verify something behaves as it is required to behave. Test Cases, assembled in a sequence to achieve some goal, form a Test Suite. When writing test cases, consider these things: Keep the title short. Include a strong description. Be clear and concise. Include the expected result. For more information visit: https://blog.testlodge.com/how-to-write-test-cases-for-software-with-sample/

What is test coverage?

Test coverage measures in some specific way the amount of testing performed by a set of tests (derived in some other way, e.g., using specification-based techniques). Wherever we can count things and can tell whether or not each of those things has been tested by some test, then we can measure coverage.

What is test strategy?

Test plan is a plan for defining the testing approach, and it answers to questions like what you want to get done and how you are going to accomplish it. It is a most important document for any QA team in software testing. Test planning activities guides team to define Test Coverage and testing scope. It also aids testers to get a clear picture of the project at any instance. The possibility of missing any test activity is very low when there is a proper test strategy in place.

Integration Level Testing

Testing activity which is performed to expose defects in the interfaces and in the interaction between integrated components

What are the testing levels?

Testing levels are the different stages of the software development lifecycle where testing is conducted. There are 4 testing levels: Unit, Integration, System and Acceptance.

What is White Box Testing?

White Box Testing is defined as the testing of a software solution's internal structure, design, and coding. In this type of testing, the code is visible to the tester. It focuses primarily on verifying the flow of inputs and outputs through the application, improving design and usability, strengthening security. White box testing is also known as Clear Box testing, Open Box testing, Structural testing, Transparent Box testing, Code-Based testing, and Glass Box testing. It is usually performed by developers.


Ensembles d'études connexes

Chapter 40: inflation and deflation

View Set

10.3- where is agriculture distributed

View Set

RN Learning System: Nursing Care of Children Practice Quiz 1 & 2

View Set

RN Maternity HESI Review Questions

View Set

Chapter 12: Gender and Sexuality

View Set

new economic theories assignment

View Set

Chapter 6- Elasticity: The Responsiveness of Demand and Supply

View Set

VGP 3rd 6-Weeks Test Review 20/21

View Set