Portnov SQA Study Guide

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

Popular Negative Test :Numeric Limits Test

- Most database systems and programming languages allow numeric items to be identified as integers or long integers. Normally, an integer has a range of -32,767 to 32,767 and long integers can range from -2,147,483,648 to 2,147,483,647. For numeric data entry that do not have specified bounds limits, work with these limits to ensure that it does not get an numeric overflow error

How can a tester be sure that bug was fixed?

- execute the steps in the bug report - make sure the fixed bug does not result in new bugs in same area

Why software testers are needed if developers test their code anyway?

- testers do most of the negative testing - testers do most of the regression testing - testers test software application at system level (user perspective)

What is Business Requirements Document (BRD)?

-*BRD is written by the Business Analysts. It details the business solution for a project including the documentation of customer needs and expectations. The most common objectives of the BRD are: - To gain agreement with stakeholders - To provide a foundation to communicate to a technology service provider what the solution needs to do to satisfy the customer's and business' needs - To provide input into the next phase for this project - To describe what not how the customer/business needs will be met by the solution

What is a test plan?

-*Document that describes the objectives, scope, approach, and focus of a software testing effort. -*The process of preparing a test plan is a useful way to think through the efforts needed to validate the acceptability of a software product. The completed document will help people outside the test group understand the 'why' and 'how' of product validation. It should be thorough enough to be useful but not so thorough that no one outside the test group will read it.

What is the difference between a test case and a test plan?

-*Test plan is the most comprehensive Software Testing document that describes the objectives, scope, approach, and focus of a software testing effort -*Test case is the smallest Software Testing document that describes both typical and atypical situation (set of conditions and/or variables) that may occur in the use of an application (under which a tester will determine if a requirement upon an application is satisfied).

If you log a bug and the developer can't reproduce it, what should you do?

-Reproduce on my computer - if reproducible then -Reproduce on more computers - if reproducible then -Compare environments on QA and Developer -computers - if the same then -Get in touch with developer and make sure the step to reproduce used by both are exact same -Developer debugs on QA computer with his/her tools

Popular Negative Test :Date Validity

For date fields, it is important to ensure that invalid dates are not allowed (04/31/2007 is an invalid date). Your test cases should also check for leap years (every 4th and 400th year is a leap year).

Popular Negative Test :Date Bounds Test

For date fields, it is important to test for lower and upper bounds. For example, if you are checking a birth date field, it is probably a good bet that the person's birth date is no older than 150 years ago. Likewise, their birth date should not be a date in the future.

Popular Negative Test :Numeric Bounds Test

For numeric fields, it is important to test for lower and upper bounds. For example, if you are calculating interest charged to an account, you would never have a negative interest amount applied to an account that earns interest, therefore, you should try testing it with a negative number. Likewise, if your functional specification requires that a field be in a specific range (e.g. from 10 to 50), you should try entering 9 or 51, it should fail with a graceful message.

What is Build?

In a programming context, a build is a version of a program. As a rule, a build is a pre-release version and as such is identified by a build number, rather than by a release number. Reiterative (repeated) builds are an important part of the development process. Throughout development, application components are collected and repeatedly compiled for testing purposes.

Which type of testing results in highest number of bugs found?

Negative testing (versus Positive testing of same type)

What is the Performance Testing?

Performance testing is to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.

What is Positive testing?

Positive testing aimed at showing software works as intended when user does what he/she does correct actions.

Describe the QA Process

QA processes include: 1) Test Planning Process 2) Test Development Process 3) Test Execution Process 4) Defect Management Process 5) Test Reporting Process

How do you write a bug report?

Rule of WWW - What happened, Where it happened, under Which circumstances · Write one bug report for each fix to be verified · Bug report should be as complete as possible · Bug reports are as concise as possible · Report a bug immediately, do not postpone · Use technical terms, not "people off the street" language

What is a Test Case?

Set of conditions and/or variables under which a tester will determine if a requirement upon an application is satisfied

SOFTWARE DEVELOPMENT LIFE CYCLE

Software Elements Analysis:The most important task in creating a software product is extracting the requirements. Customers typically know what they want, but not what software should do, while incomplete, ambiguous or contradictory requirements are recognized by skilled and experienced software engineers. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect. Specification: Specification is the task of precisely describing the software to be written, possibly in a rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable. Software architecture: The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system. Implementation (or coding): Reducing a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion. Testing: Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer. Documentation: An important (and often overlooked) task is documenting the internal design of software for the purpose of future maintenance and enhancement. Documentation is most important for external interfaces. Software Training and Support: A large percentage of software projects fail because the developers fail to realize that it doesn't matter how much time and planning a development team puts into creating software if nobody in an organization ends up using it. People are occasionally resistant to change and avoid venturing into an unfamiliar area, so as a part of the deployment phase, its very important to have training classes for the most enthusiastic software users (build excitement and confidence), shifting the training towards the neutral users intermixed with the avid supporters, and finally incorporate the rest of the organization into adopting the new software. Users will have lots of questions and software problems which leads to the next phase of software. Maintenance: Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software. Not only may it be necessary to add code that does not fit the original design but just determining how software works at some point after it is completed may require significant effort by a software engineer. About ⅔ of all software engineering work is maintenance, but this statistic can be misleading. A small part of that is fixing bugs. Most maintenance is extending systems to do new things, which in many ways can be considered new work. In comparison, about ⅔ of all civil engineering, architecture, and construction work is maintenance in a similar way.

What is Software Quality Assurance?

Software QA 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 API Testing?

Testing of an API (Application Programming Interface), which is a collection of software functions and procedures. · API testing is mostly used for testing system software, application software or libraries. · It is a white box testing method. · API testing (done by QA Team) is different from Unit testing (done by developers).

How do you determine when you have done enough testing?

Testing process comes to the point at which additional tests will not significantly change quality of the software.

What is the bug life cycle?

The bug should go through the life cycle to be closed. Here are the stages: - bug found - bug reported - bug assigned to developer - bug fixed by developer - fix verified by tester - bug closed

What is Waterfall Methodology? (aka waterfall model)

The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, production/implementation and maintenance.

What does Test Strategy include?

This includes the testing objective, methods of testing new functions, total time and resources required for the project, and the testing environment.

Is it possible to find/fix all the bugs in a software product before it goes to the customers? Why test?

To establish and to enforce business systems of the QA Organization (Test planning, bug tracking, bug reporting, test automation, release certification, and others)

Why do you test software?

To make sure the product released has minimal bugs and is user friendly

If you find a bug and the developer says it is as-designed, what can you do?

find an exact requirement, which defines the way it should be designed - if there is no specific requirement compare to same feature implemented in quality applications (ask your manager which applications to compare to)

What is black/white box testing?

· Black box software testing is done without access to the source code. · White box testing is done with access to the code. Bugs are reported at the source code level, not behavioral.

What is the most important impact QA can have on a product development process?

· Clarifying requirements · Bringing down percentage of code re-written due to the change in requirements

Why do you choose the QA career?

· I really enjoy the level of appreciation I have from developers and other QA team members. · My previous background makes a good combination with my QA skills · I like to see how the application changes as a result of bug I reported. It gives me a very good feeling of being a real contributor · I really have passion for quality since I remember myself

What is Software Quality?

· Measurement of how close is actual software product to the expected (intended) product · Customer satisfaction (to who?) · Quality Software: reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable DEFINITION: From consumer perspective it is about customer satisfaction (subjective matter) from QA perspective it is about software being up to requirements being 100% up to requirements does not make product popular or selling well inside the software company there are roles who see quality from consumer perspective (upper management, sales, PR, marketing, support)

What is Negative testing?

· Negative testing aimed at showing that software handles properly situations in which user acts not as user is supposed to act (invalid inputs, unreasonable selections of settings, etc.)

What are Bug Report components? What fields do you fill out in a Bug Report? Describe to me the basic elements you put in a defect/bug report?

· 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 Software Testing?

· Software Testing is the process of analyzing the software in order to detect the differences between existing and required conditions and to evaluate the features of the software. It involves the entire software development process: - monitoring and improving the process - making sure that any agreed-upon standards and procedures are followed - ensuring that problems are found and dealt with, at the earliest possible stage · The purpose of testing is verification, validation and error detection (in order to find and fix the problems) - Verification is checking for conformance and consistency by evaluating the results against pre-specified requirements. (Verification: Are we building the system right?) - Validation is the process of checking that what has been specified is what the user actually wanted. (Validation: Are we building the right system?) - Error Detection: finding if things happen when they shouldn't or things don't happen when they should.

