Sprint 1 Flashcards
Key Responsibilities of QA Engineers?
- Conducting requirements analyses
- Developing testing documentation
- Creating a testing environment and running tests
- Creating documentation for test results
What Hard Skills are important for QA Engineer?
- Strong knowledge of software testing types and applying different testing methodologies
- Understanding different SDLC models
- Strong knowledge of Agile/Scrum processes
- Ability to write effective bug reports
- Knowledge of all types of testing documents and the ability to create as well as work with them
- Ability to work with databases with SQL
- Ability to use various bug management tools like Jira
- Basic Knowledge of at least one coding language and version control system
- Basic understanding of CI/CD
- Good Command of other tools such as Devtools, proxy tools, and Postman
What soft skills are useful for a QA Engineer
- The ability to communicate effectively, justify point of view, ask effective questions, and clearly convey your ideas
- The ability to plan and manage tasks well, stay organized, pay attention to detail and focus on deadlines/deliverables
- Possessing strong analytical and problem-solving skills
- Displaying a professional, positive, and approachable attitude
- Technical experience and strong command of industry trends
Lifecycle of a Development Task steps
- Setting the Task
* Product Owner or Analyst formulates task requirements - Estimation
* How much time is needed for each task - Production
* Team analyzes the requirements and layouts in detail
* Developers write code based on requirements
* QA Engineer designs test cases and checklists - Testing
* QA uses test cases to run tests
* Developers fix bugs that are found
What are a QA Engineer’s responsibilities for each step of the SDLC?
- Idea Creation:
* Graps the concept of the product
* Analyzes the product logic
* Helps find issues with logic
* Starts making a list of user scenarios to test - Requirement Formation:
* Analyzes the requirements for completeness, consistency, and testability
* Suggests improvements to facilitate the testing process
* Starts compiling the test documentation - Design:
* Make sure the project implementation corresponds to the original requirements
* Continues working on the test documentation
* Starts designing test cases for automation regarding app functionality
* Starts estimating the amount of testing required - Development and testing:
* Completes the test documentation
* Tests the product
* Takes part in designing automated tests
* Makes the final decision on whether the functionality is ready and officially signs off on the release - Product Release:
* Conducts regression, smoke, or sanity testing
* Checks that the product functions according to requirements in a prod environment
* Collects feedback from end users to find possible bugs that weren’t detected at the previous testing stages
* Retests bugs found in the production environment after they are fixed by developers - Support
* Processes feedback from product users: replicates, verifies, and retests after developers fix the bugs
* Tests upgrades, bug fixes, and new features
QA Perspective for Lifecycle of Tasks
- Planning testing process - testers look at requirements and evaluate how much time testing will take
- Test Analysis - Testers clarify requirements and layouts in detail to identify what needs to be tested
- Test Design- Testers create the necessary checklists and test cases
- Test Execution - Once the list of tests has been prepared, testing of the app can start
Software Development Life Cycle stages
- Idea Creation: the team investigates the market and forms hypotheses about the product.
- Requirement formation: specific requirements for the application are defined such as limitations of the system for example
- Design: The architecture of the future software is formulated.
- Development and testing: the application is created and going through the testing process
- Release: All the necessary steps have been completed and software is available to end users
- Maintenance: Team maintains the application’s functionality and fixes bugs on an ongoing basis
- Discontinuation: App becomes outdated and no longer supported
What is Sequential Development? Give an example
Software development style where the previous step of the SDLC has to be completed before the next can begin.
Example is the waterfall model
What are the Agile Principles
- Focus on responding to changes rather than following a plan
- Gather the project team on a daily basis and keep in touch with customers regularly
- Deliver working software as frequently as possible
Stages of Scrum Methodology
- Sprint planning- team agrees on their goals for the next sprint
- Development and testing - Team develops project, tests the software, then releases it
- Demonstration - Team presents their completed work to stakeholders
- Retrospective - team reflects on previous spring, what went well and what can be improved
What are the responsibilities of QA Engineer for each stage of Scrum
- Planning - Estimate the difficulty and amount of testing will be needed
- Tester compiles test documentation and test any new functionality for the first release
- Demo - QA should understand how the product will be used by end users
- Retrospective - team reflects on how the previous spring went
How is a task organized on a Kanban board?
Tasks are assigned a status that signifies the task’s current stage of progress
Breakdown a Version ID
Major version- first number in the ID, indicates global changes in the app
Minor version - second number in the ID, indicates when important updates have been made
Revision - third number in the ID, indicates when minor improvements have been made
What are builds?
When different developer’s code is all merged together
What is the relationship between Builds and Versions?
Once a build is ready to be released it is given a version ID
Define Manual Testing
When QA Engineer test the app themselves with no script
Define Automation
QA Engineer develops a program or script to perform the manual testing
Define Functional Testing
Focuses on testing the functionality of the product. I.E logic of the system, User interaction, data display, etc.
Define Non-functional Testing
Verifies the characteristics of a product that do not affect its functionality
Define New Feature Testing
Checking the revised parts, fixed bugs, and new abilities of an app once a new features has been added
Define Regression Testing
Verifies that all the old features are working as expected
Define Smoke Testing
Tester will check only the most important features. Ensures serious problems are discovered upfront
Define Extended Testing
App is tested using all the requirements from the documentation and team decides what features in particular are tested
Define Exhaustive Testing
All features of the app will be tested, usually saved for when the cost of each bug is high
Define Component Testing
The software is broken down into smaller components and the components are individually tested
Define Integration Testing
Checks how an app’s components interact with each other
Define System Testing
Checks how the overall app works by testing several components
Define Scripted Testing
When checklists and test cases are prepared beforehand. There is a plan in place
Define Exploratory Testing
When the app is tested and test documentation is written at the same time. No plan is in place
Define Black Box Testing
QA Engineer tests app with no access to the code itself. Understand how features work based on requirements
Define White-Box Testing
QA Engineer has access to the code and understand how features work
Define Gray-box Testing
Combo of black and white testing, usually will utilize external knowledge as well as knowledge of the code
Define Tour Testing
Structured approach to exploratory testing that organizes product exploration around a specific theme
Define Feature Tour
Test as many of the app features as possible
Define Variability Tour
Test different combinations of Settings for all elements that can be changed or customized
Complexity Tour
Performed to look for the most complex features and data
Define Interaction Tour
Test how different parts of software interact
Define Scenario Tour
Testers create user stories that mimic the realistic user-system interactions and plays them out
Define Structure Tour
Details the structure of the software(may include api, interface, hardware, etc)
Define Interoperability/Data tour
Checks how the system interacts with third parties