QA & Testing Overview
GitHub
Code Repository GitHub is a Git code repository is a web-based hosting service for version control using Git. Can plan projects, collaborate on code, test, and deploy. Use GitHub on-premises with your own servers or in a private cloud
Build
It is an executable file that has been made by compiling code.
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.
EggPlant
A suite of tools for Test Automation & Performance - Eggplant Functional (Test automation tool) and Eggplant Performance (Performance testing tool) enable testers to quickly and easily validate the full user experience. Including functional, performance, and usability testing — any app on any platform.
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
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).
In Agile environment, you have more ______________, each consisting of multiple ______________. o Releases or Fix Versions/Sprints o Sprints/Releases or Fix Versions o Releases or Fix Versions/Issue types o Issue Types/Sprints
Releases or Fix Versions/Sprints
When using JIRA requirement integration, any JIRA issue type can be brought into Manager as a/an _______________. o Epic o Requirement o User Story o Sprint
Requirement
What's the big deal about 'requirements'?
Requirements should be clear, complete, reasonably detailed, cohesive, attainable, and testable. A non-testable requirement would be, for example, 'user-friendly' (too subjective). A testable requirement would be something like 'the user must enter their previously-assigned password to access the application'.
Regression Testing
Retesting a previously tested program following modification to ensure that faults have not been introduced or uncovered as a result of the changes made.
Stand-alone Manager Projects are very likely to be using Waterfall methodology. True or False
True
Test Plan
A document describing the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning.
Emulator
A device, computer program, or system that accepts the same inputs and produces the same outputs as a given system.
Software Testing
A set of activities conducted with the intent of finding errors in software.
Test Tools
Computer programs used in the testing of a system, a component of the system, or its documentation.
Bamboo
CI/Build Tool Bamboo is a continuous integration (CI) server that can be used to automate the release management for a software application, creating a continuous delivery pipeline.
TeamCity
CI/Build Tool Java-based build management and continuous integration server. Enables us to build very sophisticated automated build pipelines very quickly.
___________ is an example of an ALM. o Jira o Jenkins o Cucumber o All of the aboe
Jira
SSO
Single Sign On Single sign-on (SSO) is a session and user authentication service that permits a user to use one set of login credentials (e.g., name and password) to access multiple applications
Releases
This is a process of delivering and providing the product to clients
JIRA Sprints and Fix versions are treated as Releases in Manager, when the Release Integration is active. True or Fasle
True
TEST SUITE
is a group of test cases;
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.
Bug or Defect
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.
Repositories
A source code repository is a file archive and web hosting facility where a large amount of source code, for software or for web pages, is kept, either publicly or privately. They are often used by open-source software projects and other multi-developer projects to handle various versions.
Version Control
A system for tracking changes in computer files and coordinating work on those files among multiple people.
Quality Audit
A systematic and independent examination to determine whether quality activities and related results comply with planned arrangements and whether these arrangements are implemented effectively and are suitable to achieve objectives.
Framework
A test automation framework is an integrated system that sets the rules of automation of a specific product. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled to represent a business process. The framework provides the basis of test automation and simplifies the automation effort.
Test Case
A test case is a specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise a particular program path or to verify compliance with a specific requirement.
Capture/Replay Tool
A test tool that records test input as it is sent to the software under test. The input cases stored can then be used to reproduce the test at a later time. Most commonly applied to GUI test tools.
Ad Hoc Testing
A testing phase where the tester tries to 'break' the system by randomly trying the system's functionality. Can include negative testing as well. See also Monkey Testing.
Security Testing
A type of software testing that intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders
Smoke Testing
A quick-and-dirty test that the major functions of a piece of software work. Originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch on fire.
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.
Software Testing
Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product.
Testing
Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect free in order to produce the quality product.
HPQC - HP ALM & HP Quality Center
ALM Tool HP ALM is the premier version of HP QC. ALM allows for asset sharing and reuse. Test Management Tool - A web based tool that helps organizations to manage the application lifecycle right from project planning, requirements gathering, until Testing & deployment,
API Testing
API testing is a type of software testing that involves testing application programming interfaces (APIs) directly and as part of integration testing to determine if they meet expectations for functionality, reliability, performance, and security.
Active Directory
Active Directory Domain Services is called a domain controller. It authenticates and authorizes all users and computers in a Windows domain type network—assigning and enforcing security policies for all computers and installing or updating software.
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.
Explain the difference between Waterfall and Agile environments.
Agile - short cycles of work - usually 2 - 4 weeks, multiple items at a time; incremental, iterative work sequences (sprints); many frequent releases Waterfall - very rigid, sequential development schedule, everything planned in advance, no phases started until the previous stage is completed. limited releases
Agile
Agile is a testing methodology that is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.
Agile Testing
Agile is a testing methodology that is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. Instead of betting everything on a "big bang" launch, an agile team delivers work in small, but consumable, increments. Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.
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)
What is the difference between a Kanban and Scrum Project in JIRA?
Both are Agile frameworks. Kanban is priority based and focuses on the visual Kanban board Scrum is based on time and resources - quick sprints of work
Sanity Testing
Brief test of major functional elements of a piece of software to determine if its basically operational. See also Smoke Testing.
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.
A Build
Build is the process of creating the application program for a software release, by taking all the relevant source code files and compiling them and then creating a build artifacts, such as binaries or executable program, etc. Is an activity to translate the human-readable source code into the efficient executable program. The process of building a computer program is usually managed by a build tool, a program that coordinates and controls other programs.
Explain how Sprint(s) relate(s) to Fix versions/Releases in JIRA.
Sprints are used in Agile development to define the time period (development cycle) for completion of the work that is needed to deliver a fix and/or enhancements that are are being included in a release or fix version. Sprints and Fix Versions are treated as releases in qTest.
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;
Stress testing
Stress testing - performed to determine system behavior under an extreme load (kind of Performance testing). Will the system performs properly "under stress"?
Stress Testing
Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how. Often this is performance testing using a very high level of simulated load.
Automated Testing
Testing employing software tools which execute tests without manual intervention. Can be applied in GUI, performance, API, etc. testing. The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.
Branch Testing
Testing in which all branches in the program source code are tested at least once.
Data Driven Testing
Testing in which the action of a test case is parameterized by externally defined data values, maintained as a file or spreadsheet. A common technique in Automated Testing.
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).
Test Driven Development
Testing methodology associated with Agile Programming in which every chunk of code is covered by unit tests, which must all pass all the time, in an effort to eliminate unit-level and regression bugs during development. Practitioners of TDD write a lot of tests, i.e. an equal number of lines of test code to the size of the production code.
Beta Testing
Testing of a release of a software product conducted by customers.
Integration Testing
Testing of combined parts of an application to determine if they function together correctly. Usually performed after unit and functional testing. This type of testing is especially relevant to client/server and distributed systems.
Component Testing
Testing of individual software components (Unit Testing).
Unit Testing
Testing of individual software components.
System Testing
Testing that attempts to discover defects that are properties of the entire system rather than of its individual components.
Automated Testing
Testing that utilizes software tools which execute tests without manual intervention. Can be applied in GUI, performance, API, etc. testing. The use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions.
Usability Testing
Testing the ease with which users can learn and use a product.
Functional Testing
Testing the features and operational behavior of a product to ensure they correspond to its specifications. Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions. or Black Box Testing.
data - driven automation?
Testing the functionality with more test cases becomes laborious as the functionality grows. For multiple sets of data (test cases), you can execute the test once in which you can figure out for which data it has failed and for which data, the test has passed. This feature is available in the WinRunner with the data driven test where the data can be taken from an excel sheet or notepad.
Testing Tools
Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection (consider parsing or polling agents equipped with test oracles), defect logging, etc., without necessarily automating tests in an end-to-end fashion.
SDLC - Environments
Tests may occur in the following hardware and software environment types: ● Development; ● QA environment; ● Staging; ● Production; etc.
LDAP
The Lightweight Directory Access Protocol (LDAP) is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network.[1] Directory services play an important role in developing intranet and Internet applications by allowing the sharing of information about users, systems, networks, services, and applications throughout the network.[
Coding
The generation of source code.
Test Environment
The hardware and software environment in which tests will be run, and any other software with which the software under test interacts when under test including stubs and test drivers.
Quality Control
The operational techniques and the activities used to fulfill and verify requirements of quality.
Baseline
The point at which some deliverable produced during the software engineering process is put under formal change control.
Verification
The process of determining whether of not the products of a given phase of the software development cycle meet the implementation steps and can be traced to the incoming objectives established during the previous phase. The techniques for verification are testing, inspection and reviewing.
Validation
The process of evaluating software at the end of the software development process to ensure compliance with software requirements. The techniques for validation is testing, inspection and reviewing.
Debugging
The process of finding and removing the causes of software failures.
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
Use Case
The specification of tests that are conducted from the end-user perspective. Use cases tend to focus on operating software as an end-user would conduct their day-to-day activities.
Sprint refers to __________. o The conditions that exist to build the requirement o The subtasks that need to be completed before the requirement is met. o The time it will take to complete the requirement. o None of the above.
The time it will take to complete the requirement.
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
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.
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;
What is the most frequently executed type of testing?
release/build acceptance (every build) next one is regression
Does automation replace manual testing?
There can be some functionality which cannot be tested in an automated tool so we may have to do it manually. therefore manual testing can never be replaced. (We can write the scripts for negative testing also but it is hectic task).When we talk about real environment we do negative testing manually.
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?
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.
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.
Accessibility Testing
Verifying a product is accessible to the people having disabilities (deaf, blind, mentally disabled etc.).
Volume testing
Volume testing (part of stress testing) performed to determine system behavior with a defined amount of data (dB size, etc.)
Development Methodologies
Waterfall (Traditional-sequential) Agile/Extreme: (extreme programming)
Can test automation improve test effectiveness?
Yes, Automating a test makes the test process: 1.Fast 2.Reliable 3. Repeatable 4.Programmable 5.Reusable 6.Comprehensive
Parser
A parser is a piece of code whose job is to validate the syntax of a piece of text and break it down into its "grammatical" structure. A parser is usually one part of the process of compiling a higher level programming language into the actual instructions that a computer can execute.
Release Candidate
A pre-release version, which contains the desired functionality of the final version, but which needs to be tested for bugs (which ideally should be removed before the final version is released).
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
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
Test Suite
A collection of tests used to validate the behavior of a product. The scope of a Test Suite varies from organization to organization. There may be several Test Suites for a particular product for example. In most cases however a Test Suite is a high level concept, grouping together hundreds or thousands of tests related by what they are intended to test.
Gray Box Testing
A combination of Black Box and White Box testing methodologies? testing a piece of software against its specification but using some knowledge of its internal workings.
Software Requirements Specification
A deliverable that describes all data, functional and behavioral requirements, all constraints, and all validation requirements for software
Traceability Matrix
A document showing the relationship between Test Requirements, Test Cases and defects.
Test Specification
A document specifying the test approach for a software feature or combination or features and the inputs, predicted results and execution conditions for the associated tests.
Application Programming Interface (API)
A formalized set of software calls and routines that can be referenced by an application program in order to access supporting system or network services.
Component
A minimal software item for which a separate specification is available.
Quality Assurance
All those planned or systematic actions necessary to provide adequate confidence that a product or service is of the type and quality needed and expected by the customer.
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)
Jenkins
CI/Build Tool Jenkins is an open source automation server written in Java. It is used to build and test software projects continuously making it easier to integrate changes to the project. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache
Maven
CI/Build Tool Maven is a build automation tool used primarily for Java projects. Maven addresses two aspects of building software: first, it describes how software is built, and second, it describes its dependencies. Can also be used to build and manage projects written in C#, Ruby, Scala, and other languages.
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.
GitLab
Code Repository a web-based repository manager that lets teams collaborate on code, duplicate code to safely create and edit new projects, then merge finished code into existing projects.
Bitbucket
Code Repository web-based version control repository. Can plan projects, collaborate on code, test, and deploy.
Hipchat
Collaboration Tool Allows for channel based conversations and notifications
Skype
Collaboration Tool Allows for channel based conversations and notifications
Slack
Collaboration Tool Allows for channel based conversations and notifications
Confluence
Collaboration Tool Atlassian's collaboration tool used to help teams to collaborate and share knowledge efficiently. Users can create pages and blogs which can be commented on and edited by all members of the team. Confluence has also been designed to integrate with Jira and they have many integration points, giving Confluence users the ability to view, interact with, and reference Jira issues
Test Script
Commonly used to refer to the instructions for a particular test that will be carried out by an automated test tool.
Recovery Testing
Confirms that the program recovers from expected or unexpected events without loss of data or functionality. Events can include shortage of disk space, unexpected loss of communication, or power out conditions.
Continuous Integration
Continuous Integration server. Basically, Continuous Integration is the practice of running your tests on a non-developer machine automatically everytime someone pushes new code into the source repository. Continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. CI Tools facilitate this process by allowing developers to put together repositories with frameworks and build tools. The main goals of CI are: Maintain a code repository, Automate the build, Make the build self-testing, Everyone commits to the baseline every day, Every commit (to baseline) should be built, Keep the build fast, Test in a clone of the production environment, Make it easy to get the latest deliverables.
Dynamic Testing
Dynamic Testing - actually executing program code using set of test cases or other way.
_________________ is an out-of-the-box issue type in JIRA. o Epic o Requirement o Defect o All of the Above
Epic
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 are main benefits of test automation?
FAST ,RELIABLE,COMPREHENSIVE,REUSABLE
If you are practicing Waterfall, you are most likely using Sprints in JIRA. True or False
False
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.
Non-Functional
How the system works? Reliability, usability, maintainability, compatibility, response times, capacity for performance testing, etc.
Explain how using the "Auto-populate requirement in Release Scope" option helps your organize your data in Manager.
Maintain traceability for reporting purposes
CA Agile Central
Planning | ALM & Issue Management used in Agile testing - is used for requirements and issue tracking as well as agile project management
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.
Integration testing
Integration testing is the phase of testing when units are combined together into the main software package and tested as a group.
Load testing
Load testing (simplest) - performed to determine system behavior under an expected load (kind of Performance testing).
Load Testing
Load testing is a kind of Performance Testing which determines a system's performance under real-life load conditions. This testing helps determine how the application behaves when multiple users access it simultaneously. This testing usually identifies - The maximum operating capacity of an application.
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
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;
Scalability Testing
Performance testing focused on ensuring the application under test gracefully handles increases in work load.
Performance Testing
Performance testing is the process of determining the speed, responsiveness, and stability of a computer, network, software program or device under a workload.
Code Complete
Phase of development where functionality is implemented in entirety; bug fixes are all that are left. All functions found in the Functional Specifications have been implemented.
Jira
Planning | ALM & Issue Management Jira - used in Agile testing - is used for requirements and issue tracking as well as agile project management
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);
Difference between QA and testing
QA is more a preventive thing, ensuring quality in the company and therefore the product rather than just testing the product for software bugs? TESTING means 'quality control' QUALITY CONTROL measures the quality of a product QUALITY ASSURANCE measures the quality of processes used to create a quality product.
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
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).
Selenium
Test Automation & Framework Tool An automated testing tool for web applications that allows you to do simple record-and-playback of interactions with the browser. Selenium Framework - A test automation framework is an integrated set of technologies, tools, processes and patterns. The framework provides a platform to implement data driven and Hybrid - keyword + data driven - framework by spreadsheet template. It can be used in your current automation project. It increases automation efficiency by minimizing initial coding effort. It is a script-less framework used for test automation of web applications that are developed on .Net, Java / J2EE, AJAX.
Tricentis Tosca
Test Automation Tool A functional testing tool that is used to automate end-to-end testing for software applications.
UFT (Unified Functional Testing
Test Automation Tool An automation functional testing tool used primarily for functional and regression testing. You can automate user actions on a web or client based computer application and test the same actions for different users, different data set, on various Windows operating systems and/or different browsers.
Cucumber
Test Automation Tool Open Source Used for testing Software Runs Automated acceptance tests written in behavior driven-development style Central to BDD
NeoLoad by Neotys
Test Automation Tool Tests the performance of web applications using customizable scenarios for load and stress. Automated Load Testing tool enabling you to run Continuous Performance Testing on all your applications & APIs.
Software Testing Documentation Terms
Test Plan; Test Cases; Test Suite; Test Strategy; Traceability Matrix; Test Script; etc.
JUnit
Testing Framework JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development
TestNG
Testing Framework TestNG is a testing framework for the Java Programming language, inspired from JUnit and NUnit
End-to-End Testing
Testing a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.
Negative Testing
Testing aimed at showing software does not work. Also known as "test to fail". See also Positive Testing.
White Box Testing
Testing based on an analysis of internal workings and structure of a piece of software. Includes techniques such as Branch Testing and Path Testing. Also known as Structural Testing and Glass Box Testing. Contrast with Black Box Testing. White box testing is used to test the internal logic of the code for ex checking whether the path has been executed once, checking whether the branches has been executed at least once .....Used to check the structure of the code.
Structural Testing
Testing based on an analysis of internal workings and structure of a piece of software. See also White Box Testing.
Black Box Testing
Testing based on an analysis of the specification of a piece of software without reference to its internal workings. The goal is to test how well the component conforms to the published requirements for the component.
Acceptance Testing
Testing conducted to enable a user/customer to determine whether to accept a software product. Normally performed to validate the software meets a set of agreed acceptance criteria.
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.
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?
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
White box
White box testing is done with access to the code. Bugs are reported at the source code level, not behavioral.
Why Test Cases?
• Better testing coverage; • Reusable; • Reviewable; • Traceable - know what is tested; • Tracking test results;
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