What is the most important part of bug report?

· Steps to reproduce · Short Description · Severity · Priority · Status

What is the difference between Software Testing and Software QA?

· Testing is mainly an 'error detection' process · Software QA is 'preventative'. It aims to ensure quality in the methods & processes. ("Quality Assurance" measures the quality of processes used to create a quality product)

What is Unit Testing?

· The goal of unit testing is to isolate each part of the program and show that the individual parts (units) are correct. · A unit is the smallest testable part of an application. It may be an individual function or procedure. · Unit testing is provided by developers, not testers.

What is a software bug?

A software bug is 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. Most bugs arise from mistakes and errors made by people in either a program's source code or its design, or in frameworks and operating systems used by such programs, and a few are caused by compilers producing incorrect code. A program that contains a large number of bugs, and/or bugs that seriously interfere with its functionality, is said to be buggy or defective. Reports detailing bugs in a program are commonly known as bug reports, defect reports, fault reports, problem reports, trouble reports, change requests and so forth.

What is Test Strategy?

A test strategy is an outline that describes the testing portion of the software development cycle. It is created to inform project managers, testers, and developers about some key issues of the testing process.

What is an Acceptance Testing?

Acceptance testing is black-box testing performed on a software prior to its delivery. Acceptance testing by the system provider is distinguished from acceptance testing by the customer (user acceptance testing - UAT).

What is Agile Methodology?

Agile Software Development is a set of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

Which documents would you refer to when creating Test Cases?

All business and technical documentation available: - PRD - Product Requirements Document - BRD - Business Requirements Document - Functional Specifications - Manuals and Help - Use Cases - Test Design - Third party publications (books, published by independent authors)

Why testers are needed if software goes to customers with lots of unfixed bugs?

Creating, mainaining, and improving QA group/team/department business systems * bug reporting * bug tracking * test planning * release certification * test automation

What is Quality?

Customer satisfaction? Subjective term. It will depend on who the 'customer' is. Each type of customer will have their own view on 'quality'

What is ad hoc testing?

DEFINITION: Simplified form of Exploratory Testing where test Planning+Executing+Learning are happening at the same time "random" or "non-systematic" functionality testing it is not "Monkey Testing" because there are elements of planning and learning it helps to find numerous bugs due to rare combinations of user actions main purpose is learning about the application, not breaking it down

What is Gray Box Testing?

DEFINITION: Gray box testing is using structural, design, and environment information (complete or incomplete) to expand or focus black box testing and to enhance testing productivity by using appropriate methods and tools. Extension of BLACK BOX testing Using methods and tools (languages) a lot of web testing is done in gray box area AVOID: - Combination of black and white box

What is Test matrix

Data collection mechanism. It provides a structure for testing the effect of combining two or more variables, circumstances, types of hardware, or events. Row and column headings identify the test conditions. Cells keep the results of test execution.

What is the software development life cycle?

The software development life cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project, from an initial feasibility study through maintenance of the completed application.

How do you start testing?

Get the requirements and specifications for the application

Define Software Quality:

In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context: Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications.

Popular Negative Test : Embedded Single Quote

