Q: What if an organization is growing so fast that fixed QA processes are
impossible?
A: This is a common problem in the software industry, especially in new
technology areas. There is no easy solution in this situation, other than...
· Hire good people (i.e. hire Rob Davis)
· Ruthlessly prioritize quality issues and maintain focus on the customer;
· Everyone in the organization should be clear on what quality means to the
customer.
Q: What is quality assurance?
A: Quality Assurance ensures all parties concerned with the project adhere to
the process and procedures, standards and templates and test readiness
reviews.
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.
Q: How is testing affected by object-oriented designs?
A: A well-engineered object-oriented design can make it easier to trace from
code to internal design to functional design to requirements. While there will
be little affect on black box testing (where an understanding of the internal
design of the application is unnecessary), white-box testing can be oriented
to the application's objects. If the application was well designed this can
simplify test design.
Q: Why do you recommended that we test during the design phase?
A: Because testing during the design phase can prevent defects later on. I
recommend we verify three things...
Verify the design is good, efficient, compact, testable and maintainable.
Verify the design meets the requirements and is complete (specifies all
relationships between modules, how to pass data, what happens in exceptional
circumstances, starting state of each module and how to guarantee the state of
each module).
Verify the design incorporates enough memory, I/O devices and quick enough
runtime for the final product.
Q: What is software quality assurance?
A: Software Quality Assurance (SWQA) when Rob Davis does it is oriented to
*prevention*. It involves the entire software development process. Prevention
is monitoring and improving the process, making sure any agreed-upon standards
and procedures are followed and ensuring problems are found and dealt with.
Software Testing, when performed by Rob Davis, is also oriented to
*detection*. Testing involves the operation of a system or application under
controlled conditions and evaluating the results. Organizations vary
considerably in how they assign responsibility for QA and testing. Sometimes
they are the combined responsibility of one group or individual. Also common
are project teams, which include a mix of test engineers, testers and
developers who work closely together, with overall QA processes monitored by
project managers. It depends on what best fits your organization's size and
business structure. Rob Davis can provide QA and/or SWQA. This document
details some aspects of how he can provide software testing/QA service. For
more information, click here <mailto:%20rob@robdavispe.com> to send e-mail.
Q: Processes and procedures - why follow them?
A: Detailed and well-written processes and procedures ensure the correct steps
are being executed to facilitate a successful completion of a task. They also
ensure a process is repeatable. Once Rob Davis has learned and reviewed
customer's business processes and procedures, he will follow them. He will
also recommend improvements and/or additions.
Q: Standards and templates - what is supposed to be in a document?
A: All documents should be written to a certain standard and template.
Standards and templates maintain document uniformity. It also helps in
learning where information is located, making it easier for a user to find
what they want. Lastly, with standards and templates, information will not be
accidentally omitted from a document. Once Rob Davis has learned and reviewed
your standards and templates, he will use them. He will also recommend
improvements and/or additions.
Q: What are the different levels of testing?
A: Rob Davis has expertise in testing at all testing levels listed in the
these FAQs. At each test level, he documents the results. Each level of
testing is either considered black or white box testing.
Q: What is black box testing?
A: Black box testing is functional testing, not based on any knowledge of
internal software design or code. Black box testing is based on requirements
and functionality.
Q: What is white box testing?
A: White box testing is based on knowledge of the internal logic of an
application's code. Tests are based on coverage of code statements, branches,
paths and conditions.
Q: What is unit testing?
A: Unit testing is the first level of dynamic testing and is first the
responsibility of developers and then that of the test engineers. Unit testing
is performed after the expected test results are met or differences are
explainable/acceptable.
Q: What is incremental integration testing?
A: Incremental integration testing is continuous testing of an application as
new functionality is recommended. This may require that various aspects of an
application's functionality are independent enough to work separately, before
all parts of the program are completed, or that test drivers are developed as
needed. This type of testing may be performed by programmers, software
engineers, or test engineers.
Q: What is parallel/audit testing?
A: Parallel/audit testing is testing where the user reconciles the output of
the new system to the output of the current system to verify the new system
performs the operations correctly.
Q: What is functional testing?
A: Functional testing is black-box type of testing geared to functional
requirements of an application. Test engineers should perform functional
testing.
Q: What is usability testing?
A: Usability testing is testing for 'user-friendliness'. Clearly this is
subjective and depends on the targeted end-user or customer. User interviews,
surveys, video recording of user sessions and other techniques can be used.
Test engineers are needed, because programmers and developers are usually not
appropriate as usability testers.
Q: What is integration testing?
A: Upon completion of unit testing, integration testing begins. Integration
testing is black box testing. The purpose of integration testing is to ensure
distinct components of the application still work in accordance to customer
requirements. Test cases are developed with the express purpose of exercising
the interfaces between the components. This activity is carried out by the
test team. Integration testing is considered complete, when actual results and
expected results are either in line or differences are explainable/acceptable
based on client input.
Q: What is system testing?
A: System testing is black box testing, performed by the Test Team, and at the
start of the system testing the complete system is configured in a controlled
environment. The purpose of system testing is to validate an application's
accuracy and completeness in performing the functions as designed. System
testing simulates real life scenarios that occur in a "simulated real life"
test environment and test all functions of the system that are required in
real life. System testing is deemed complete when actual results and expected
results are either in line or differences are explainable or acceptable, based
on client input.
Upon completion of integration testing, system testing is started. Before
system testing, all unit and integration test results are reviewed by SWQA to
ensure all problems have been resolved. For a higher level of testing it is
important to understand unresolved problems that originate at unit and
integration test levels.
Q: What is regression testing?
A: The objective of regression testing is to ensure the software remains
intact. A baseline set of data and scripts is maintained and executed to
verify that changes introduced during the release have not "undone" any
previous code. Expected results from the baseline are compared to results of
the software under test. All discrepancies are highlighted and accounted for,
before testing proceeds to the next level.
Q: What is end-to-end testing?
A: End-to-end testing is similar to system testing, the *macro* end of the
test scale; it is the testing a complete application in a situation that
mimics real life use, such as interacting with a database, using network
communication, or interacting with other hardware, application, or system.
Q: What is sanity testing?
A: Sanity testing is a cursory testing; it is performed whenever a cursory
testing is sufficient to prove the application is functioning according to
specifications. This level of testing is a subset of regression testing. It
normally includes a set of core tests of basic GUI functionality to
demonstrate connectivity to the database, application servers, printers, etc.
Q: What is performance testing?
A: Performance testing verifies loads, volumes and response times, as defined
by requirements. Although performance testing is a part of system testing, it
can be regarded as a distinct level of testing.
Q: What is load testing?
A: Load testing is testing an application under heavy loads, such as the
testing of a web site under a range of loads to determine at what point the
system response time will degrade or fail. ws
NEXT