Saturday, June 27, 2009

QA - Quality Assurance and Software Testing

What is Software Quality Assurance?
Quality Assurance makes sure the project will be completed based on the previously agreed specifications, standards and functionality required without defects and possible problems. It monitors and tries to improve the development process from the beginning of the project to ensure this. It is oriented to "prevention".
When should QA testing start in a project? Why?
QA is involved in the project from the beginning. This helps the teams communicate and understand the problems and concerns, also gives time to set up the testing environment and configuration. On the other hand, actual testing starts after the test plans are written, reviewed and approved based on the design documentation.
What is Software Testing?
Software testing is oriented to "detection". It's examining a system or an application under controlled conditions. It's intentionally making things go wrong when they should not and things happen when they should not.
What is Software Quality?
Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable.
What is Verification and Validation?
Verification is preventing mechanism to detect possible failures before the testing begin. It involves reviews, meetings, evaluating documents, plans, code, inpections, specifications etc. Validation occurs after verification and it's the actual testing to find defects against the functionality or the specifications.
What is Test Plan?
Test Plan is a document that describes the objectives, scope, approach, and focus of a software testing effort.
What is Test Case?
A test case is a document that describes an input, action, or event and an expected response, to determine if a feature of an application is working correctly. A test case should contain particulars such as test case identifier, test case name, objective, test conditions/setup, input data requirements, steps, and expected results.
What is Good Code?
Good code is code that works according to the requirements, bug free, readable, expandable in the future and easily maintainable.
What is Good Design?
In good design, the overall structure is clear, understandable, easily modifiable, and maintainable. Works correctly when implemented and functionality can be traced back to customer and end-user requirements.
Who is Good Test Engineer?
Good test engineer has the ability to think the unthinkable, has the test to break attitute, strong desire to quality and attention to detail.
What is Walkthrough?
Walkthrough is quick and informal meeting for evaluation purposes.
What is Software Life Cycle?
The Software Life Cycle begins when an application is first conceived and ends when it is no longer in use. It includes aspects such as initial concept, requirements analysis, functional design, internal design, documentation planning, test planning, coding, document preparation, integration, testing, maintenance, updates, retesting, phase-out, and other aspects.
What is Inspection?
The purpose of inspection is trying to find defects and problems mostly in documents such as test plans, specifications, test cases, coding etc. It helps to find the problems and report it but not to fix it. It is one of the most cost effective methods of software quality. Many people can join the inspections but normally one moderator, one reader and one note taker are mandatory.
What are the benefits of Automated Testing?
It's very valuable for long term and on going projects. You can automize some or all of the tests which needs to be run from time to time repeatedly or diffucult to test manually. It saves time and effort, also makes testing possible out of working hours and nights. They can be used by different people and many times in the future. By this way, you also standardize the testing process and you can depend on the results.
What do you imagine are the main problems of working in a geographically distributed team?
The main problem is the communication. To know the team members, sharing as much information as possible whenever you need is very valuable to solve the problems and concerns. On the other hand, increasing the wired communication as much as possible, seting up meetings help to reduce the miscommunication problems.
What are the common problems in Software Development Process?
Poor requirements, unrealistic schedule, inadequate testing, miscommunication and additional requirement changes after development begin.

No comments: