Thursday, April 8, 2010
What is CMM?
What is ad hoc testing?
Ad hoc testing is a commonly used term for software testing performed without planning and documentation.
The tests are intended to be run only once, unless a defect is discovered.
Ad hoc testing is a testing approach; it is the least formal testing approach.
What is boundary value analysis?
What is quality assurance?
Rob Davis’ QA service depends on the customers and projects. A lot will depend on team leads or managers, feedback to developers and communications among customers, managers, developers’ test engineers and testers.
What is software quality assurance?
What can be done if requirements are changing continuously?
· Ensure the code is well commented and well documented; this makes changes easier for the developers.
· Use rapid prototyping whenever possible; this will help customers feel sure of their requirements and minimize changes.
· In the project’s initial schedule, allow for some extra time to commensurate with probable changes.
· Move new requirements to a ‘Phase 2′ version of an application and use the original requirements for the ‘Phase 1′ version.
· Negotiate to allow only easily implemented new requirements into the project; move more difficult, new requirements into future versions of the application.
· Ensure customers and management understand scheduling impacts, inherent risks and costs of significant requirements changes. Then let management or the customers decide if the changes are warranted; after all, that’s their job.
· Balance the effort put into setting up automated testing with the expected effort required to redo them to deal with changes.
· Design some flexibility into automated test scripts;
· Focus initial automated testing on application aspects that are most likely to remain unchanged;
· Devote appropriate effort to risk analysis of changes, in order to minimize regression-testing needs;
· Design some flexibility into test cases; this is not easily done; the best bet is to minimize the detail in the test cases, or set up only higher-level generic-type test plans;
· Focus less on detailed test plans and test cases and more on ad-hoc testing with an understanding of the added risk this entails.
How do you know when to stop testing?
Deadlines, e.g. release deadlines, testing deadlines;
Test cases completed with certain percentage passed;
Test budget has been depleted;
Coverage of code, functionality, or requirements reaches a specified point;
Bug rate falls below a certain level; or
Beta or alpha testing period ends.
What if the software is so buggy it can’t be tested at all?
What is configuration management?
What should be done after a bug is found?
What is a test plan?
What is the role of documentation in QA?
What makes a good QA engineer?
What makes a good test engineer?
Has a “test to break” attitude,
Takes the point of view of the customer,
Has a strong desire for quality,
Has an attention to detail, He’s also
Tactful and diplomatic and
Has good a communication skill, both oral and written. And he
Has previous software development experience, too.
Give me five solutions to problems that occur during software development.
Ensure the requirements are solid, clear, complete, detailed, cohesive, attainable and testable. All players should agree to requirements. Use prototypes to help nail down requirements.
Have schedules that are realistic. Allow adequate time for planning, design, testing, bug fixing, re-testing, changes and documentation. Personnel should be able to complete the project without burning out.
Do testing that is adequate. Start testing early on, re-test after fixes or changes, and plan for sufficient time for both testing and bug fixing.
Avoid new features. Stick to initial requirements as much as possible. Be prepared to defend design against changes and additions, once development has begun and be prepared to explain consequences. If changes are necessary, ensure they’re adequately reflected in related schedule changes. Use prototypes early on so customers’ expectations are clarified and customers can see what to expect; this will minimize changes later on.
Communicate. Require walkthroughs and inspections when appropriate; make extensive use of e-mail, networked bug-tracking tools, tools of change management. Ensure documentation is available and up-to-date. Use documentation that is electronic, not paper. Promote teamwork and cooperation.
Do automated testing tools make testing easier?
Give me five common problems that occur during software development.
The schedule is unrealistic if too much work is crammed in too little time.
Software testing is inadequate if none knows whether or not the software is any good until customers complain or the system crashes.
It’s extremely common that new features are added after development is underway.
Miscommunication either means the developers don’t know what is needed, or customers have unrealistic expectations and therefore problems are guaranteed.
How do you introduce a new software QA process?
Why are there so many software bugs?
There are unclear software requirements because there is miscommunication as to what the software should or shouldn’t do.
Software complexity. All of the followings contribute to the exponential growth in software and system complexity: Windows interfaces, client-server and distributed applications, data communications, enormous relational databases and the sheer size of applications.
Programming errors occur because programmers and software engineers, like everyone else, can make mistakes.
As to changing requirements, in some fast-changing business environments, continuously modified requirements are a fact of life. Sometimes customers do not understand the effects of changes, or understand them but request them anyway. And the changes require redesign of the software, rescheduling of resources and some of the work already completed have to be redone or discarded and hardware requirements can be effected, too.
Bug tracking can result in errors because the complexity of keeping track of changes can result in errors, too.
Time pressures can cause problems, because scheduling of software projects is not easy and it often requires a lot of guesswork and when deadlines loom and the crunch comes, mistakes will be made.
Code documentation is tough to maintain and it is also tough to modify code that is poorly documented. The result is bugs. Sometimes there is no incentive for programmers and software engineers to document their code and write clearly documented, understandable code. Sometimes developers get kudos for quickly turning out code, or programmers and software engineers feel they cannot have job security if everyone can understand the code they write, or they believe if the code was hard to write, it should be hard to read.
Software development tools , including visual tools, class libraries, compilers, scripting tools, can introduce their own bugs. Other times the tools are poorly documented, which can create additional bugs.
What is software life cycle?
What is good design?
What is good code?
What is quality?
What is an inspection?
What is a walkthrough?
What is validation?
What is verification?
Wednesday, April 7, 2010
What is a test case?
particular objective, such as to exercise a particular program path or to verify compliance
with a specific requirement.
Or it is the Documentation specifying inputs, predicted results, and a set
of execution conditions for a test item.