QA

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Agile Model

"Agile Development" is an umbrella term for several iterative software development methodologies. The most popular agile methodologies include Scrum, Extreme Programming (XP), Crystal, Dynamic Systems Development Method (DSDM), Lean Development, and Feature-Driven Development (FDD). It is a very flexible model the main features of which are: - requirements and priorities are dynamic - there is an option of making changes in the short period of time - iterative approach - Both development and testing activities present at the same time

Most Important Components of Bug Report

- Short Description (Problem summary) - Steps to Reproduce (Detailed description to recreate an error) - Severity (Assigned by tester) How error effects on application - Priority (Assigned by manager) How soon bug should be fixed. - Status

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 and user perspective

Requirements

1) MRD - Marketing Requirements Document MRD- The market requirements that describe the opportunity or the market need. 2) PRD - The purpose is to clearly describe the product's purpose, features, functionality, and behavior. PRD- Product Requirements Document 3) Use Cases

The purpose of testing is

1) Verification is checking how the actual result meet the requirements. (Verification: Are we building the system right?) 2) Validation is the process of checking that what has been required is what the user actually wanted. (Validation: Are we building the right system?) 3) Error Detection: finding if things happen when they shouldn't or things don't happen when they should.

Most Important Components of Test Cases

1. Title / Purpose Test description; Intent; Objective; etc 2. Instructions Instructions on how to get an application from base state to an expected result; 3. Expected result Expected application behavior based on the requirements 4. Actual result Actual application behavior 5. Pass/Fail verification of actual result (application behavior) against expected result (specified in the test case); 6. Precondition 7. Test data

Dynamic Testing

Dynamic Testing - actually executing program code using set of test cases or other way.

Exploratory testing

Exploratory testing is a testing approach where process of test planning and test execution all done at the same time. Exploratory testing used for "explorer" an application to try to find out how the software actually works. Good to start with; Minimum planning and maximum test execution. Good if no requirements or if they are incomplete. Quality depends on the tester's skills.

What is Software Quality?

From QA perspective it is measurement of how close is actual software product to the expected product, actuality it is ability of product to meet of requirements. But being 100% up to requirements does not make product popular or selling well, that's why when we toking about software quality we always should remember about customers. Quality isn't only ability of product to meet of requirements, it is also customer satisfaction. We can describe Quality Software as a - reasonably bug-free, - delivered on time and within budget, - to meet of requirements and/or expectations, - maintainable product.

Manual Testing

In Manual Testing , testers manually execute test cases without using any automation tools. Manual testing: ● Manually testing software for defects; ● Tester plays the role of an end user; ● Test all features to ensure the correct behavior. When to conduct the Manual Testing? ● Expensive to do automation; ● Need for human judgment; ● Ongoing need for human intervention.

Negative testing

Negative testing is showing that software handles properly in situations when user acts not as user is supposed to act (invalid inputs, unreasonable selections of settings, etc.) • makes no sense if Positive Testing fails • negative testing is to be done AFTER positive • takes more time then positive • under time pressure minimize (skip) Negative Testing • it results in more bugs than positive

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

No it is impossible. Cause - human factor - every fixed bug created new bugs. 1)We owe it to our users and ourselves to deliver the best application we can. 2) ..to do Quality Assurance, to establish and to enforce business systems of the QA Organization ● Test Planning ● Bug Reporting ● Bug Tracking ● Test Automation ● Release Certification

Performance Testing

Performance Testing runs to determine is system stable enough under a specific workload. ● Testing if application meets the performance criteria; ● Compare two systems to find which performs better; ● Measure what parts of the system causes poor performance; ● Need a stable build and environment, closest to production;

Positive testing

Positive testing it is testing that simulates users expected behavior. The purpose of Positive testing is showing software works as designed when user acting as expected. - should be done BEFORE negative

Compatibility Testing

Purpose of compatibility testing is to evaluate the application's compatibility with the different environments. Browser compatibility testing checks how application looks, behaves, and responds in different browsers. What to test? ● Cross browser/Platform compatibility issues; ● Screen resolutions; ● Frames; ● Font display and availability; ● Color limitations; ● JavaScript availability( mobile devices);

RISK ANALYSIS

RISK ANALYSIS means the actions taken to avoid things going wrong on a software development project, things that might negatively effect the scope, quality, timeliness and cost of a project.

SCRUM

Scrum is one of the methodology of agile model for development software. There is one or more cross-functional, self-organizing teams of about seven people each in the SCRUM. In this teems might be only three roles: Product Owner, Team, and Scrum Master. Scrum uses fixed-length iterations, called Sprints, which are typically 1-2 weeks long (never more than 30 days). Scrum teams try to build a potentially shippable (properly tested) product increment every iteration.

Describe security testing.

Security testing is activity with purpose makes app secure. It means - detect errors that may cause a big loss (losing of personal/financial or any other important information) - finding all possible loopholes and weaknesses of the system - measure its potential all possible security risks in the system

What is Software Quality Assurance?

Software QA is the process of monitoring and improving all activities associated with software development, during whole Software Development Life Cycle from requirements gathering, to coding, testing and implementation.

What is Software Testing?

Software Testing is the process of analyzing the software purpose of it is detect the differences between actual results and expected results (requirements), and to evaluate the features of the software.

Static Testing

Static Testing is checking of code, requirement documents, and design documents to find errors without code execution. Hence, the name "static". Main objective of this testing is to improve the quality of software products by finding errors in early stages of the development cycle. Unfortunately in practice it's often skipped;

Releases

This is a process of delivering and providing the product to clients

scripted testing

Under scripted testing, tester designs test cases first and than executes it.

Unit testing

Unit testing is the phase of testing where object of testing is Unit ( the smallest testable part of an application.). Unit testing verifies that units usable and have correct data. Unit tests are usually created/run by developers (or white box testers) during the development process to ensure that code meets its specification and behaves as expected.

TEST PLAN

is a document that describes the - objectives - scope - approach - focus of a software testing effort. • The highest level Software testing document possible; • Does not include test case; • Developed mostly by QA team with help of other teams;

Project Plan

is a formal document to summarize business, management and financial aspects of a project. "Contract" between Project Manager and customers. It includes scope, objectives, benefits, costs, risks and plans, etc.

TEST SUITE

is a group of test cases;

Waterfall model

is a sequential software development methodology, in which progress goes constantly in one direction only (like a waterfall) through the phases of 1) Planning (Planning & Concept development) 2) Analysis (Analysis & Requirements gathering) 3) Design (Architecture & Specifications) 4) Development (Development & Test) 5) Implementation/Release 6) Maintenance Waterfall don't allow review or come back phase to any prior phase once it's complete. In "Waterfall model" phases are executed sequentially.

TEST CASE

is a set of conditions and/or variables under which a tester will identify if application up to requirements. Test Case • Test Case is 100% come requirement; • The smallest possible action in software testing; • The lowest possible level document in software testing; • Might fail or pass in just one place; • Test cases should be created in a way that all of the paths are executed at least once.

Bug Tracking system

is a software application, designed to management of software testing process that include: Report bugs; bug tracing; Close bugs; And also it designed to run the statistical analysis, monitor, and summarize the results; Popular Bug Tracking Tools examples: ● Jira; ● Mantis; ● Bugzilla; ● Elementool; ● Trac; ● Redmine; ● OTRS;

End-To-End

is similar to system testing, but unlike System Testing, End-to-End Testing not only validates the software system under test but also checks it's integration with external interfaces. Hence, the name "End-to-End". The purpose of End-to-End Testing is to exercise a complete production-like scenario.

What is the most frequently executed type of testing?

release/build acceptance (every build) next one is regression

Beta testing

testing is done by a limited number of users (actual users), before it is released to the whole community;

Versions

unique version name or number to identify states of an application. Version is generally assigned in increasing order and correspond to new developments in the software. Build number is often used as a version number.

Why Test Cases?

• Better testing coverage; • Reusable; • Reviewable; • Traceable - know what is tested; • Tracking test results;

Accessibility

Accessibility is an "ability to access". Is a app available to as many kind of people as possible? Standards: World Web Consortium (W3C) - GUI; Americans with Disabilities Act of 1990; Wikipedia Accessibility;

Ad Hoc Testing

Ad Hoc Testing is a simplified form of Exploratory Testing where test Planning, Executing and Analysis 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 main purpose is learning about the application, not breaking it down.

Advantages & Disadvantages of black box testing?

Advantages: Test cases can be designed as soon as the specifications are complete Developer and tester are independent of each other Tester does not need to know any specific programming language Testing a software as a user, not a developer (other point of view) Disadvantages: Test cases are harder to design. Impossible to test every possible input stream Many program paths will go untested

Advantages & Disadvantages of white box testing?

Advantages: Tester may tests and reports bugs on software internal structure Better analyze data stream Verify intended and unintended software behavior Disadvantages: Test cases can be designed only when coding is finished Developer and tester are dependent of each other Tester need to know specific programming language Testing a software as developer (one point of view)

Alpha testing

Alpha testing is usually done by QA, before it is released to customers.

Developer can't reproduce a defect that you filed

As a tester, you: Reproduce on your computer; Then reproduce on 1-3 other computers; If you can reproduce the defect: Compare developer's and your working environment; If environment is the same, make sure that steps to reproduce used by both are exactly the same; Ask developer to debug on QA environment with his/her tools.

Developer marked your defect "As Designed"

As a tester, you: Verify the requirements; If no specific requirement exists, compare to same feature implemented in quality applications or Talk to your manager and/or developer; Close the bug;

How do you determine when you have done enough testing?

At some point of test process additional tests will not really improve a) no critical bugs b) the application meets the requirements

Automation Testing

Automation Testing is use of tools to execute test cases. TEST SCRIPT is a procedure, or programming code that replicates/imitate user actions. Test Case is a base to create test scripts using a tool or a program. - Higher upfront costs - Lower costs to repeat the test When to automate? ● Regression, not expected to change; ● Repetitive tests; ● Structured data; ● Static, complex but static; ● Performance (Load, volume, capacity)

Black box

Black box software testing is done without access to the source code from user perspective. Not about WHO does it, but its is about HOW it is done Bugs are identified (detected) and reported from user perspective. Could be manual or automated (still black box)

Bug report (rules)

● Rule of WWW: 1. What happened? 2. Where it happened? 3. Under What circumstances? ● Write one bug report for each bug; ● Bug report should be as complete as possible; ● Bug reports should be as concise/summary/brief (simple and understandable) as possible; ● Report a bug immediately, do not postpone/put off; (without procrastination) ● Use technical terms, not the "street" language

QA Process:

● Test Planning ● Test Development ● Test Execution ● Bug Reporting ● Defect Management

Boundary testing

Boundary testing is technique when tester use one value from each equivalent class. Equivalent classes is a set of values under which the behavior of the system the same. Boundary is a point where the behavior of the system changes.

Bug life cycle

Bug found; Bug gets reported; It goes to Development Manager to get Assigned To and Priority; Developer sees the report, fixes the bug, marks it as Fixed; It goes to Tester for verification of the fix; If it is fixed Tester close the bug.

Describe a bug

Bug it is different between actual behavior of a software application and its expected behavior. We learn about expected behavior from requirements, specifications, other technical documentation.

What is the most important contribution to the product development process that QA could bring?

Clarifying (make clear) requirements Bringing down percentage of code must be re-written if the requirements have to change.

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 a development project, from an idea to maintenance of the completed application. Stages: 1) Planning (Planning & Concept development) 2) Analysis (Analysis & Requirements gathering) 3) Design (Architecture & Specifications) 4) Development (Development & Test) 5) Implementation/Release 6) Maintenance

Effective Testing To test effectively you need:

1. Test Coverage; 2. Strong planning; 3. Execution.

Default What is Gray Box Testing?

Grey Box testing is testing technique performed with limited information about the internal functionality of the system. It is using structural, design, and environment information (complete or incomplete) - some methods and tools to expand or focus black box testing.

Non-Functional

How the system works? Reliability, usability, maintainability, compatibility, response times, capacity for performance testing, etc.

Installation testing

Installation testing verifies that the system is installed and set up correctly. Typically done by QA Engineer working closely with Configuration Manager;

Integration testing

Integration testing is the phase of testing when units are combined together into the main software package and tested as a group.

Internationalization testing

Internationalization testing verifies that software can be adapted to various languages and regions without engineering changes;

Build

It is an executable file that has been made by compiling code.

What is Quality?

It is subjective term. Broadly from consumer perspective it is customer satisfaction.

Load testing

Load testing (simplest) - performed to determine system behavior under an expected load (kind of Performance testing).

Localization Testing

Localization testing verifies that software is (can be) adapted to a particular culture/locale; Things that are often changed because localization, such as the ● User Interface and content files. ● Keyboards ● Text Filters ● Hot keys ● Spelling Rules ● Sorting Rules ● Upper and Lower case conversions ● Printers ● Size of Papers ● Mouse ● Date formats ● Rulers and Measurements ● Voice User Interface language/accent ● Video Content