Most SQL based database systems have issues when users store information that contain a single quote (e.g. John's car). For each screen that accepts alphanumeric data entry, try entering text that contains one or more single quotes.

Describe a bug

Mismatch between actual behavior of a software application and its intended (expected) behavior. We learn about expected behavior from requirements, specifications, other technical documentation.

What is a Regression Testing?

Partial retesting of a modified program to make sure that no errors were introduced while making changes to the code (developing new or fixing existing one)

Describe risk analysis

Risk analysis means the actions taken to avoid things going wrong on a software development project, things that might negatively impact the scope, quality, timeliness, or cost of a project. This is, of course, a shared responsibility among everyone involved in a project. However, there needs to be a 'buck stops here' person who can consider the relevant tradeoffs when decisions are required, and who can ensure that everyone is handling their risk management responsibilities.

What is Stress Testing?

Stress test puts a emphasis on robustness, availability, and error handling under a heavy load, rather than on what would be considered correct behavior under normal circumstances. The goal may be to ensure the software doesn't crash in conditions of insufficient computational resources (such as memory or disk space), unusually high concurrency, or denial of service attacks.

What does Test Plan include?

The following are some of the items that might be included in a test plan, depending on the particular project: * Title * Identification of software including version/release numbers * Revision history of document including authors, dates, approvals * Table of Contents * Purpose of document, intended audience * Objective of testing effort * Software product overview * Relevant related document list, such as requirements, design documents, other test plans, etc. * Relevant standards or legal requirements * Traceability requirements * Relevant naming conventions and identifier conventions * Overall software project organization and personnel/contact-info/responsibilities * Test organization and personnel/contact-info/responsibilities * Assumptions and dependencies * Project risk analysis * Testing priorities and focus * Scope and limitations of testing * Test outline - a decomposition of the test approach by test type, feature, functionality, process, system, module, etc. as applicable * Outline of data input equivalence classes, boundary value analysis, error classes * Test environment - hardware, operating systems, other required software, data configurations, interfaces to other systems * Test environment validity analysis - differences between the test and production systems and their impact on test validity. * Test environment setup and configuration issues * Software migration processes * Software CM processes * Test data setup requirements * Database setup requirements * Outline of system-logging/error-logging/other capabilities, and tools such as screen capture software, that will be used to help describe and report bugs * Discussion of any specialized software or hardware tools that will be used by testers to help track the cause or source of bugs * Test automation - justification and overview * Test tools to be used, including versions, patches, etc. * Test script/test code maintenance processes and version control * Problem tracking and resolution - tools and processes * Project test metrics to be used * Reporting requirements and testing deliverables * Software entrance and exit criteria * Initial sanity testing period and criteria * Test suspension and restart criteria * Personnel allocation * Personnel pre-training needs * Test site/location * Outside test organizations to be utilized and their purpose, responsibilities, deliverables, contact persons, and coordination issues * Relevant proprietary, classified, security, and licensing issues * Open issues * Appendix - glossary, acronyms, etc.

What is use case?

Use cases are used by Business Analysts as a format for specifying system requirements. Each use case represents completed business operation performed by user. From the QA prospective we would need to execute End-To-End test to make sure the requirement is implemented.

What is walk-through meeting?

Walk-through meeting is a form of software peer review in which a designer or programmer leads members of the development team and other interested parties through a software product, and the participants ask questions and make comments about possible errors, violation of development standards, and other problems.

What does Test Case include?

When planning for testing the test case: Test case ID The purpose (Title, Description) of the test case An instruction on how to get from the application base state to a verifiable application output or expected result Expected result When execute test cases we need two more columns: Actual result PASS/FAIL indication

Popular Negative Test :Required Data Entry

Your functional specification should clearly indicate fields that require data entry on screens. Test each field on the screen that has been indicated as being required to ensure it forces you to enter data in the field.

Popular Negative Test :Field Type Test

Your functional specification should clearly indicate fields that require specific data entry requirements (date fields, numeric fields, phone numbers, zip codes, etc). Test each field on the screen that has been indicated as having special types to ensure it forces you to enter data in the correct format based on the field type (numeric fields should not allow alphabetic or special characters, date fields should require a valid date, etc).

Popular Negative Test :Field Size Test

Your functional specification should clearly indicate the number of characters you can enter into a field (for example, the first name must be 50 or less characters). Write test cases to ensure that you can only enter the specified number of characters. Preventing the user from entering more characters than is allowed is more elegant than giving an error message after they have already entered too many characters.


Ensembles d'études connexes

Reading Comprehension Question Types

View Set

Surgical Management of Peritonitis

View Set

Week 1 - Postpartum assessment & Newborn assessment and care

View Set

Patho Pharm II Practice Questions Exam 3

View Set

C.11 Interpret Graphed Data - Part 2- Evaluate Changes in Level, Trend, & Variability - Acquisition

View Set

B BUS 470B: Strategic Management and Project Management

View Set

Chapter 04: Mini Case: Chatting with the HR Chatbot

View Set

NASM-Ch. 7: Human Movement Science

View Set