Documente Academic
Documente Profesional
Documente Cultură
3. If a person is not suitable for development for the same or similar reason, he or she may not
be suitable for testing either.
Testing is an activity that is closer to releasing the product to customers, it stands to reason that
some of the best talent in an organization be deployed to the testing functions and that these
functions should be treated on with other functions. Consider some of the causes and effects of such
messages
1
Filling up positions for testing should not be treated as a second string function.
A person should be assigned to testing only when he or she has the right aptitude and attitude
for testing. They should see a career path in testing, as much as developers look for a career
path in development.
The compensation schemes should not discriminate against any specific function or test
function.
Appropriate recognition should be given to the engineers who participate in activities such as
testing, maintenance and documentation.
4. Testing and development teams should reinforce each other and not be a loggerheads.
The main function of testing is to find defects in the product, it is easy for an adversary attitude to
develop between the testing team and the development team. The development team start viewing
the testing team as people, while testing team viewing the development teams as giving them
products that are not ready for prime time.
5. Testing is not what happens in the end of a project- it happens throughout and continues
even beyond a release.
Testing is still continued as a ‘end of life cycle’ activity. Some of the ways are:
Stipulating completion/acceptance criteria for a testing team to accept a product from the
development team.
Giving the testing team the freedom to mandate a minimum quality in the product before it
can be released.
A framework comprising three stages through which an individual goes through. They are:
Follow stage
Formulating stage
Influencing stage
Follow stage - At the beginning of the stag, the trust and confidence level between the individual and
the organization starts to evolve. At this stage, the tester work
Is fairly task oriented?
Comes with detailed instructions
Leaves little requirement for decision making
Formulating stage – the individual is ready to move from just executing tasks by following
instruction to formulating tasks, for himself or herself as well s for others. At this stage of the career,
the test engineer will focus on
Independent decision making
Clarity in communication to assign work for others
Interacting with other groups
When an individual reaches the formulating stage, he or she has demonstrated an ability to plan
ahead as well as delegate and monitor work.
Influencing stage – At this stage, individual plays a role model. Others in the organization feel
comfortable approaching these role models for advice and guidance for the chosen tasks. At this
stage, these role models are ready to assume additional responsibilities in other dimensions.
3
Responsibilities of a senior test engineer
Following the test processes for executing tests, maintaining tests and so on
Filing high quality defects, usable by developers
Categorizing defects
Adhering to schedules specified
Developing high quality documentation
Contribution to enhancing processes for testing
Generation of metrics related to testing
Organization structure can provide accountability to results. It can promote better teamwork among
the different components and create in better focus in the work. In addition, Organization structures
provide a road map for the team members to envision their carrier paths.
Organization can be classified in two dimensions:
Types of Organization
o Product Organization
o Service Organization
4
Geometric Distribution
o Single-Site Organization
o Multi-Site Organization
5
The model is shown below. In this figure, project manager handles part or all of a product. It offers
some advantages that are well suited for small organizations.
Exploits the rear-loading nature of testing activities
Enables engineers to gain experience in all aspects of life cycle
Is amenable to the fact the organization mostly only has informal processes
Some defects may be detected early
Accountability for testing and quality reduces
Developers do not in general like testing and hence the effectiveness
Schedule pressures generally compromise testing
Developers may not be able carry out the different types of tests
There are certain precautions that must be taken to make this model effective.
First, the project manager should not buckle under pressure and ignore the findings and
recommendations of the testing team by releasing product that fails the test criteria.
Second, the project manager must ensure that the development team and testing teams do not
view each other as adversaries.
Third, the testing team must participate in the project decision making and scheduling right
from the start.
3. Testing Services
Organization that provides services to the customer is known as service organization. Testing
Services helps customers on this front with its comprehensive range of solutions and services. Our
portfolio includes:
Business models like Testing as Managed Services (TMS)™ assuring measurable business
outcomes through improved quality processes
Investments in Specialized Testing practices comprising of Automation, Performance Testing ,
SOA Testing, Package Application Testing for ERP packages, Data Centric Testing covering
Test Data Management, Testing for Analytics, Cloud and Mobility, Test Environment
Management etc. for transforming critical processes
The account manager may be located close to the customer site or at the location of the testing
services organization. To develop better rapport, it requires frequent travel and café to face meetings
with the customer. Since, the testing services organization is a different entity from the customer, it is
physically in a separate location. The testing service organizes ist account tem as a near-site team
and a remote-site team. The near-site team is a small team. It is placed ar or near the customer
location.
8
The remote-team is located on the site of the testing services organization. This team is usually large
in number the team and does the bulk of work. The organization of this team depends on the size and
complexity of the testing project. The remote team manager manages the entire remote team and can
have peer-to-peer relationship with the near-site team.
4. Test Planning
9
2. Scope Management: deciding Features to be tested/Not tested
Scope Management pertains to specifying the scope of a project. It entails
Understanding what constitutes a release of a product
Breaking down the release into features
Prioritizing the features for testing
Deciding which features will be tested and which will not be
Gathering details to prepare for estimation of resources for testing
The testing team should get involved early in the planning cycle and understand the features.
Knowing the features and understanding them from the usage perspective will enable the testing
team to prioritize the features for testing. The following factors drive the choice and prioritization of
features to be tested.
Features that is new and critical for the release
Features whose failures can be catastrophic
Features that are expected to be complex to test
Features which are extensions of earlier features that have been defects prone
9. Communications Management
Communication Management consists of evolving and following procedures for communication that
ensure that everyone is kept in sync with the right level of detail. It should be manged by
Choice of standards
Test Infrastructure management
Test people Management
Integrating with product release
12
Risks are events could affect a project’s outcome. These events are normally beyond the control of
project manager. Risk management consists of
Identifying the possible risks
Quantifying the risks
Planning how to mitigate the risks
Responding to risks when they become a reality
Risk management which goes through the above four steps repeatedly.
Risk Examples
Unclear requirements
13
Schedule dependence
Insufficient time for testing
Show stopper defect
Availability of skilled and motivated people for testing
Inability to get a test automation toll
5. Test Management
Test management most commonly refers to the activity of managing the computer software testing
process. A test management tool is software used to manage tests (automated or manual) that have
been previously specified by a test procedure. It is often associated with automation software. Test
management tools often include requirement and/or specification management modules that allow
automatic generation of the requirement test matrix (RTM), which is one of the main metrics to
indicate functional coverage of a system under test (SUT).
1. Choice of standards
Standards comprise an important part of planning in any organization. Standards are of two types.
• External Standards
• Internal Standards
(i) External Standards are standards that a product should comply with are externally visible and
are usually stipulated by external consortia. These standards include standard tests supplied by
external consortia and acceptance tests supplied by customers.
(ii) Internal Standards are standards formulated by a testing organization to bring in consistency
and predictability. They standardize the processes and methods of working within the organization.
Some of the internal standards are:
Naming and Storage conventions for test artifacts
Document standards
Test coding standards
Test reporting standards
Document standards
It includes
Appropriate header level comments at the beginning of the file that outlines the functions to
be served by the test
Sufficient in-line comments, spread throughout the file, explaining the functions served by the
various part of a test script.
Up-to-date change history information, recording all the changes made to the test file
14
Test coding standards
It go one level deeper into the tests and enforce standards on how the tests themselves are written. It
may:
Enforce the right type of initialization and cleanup that the tests should do to make the results
independent of other tests
Stipulate ways of naming variables within the scripts to make sure that a reader understands
consistently the purpose of a variable
Encourage reusability of test artifacts
Provide standard interfaces to external entities like operating system, hardware and so on.
A test case database captures all the relevant information about the test cases in an organization.
Some of the entities and attributes in each of the entities in such a TCDB are:
Test case
Test case-product cross reference
Test case run history
Test case- defect cross reference
15
Defect repository captures all the relevant information of defect repository for a product. The
information that a defect repository includes
Defect details
Defect test detail
Fix details
Communication
Configuration Management (CM) repository keeps track of change control and version control of
all the files/entities that make up a software product. Change control ensures that
Changes to test files are made in a controlled fashion and only with proper approvals
Change are made by one test engineer are not accidently lost or overwritten by other changes
Each change produces distinct version of the file that is re-creatable at any point of time
Everyone gets access to only the most recent version of the test files.
6. Test process
16
Testing is a process rather than a single activity. This process starts from test planning then
designing test cases, preparing for execution and evaluating status till the test closure. So, we can
divide the activities within the fundamental test process into the following basic steps:
17
Effort involved in automation
Amount of manual intervention required for the test
Cost of automation tool
Automation testing which is also known as Test Automation is when the tester writes scripts and
uses software to test the software. This process involves automation of a manual process.
Automation Testing is used to re-run the test scenarios that were performed manually, quickly and
repeatedly.
Test automation is the use of special software (separate from the software being tested) to control
the execution of tests and the comparison of actual outcomes with predicted outcomes. Test
automation can automate some repetitive but necessary tasks in a formalized testing process already
in place, or add additional testing that would be difficult to perform manually.
Automated software testing is a process in which software tools execute pre-scripted tests on a
software application before it is released into production. Automated testing tools are capable of
executing tests, reporting outcomes and comparing results with earlier test runs. Tests carried out
with these tools can be run repeatedly, at any time of day. The objective of automated testing is to
simplify as much of the testing effort as possible with a minimum set of scripts. If unit testing
consumes a large percentage of a quality assurance (QA) team's resources, for example, then this
process might be a good candidate for automation.
The method or process being used to implement automation is called a test automation framework.
Several frameworks have been implemented over the years by commercial vendors and testing
organizations. Automating tests with commercial off-the-shelf (COTS) or open source software can
be complicated, however, because they almost always require customization. In many organizations,
automation is only implemented when it has been determined that the manual testing program is not
meeting expectations and it is not possible to bring in more human testers.
What to automate?
It is not possible to automate everything in the Software; however the areas at which user can make
transactions such as login form or registration forms etc, any area where large amount of users. can
access the Software simultaneously should be automated. Furthermore all GUI items, connections
with databases, field validations etc can be efficiently tested by automating the manual process.
19
When to automate?
Test Automation should be uses by considering the following for the Software:
Large and critical projects.
Projects that require testing the same areas frequently.
Requirements not changing frequently.
Accessing the application for load and performance with many virtual users.
Stable Software with respect to manual testing.
Availability of time.
How to automate?
Automation is done by using a supportive computer language like vb scripting and an automated
software application. There are a lot of tools available which can be use to write automation scripts.
Before mentioning the tools lets identify the process which can be used to automate the testing:
Identifying areas within a software for automation.
Selection of appropriate tool for Test automation.
Writing Test scripts.
Development of Test suits.
Execution of scripts.
Create result reports.
Identify any potential bug or performance issue.
Advantages
Automation serves time as software can execute test cases faster than human do
Test automation can free the test engineers from mundane tasks and make them focus on
creative tasks
Automated tests can be more reliable
Automation helps in immediate testing
Automation can protect an organization against attrition of test engineers
Test automation opens up opportunities for better utilization of global resources
Certain types of testing cannot be executed without automation
Automation means end to end, not execution alone
The skills required depends on what generation of automation the company is in.
1) Capture / playback and test harness tools (first generation).
2) Data driven tools (second generation).
3) Action driven (third generation).
The three generations upon which the skills depend are described below one by one
A non-intrusive capture / playback tool on the other hand, reside on the separate machine and is
connected to the machine containing software to be tested using special hardware. One advantage of
20
these tools is to capture errors which users frequently make and which developers cannot
reproduce.
Test harness tools are the category of capture / playback tools used for capturing and replaying
sequence of tests. These tools enable running large volume of tests unattended and help in
generating reports by using comparators. These tools are very important at CMM level - 2 and above.
2) Data-driven Tools:
This method help in developing test scripts that generates the set of input conditions and
corresponding expected output. The approach takes as much time and effort as the product.
However, changes to application do not require the automated test cases to be changed as long as the
input conditions and expected output are still valid. This generation of automation focuses on input
and output conditions using the black box testing approach.
3) Action-driven Tools:
This technique enables a layman to create automated tests. There are no input and expected output
conditions required for running the tests. All actions that appear on the application are automatically
tested, based on a generic set of controls defined for automation. From the above approaches /
generations of automation, it is clear that different levels of skills are needed based on the generation
of automation selected.
3. Scope of Automation
Automation is the process of evaluating the AUT (Application under Test) against the specification
with the help of a tool. In this article we are going to discuss the Scope of automation in testing.
Depending on the nature of testing there are two main branches under automation.
Functional testing with automation.
Performance testing with automation.
21
Stress, reliability, scalability and performance testing – These types of testing require the test
cases to be run from a large number of different machines for an extended period of time,
such as 24 hours, 48 hours and so on. Test cases belonging to these testing types become the
first candidates for automation.
Regression tests - Regression tests are repetitive in nature. These test cases are executed
multiple times during the product development phases. Given the repetitive nature of test
cases, automation will save significant time and effort in the long run.
Functional tests – These kinds of tests may require a complex set up and thus require
specialized skill, which may not available on an ongoing basis.
Design and architecture is an important aspect of automation. The design has to represent all
requirements in modules and in the interactions between modules. Internal interfaces and external
interfaces have to be captured by the design and architecture. Architecture for test automation
involves two major heads:
Test infrastructure that covers a test case database
Defect database or defect repository.
1. External Modules
There are two modules that are external modules and internal modules to automation – TCDB and
defect DB. A test case database captures all the relevant information about the test cases in an
organization. Some of the entities and attributes in each of the entities in such a TCDB are:
Test case
Test case-product cross reference
Test case run history
Test case- defect cross reference
22
Defect repository captures all the relevant information of defect repository for a product. The
information that a defect repository includes
Defect details
Defect test detail
Fix details
Communication
Test engineers submit the defects for manual test cases. For automated test cases, the framework can
automatically submit the defects to the defect DB during execution. Theses external modules can be
accessed by any module in automation framework, not just one or two modules.
The test framework is considered the core of automation design. It subjects the test cases to different
scenarios. It can be developed by the organization internally or can be bought from the vendor.
23
4. Tools and Results Modules
There are set of tools are required when the test framework performs its operations. When a test
framework executes a set of test cases with a set of scenarios for the different values provided by the
configuration file, the results for each of the test cases along with scenarios and variable values have
to be stored for future analysis and action. The results that come out of the test run by the test
framework should not overwrite the results from the previous test runs. The history of all the
previous tests run should be recorded and kept in archives. The archive of results help in executing
test cases based on previous results.
24
do the setup accordingly in the manual method. A setup for one test case may work negatively for
another test case. Hence, it is important not only to create the setup but also “undo” the setup soon
after the test execution for the test case. Hence, a cleanup programs becomes important and the test
framework should have facilities to invoke this program after the test execution for a test case is
over.
25
In the first example, the test engineer wants to select one out of the test cases 2, 1, 5 and executed. In
the second example, test programs 1, 2, 3 to be randomly executed and if program1 is selected, then
one out of test cases 2, 1, 5 to be randomly executed.
28
Metrics are the means by which the software quality can be measured; they give you confidence in
the product.
• Metrics can be defined as “STANDARDS OF MEASUREMENT”.
• Metric is a unit used for describing or measuring an attribute.
• Test metrics are the means by which the software quality can be measured.
• Test provides the visibility into the readiness of the product, and gives clear measurement of
the quality and completeness of the product.
1. Project Metrics
A set of metrics that indicates how the project is planned and executed. A project starts with
requirements gathering and ends with product release. The project scope gets translated to size
estimates, which specify the quantum of work to be done. This size estimate gets translated to effort
estimate for each of the phases and activities by using the available productivity data available. This
initial effort is called base lined effort. If the availability of the product is not correct, then the effort
estimates are revaluated again and this revaluated effort estimate is called revised estimate. The two
factors that should be tracked in any phase or activity is:
Effort
Schedule
29
Schedule variance is the deviation of the actual schedule from the estimated schedule. It should be
calculated only at the overall project level not with respect to each of the SDLC phases. It is calculated
as
Schedule Variance = Earned Value – Planned Value
2. Progress Metrics
A set of metrics that tracks how the different activities of the project are progressing. The activities
include both development activities and testing activities. Progress metrics is monitored during
testing phases. It can further classified into
Test defect metrics
Development defect metrics
30
(i) Test defect metrics
The test defect metrics capture the progress of defects found with time. Not all the defects are equal
in impact or importance. Organization which classify the defects by assigning defect priority and
defect severity.
Priority Meanings
1 Fix the defect on high priority; fix it before the next build
2 Fix the defect on high priority before the next test cycle
3 Fix the defect on moderate priority when time permits, before the
release
4 Postpone this defect for next release or live with this defect
Severity Meanings
1 The basic product functionality failing or product crashes
2 Unexpected error condition or a functionality is not working
3 A minor functionality is failing or behaves differently than expected
4 Cosmetic issue and no impact on the users
Based on the priority and severity of defects, the defects are classified into 5 types.
Defect classification
Extreme
Critical
Important
Minor
Cosmetic
Defect trend
Defect trend or trend chart is to consolidate all the above into one chart.
31
Defect classification trend
A graph in which each type of defects is plotted separately on top of each other to get the total defects
is called “stacked area charts”. It helps in identifying each type of defect and also presents a
perspective of how they add up to or contribute to the total defects.
32
Defect cause distribution
Finding the root causes of the defects help in identifying more defects and sometimes help in even
preventing the defects.
3. Productivity Metrics
It combines several measurements and parameters with effort spent on the product. They help in
finding out the capability of the team as well as for other purposes such as
Estimating for the new release
Finding out how well the team is progressing, understanding the reasons for variations in
results
Estimating the number of defects that can be found
Estimating release date and quality
Estimating the cost involved in the release
----------------------------------------------------
35