Status of the bugs can be

Open/Not Assigned (не приписан) Assigned (приписан) Fix in Progress (баг ремонтируется) Fixed (баг отремонтирован) Build in Progress (билд на тест-машину в процессе) Verify (проведи регрессивное тестирование) Closed/Fix is Verified (ремонт был успешен) Reopen/Verification Failed (ремонт был неуспешен) Can't Reproduce (не могу воспроизвести) Duplicate (дубликат) Not a bug (не баг) 3rd party bug (не наш баг) No longer applicable (поезд ушел)

What is a Regression test?

Partial retesting of a modified program to verify that previous errors were fixed and also to make sure that no new errors were introduced while making changes to the code (development new feature or fixing bugs). - should be done for each new release (after fixing a bug and/or after new feature was added;) - we do not have enough time to retest software completely, that's why risk analysis is involved when we decide on which parts should be tested (partial retesting) - second (after release acceptance) most frequently executed test - very good candidate for automation - not about manual/automated or black/white box

Release/build acceptance testing

Release/build acceptance testing is a quick test to verify that application is stable enough to execute a tasting more completely. Acceptance testing by QA is different from acceptance testing by the customer (UAT - user acceptance testing).

Stress testing

Stress testing - performed to determine system behavior under an extreme load (kind of Performance testing). Will the system performs properly "under stress"?

System testing

System testing is executed on a fully integrated/complete applications to identify if application meets to requirements. System testing is a black box testing; You need to know the requirements or design or logic of system. Preconditions for System Testing 1. All components should be successfully: - Unit Tested passed; - Integration Testing passed. 2.System Testing should be executed in an environment, closest to production setting or if necessary, in several multiple environments.

TEST SCRIPT

TEST SCRIPT is a procedure, or programming code that replicates/imitate user actions. Test Case is a base to create test scripts using a tool or a program.

TRACEABILITY MATRIX

TRACEABILITY MATRIX is a table that correlates requirements (design documents) to test documents (test cases).

Software Testing Documentation

Test Plan; Test Cases; Test Suite; Test Strategy; Traceability Matrix; Test Script; etc.

What is the difference between Software Testing and Software QA?

Testing is mainly an 'error detection' process. Usually it starts at "Testing" stage of Software Development Life Cycle. Software QA is 'preventative' process. Its goal to ensure quality in the methods & processes. It occurs during whole SDLC (Software Development Life Cycle).

SDLC - Environments

Tests may occur in the following hardware and software environment types: ● Development; ● QA environment; ● Staging; ● Production; etc.

Usability Testing

Usability Testing performed based on the users actual behavior. Evaluate: Is it easy to use? How much time it takes to user complete basic tasks? How many mistakes did people make? How much does the person remember after periods of non-use? Emotional response: how does the person feel about this app?

How to test if there are no requirements?

Use common sense; Compare to similar applications; Try exploratory testing.

User Acceptance Testing (UAT)

User Acceptance Testing (UAT) is one of the final stages of a project. Before accepting new system, client/customer test application to make sure that it meets the requirements. Preconditions: Application is fully developed; Unit, Integration and System are completed; Hight priority bugs have already been fixed before UAT.

Volume testing

Volume testing (part of stress testing) performed to determine system behavior with a defined amount of data (dB size, etc.)

Development Models

Waterfall (Traditional-sequential) Agile/Extreme: (extreme programming)

What is smoke testing?

What is smoke testing? Smoke testing is run to identify simple failures, severe enough to reject software release. Like: Doest the program run? Does it open a window? Does clicking the main buttons do anything?

White box

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

Functional

What the system does? Typically described in requirements, but can be undocumented; Verify that functions of a system are working as specified. May occur at all test levels.

What types of testing do you know?

What types of testing do you know? Static vs Dynamic Manual vs. Automation Black/white/gray box Non-functional/functional Positive/negative exploratory (ad-hog) unit/integration/system/ end to end acceptance regression security alpha testing/betta Testing Smoke Testing Performance: Load, Stress Testing Compatibility Testing Usability Testing Installation Testing Internationalization Testing/Localization Testing Accessibility Testing Boundary Testing


Kaugnay na mga set ng pag-aaral

Art Appreciation - ART 1910- Final

View Set

Principles of Marketing Final Exam Review

View Set

L. 6: The Persians Rise: Achaemenid Empire

View Set

applications with standard normal distribution

View Set