Documente Academic
Documente Profesional
Documente Cultură
1. Regression Testing
Regression means retesting the unchanged parts of the application. Test cases are re-executed in order
to check whether previous functionality of application is working fine and new changes have not
introduced any new bugs. This test can be performed on a new build when there is significant change in
original functionality or even a single bug fix. This is the method of verification. Verifying that the bugs
are fixed and the newly added features have not created in problem in previous working version of
software.
1
The constant set of tests will encompass all features and tests which are not required may be run
every time.
A given set of defect fixes or changes may introduce problems for which there may not be ready
made test cases in the constant set.
Second Approach- Select test cases dynamically for each build.
In this approach, the tester needs the knowledge about
The defect fixes and changes made in the current build.
The ways to test current changes.
The impact that the current changes may have on other parts of the system.
The ways of testing the other impacted part.
Some of the criteria to select test cases for regression testing. They are:
Include the test cases that have produced the maximum defects in the past.
Include test cases for a functionality in which a change has been made.
Include test cases in which problems are reported.
Include test cases that test the basic functionality of the product which are mandatory
requirement of the customer.
Include test cases that test end to end behavior of the application or the product.
Including the area which is highly visible to the users.
2
4. Random regression - Random test cases are selected and executed for this regression
methodology.
5. Context based dynamic regression - A few Priority-0 test cases are selected and based on the
context created by the analysis of those test cases after the execution and outcome.
Current
Previous
result from Conclusion Remarks
Results
Regression
FAIL PASS FAIL Need to improve the regression process
and code review.
PASS FAIL PASS Expected result to say defect fixes work
properly.
FAIL FAIL FAIL Need to analyze why defect fixes are not
working.
PASS (with a FAIL Analyze the Workaround also need a good review as
work workaround and it they can also create side effects.
around) satisfied, mark
result as PASS
PASS PASS PASS It give a comfort feeling that there are
no side effects due to defect fixes.
3
2. Scenario Testing
Scenario testing is done to make sure that the end to end functioning of software is working fine, or all
the business process flows of the software are working fine. In scenario testing the testers put
themselves in the end users shoes and figures out the real world scenarios or use cases which can be
performed on the software by the end user. In scenario testing, testers take assistance from clients,
stakeholders and developers to create test scenarios.
Scenario testing helps testers to explore how the software will work in the hands of an end user. Since
scenario testing tests the business flow of the software, it helps in finding lot of defects which cannot be
found with other types of testing.
Scenario testing is done by creating test scenarios which replicate the end users usage. A test scenario
can be a independent test case or a series of test cases that follow each other. Test scenario is just a
story which explains the usage of the software by any end user.
Scenario testing is a software testing technique that makes best use of scenarios. Scenarios help a
complex system to test better where in the scenarios are to be credible which are easy to evaluate.
Story line: Develop a story line that combines various activities of the product that may be executed by
an end user.
Life cycle/State transition: Define the object, derive the different transitions/modifications that
happen to the object and derive the scenario to cover them.
Deployment/Implementation stories from Customer: Develop a scenario from a known customer
deployment/implementation details and create a set of activities by various users in that
implementation.
Business Verticals: Visualize how the product/software will be applied to different verticals and create
a set of activities as scenarios to address specific vertical businesses.
Battle ground: Create some scenario to justify that “the product works” and some scenarios to “try and
break the system” to justify “the product doesn’t work”.
To explain the concept of use case scenarios, let us take the example of withdrawing cash from a bank.
A customer fills up a check and give sit to an official in the bank, The official verifies the balance in the
account from the computer and the required cash to the customer. In this example, the customer is an
4
actor, the clerk is an agent and the response given by the computer which gives the balance in the
account is called the system response.
It is because of this fact you always prioritize your testing efforts and focus on the most important areas,
for that you use techniques like Boundary value analysis(BVA), Equivalence partitioning(EP), Risk
based testing etc. however these techniques still do not guarantee bug free product. By scenario testing
you figure out the most important end-to-end transactions or the real use of the software applications
which ensures that the software is working for the most common user scenarios. It helps in finding lot
of defects which cannot be found with other types of testing. Scenario testing is very important for
complex transactions and for studying end-to-end functioning of the program.
5
Management System) software. This software system manages both outpatient and inpatient records.
Outpatients leave hospital on the same day, however inpatients are admitted in hospital and treated for
more number of days before being discharged from hospital. Now let us take a scenario where one
outpatient comes to hospital to consult bone doctor for pain in his leg. His entry is made in HMS as
outpatient and all his previous medical history is entered in HMS. After few minutes he suddenly feels
acute chest pain and needs to be admitted in hospital, after being admitted to hospital his entry is now
changed from outpatient to Inpatient. But after making this change the doctor finds that he is not able to
get any previous history of this patient, ideally the outpatient history of that patient should be available
even after changing the outpatient status to Inpatient, this happened because the HMS system fails in
this scenario (When OPD patients status is changed to Internal patient).
Defect bash is an ad hoc testing where people performing different roles in an organization test the
product together at the same time. The testing is not based on written test cases. It depends on
individual’s decision and creativity. It provides some of the practices such as:
(i) Enabling people
(ii) Bringing different people performing different roles together in the organization for testing
(iii) Letting everyone in the organization use the product before delivery
(iv) Bringing fresh pairs of eyes to uncover new defects
(v) Bringing in people who have different levels of product understanding to test the product
together randomly
(vi) Let testing doesn’t wait for lack of time taken for documentation
(vii) Enabling people to say “system works” as well as enabling them to “break the system”
All the activities in the defect bash are planned activities except for what to be tested. It involves several
steps. They are:
6
Step4: Setting up and monitoring the lab for defect bash
It makes sense to setup and monitor a laboratory. Finding out the right configuration, resources are
activities that have to be planned carefully before a bash actually starts. The majority of defect bash fail
due to inadequate hardware, wrong configuration and perceptions related to performance and
scalability of the software. During defect bash, the product parameters and system resources need to be
monitored for defects and also corrected so that users can continue to use the system for the complete
duration of defect bash.
4. Acceptance Testing
Acceptance Testing is a level of the software testing process where a system is tested for acceptability.
It is done by the customer which defines a set of test cases that will be executed by the customer
themselves to check the quality of the product before deciding to buy the product. Acceptance test cases
are developed jointly by the customers and product organization. In this case, the product organization
will have complete understanding of what will be tested by the customer for acceptance testing. The
purpose of this test is to evaluate the system’s compliance with the business requirements and assess
whether it is acceptable for delivery.
Acceptance Criteria
Acceptance Criteria – Product Acceptance
Acceptance Criteria – Procedure Acceptance
Acceptance Criteria – Service Level Acceptance
7
(i) Acceptance Criteria – Product Acceptance
During the requirement phase, each requirement is associated with acceptance criteria. It is possible
that one or more requirements may be mapped to form acceptance criteria. Whenever there are
changes to requirements, the acceptance criteria are accordingly modified and maintained.
5. Internationalization testing
Character Set
The purpose is to define a detailed understanding of how exactly each character is represented and the
knowledge of internals is not required for understanding. Some examples are:
8
ASCII
The American Standard Code for Information Interchange (ASCII) a character-encoding scheme
originally based on the English alphabet that encodes 128 specified characters - the numbers 0-9, the
letters a-z and A-Z, some basic punctuation symbols, some control codes that originated with Teletype
machines, and a blank space - into the 7-bit binary integers.
Double –Byte Character Set (DBCS)
A double-byte character set (DBCS) is a character encoding in which either all characters (including
control characters) are encoded in two bytes, or merely every graphic character not representable by an
accompanying single-byte character set (SBCS) is encoded in two bytes (Han characters would generally
comprise most of these two-byte characters). A DBCS supports national languages that contain a large
number of unique characters or symbols (the maximum number of characters that can be represented
with one byte is 256 characters, while two bytes can represent up to 65,536 characters).
Unicode
It is a mechanism used to represent all the characters of all languages in the world. The characters for
all the languages need to be stored, interpreted and transmitted in a standard way. Unicode provides a
unique number to every character no matter what platform, program or language.
Locale
A locale is a set of parameters that defines the user's language, country and any special variant
preferences that the user wants to see in their user interface. Usually a locale identifier consists of at
least a language identifier and a region identifier.
Terms
Internationalization (I18n) - Internationalization (sometimes shortened to "I18N , meaning "I -
eighteen letters -N") is the process of planning and implementing products and services so that
they can easily be adapted to specific local languages and cultures
Localization (L11n)- Language localization is the process of adapting a product that has been
previously translated into different languages to a specific country or region. The aim of
localization is to give a product the look and feel of having been created for the target market and
to eliminate, or at least minimize, local sensitivities.
Globalization (G13n)- Globalization (or globalization) is the process of international integration
arising from the interchange of world views, products, ideas, and other aspects of culture.
9
Some of the aspects are:
Testing the code for how it handles input, strings, and sorting items
Display of messages for various languages
Processing of messages for various languages and conventions
1. Enabling testing
It is a white box method which is done to ensure that the source code used on the software allows
internationalization. An activity of code review or code inspection mixed with some test cases for unit
testing, with an objective to catch I18n defects is called enabling testing. The checklists are:
Check the code for hard coded date, currency formats, ASCII code or character constant.
Check the code to see that there are no computations done on date variables
Check the dialog boxes and screen to see whether they leave at least 05 times more spaces for
expansion
Ensure that no string operations are performed in the code.
Ensure that adequate size is provided for buffers and variables to contain translated messages.
Ensure that all the messages are documented along with usage contents.
Ensure that all the resources are separated from the code stored in resource files.
All messages are understood even by the least experienced user of the product.
2. Locale testing
Changing the different locales using the system settings, or environment variables, and testing the
software functionality, number, date, time and currency format is called locale testing. Whenever a
locale is changed, the tester needs to understand the changes to software functionality. It requires
knowledge of code enabling. If the code is not enabled correctly, each and every feature of the product
with each locale has to be tested. The checklists are:
All the features are tested with different locales of the software for which they are intended.
Hot keys, function keys, and help screens are tested with different applicable locales.
Currency, Number, Date and time format are tested with different locales.
3. Internationalization Validation
It is performed with following objectives:
The software is tested for functionality with ASCII, DBCS and European Characters.
The software handles string operations, sorting, sequencing operations as per the language and
character selected.
The software display is consistent with characters.
10
The software messages are handled properly.
The checklists are:
The functionality in all languages and locales are the same.
Sorting and sequencing the items to be as per the conventions of language and locale.
The input can be non-ASCII or special characters.
The characters are displayed as it enters.
The cut copy paste features retain after pasting.
5. Language Testing
It is short form of “Language Compatibility Testing”. This ensures that software created in English can
work with platforms and environments that are English and non-English. This testing is done to ensure
that the functionality of software is not broken on other language settings and it is still compatible. The
checklists are:
Check the functionality on English, one non-English, and one double byte language platform
combination.
Check the performance of key functionality on different language platforms and across different
machines connected in the network.
11
6. Localization testing
Localization is a very expensive and labor-intensive process. Not all the messages that belong to the
software need to be translated. Some of the messages could be for administrators and developers and
may not be for the target users. Such messages need not be translated and should be excluded from the
file used for translation. While translating, not only the messages but also resources such as GUI
screens, dialog boxes, icons, bitmaps, need to be included for localization as resizing and customization
are needed to fit in the translated messages. The checklists are:
All the messages, documents, pictures, screens are localized to reflect the native users and the
conventions of the country, locale and language.
Sorting and case Conventions are right as per language convention.
Font sizes and hot keys are working correctly in the translated messages, documents and screens
Filtering and searching capabilities of the software work as per the language and locale
conventions.
Addresses, phone numbers, numbers and postal code in the localized software are as per the
conventions of the target user.
12
6. Ad hoc Testing
Ad hoc testing is a commonly used term for software testing performed without planning and
documentation (but can be applied to early scientific experimental studies). The tests are intended to be
run only once, unless a defect is discovered. Ad hoc testing is the least formal test method. As such, it
has been criticized because it is not structured and hence defects found using this method may be
harder to reproduce (since there are no written test cases). However, the strength of ad hoc testing is
that important defects can be found quickly.
Testing is carried out with the knowledge of the tester about the application and the tester tests
randomly without following the specifications/requirements. Hence the success of Ad hoc testing
depends upon the capability of the tester, who carries out the test. The tester has to find defects
without any proper planning and documentation, solely based on tester's intuition.
1. Buddy Testing
Two buddies mutually work on identifying defects in the same module. Mostly one buddy will be from
development team and another person will be from testing team. Buddy testing helps the testers
develop better test cases and development team can also make design changes early. This testing
usually happens after unit testing completion.
14
and doesn’t need to capture screenshots. Direct and immediate communication leads to the faster
fixation.
3. Both developer and tester will work to their best due to the presence of each other.
4. Developer can mark his/her mistakes, so that they can be efficient and optimized in future.
5. Work load will be less in presence of another team member’s help, so, the tester can think clear
and use maximum scenarios in to his/her benefit.
6. Work will be fun and enjoyable.
2. Pair Testing
Pair testing is a software development technique in which two team members works together at one
keyboard to test the software application. One does the testing and the other analyzes or reviews the
testing. This can be done between one tester and developer or business analyst or between two testers
with both participants taking turns at driving the keyboard. This will help both the members to learn
more about the application. This will narrow down the root cause of the problem while continuous
testing. Developer can find out which portion of the source code is affected by the bug. This track can
help to make the solid test cases and narrowing the problem for the next time.
Benefits
The developer can learn more about the software application by exploring with the tester.
The tester can learn more about the software application by exploring with the developer.
Less participation is required for testing and for important bugs root cause can be analyzed very
easily. The tester can very easily test the initial bug fixing status with the developer.
This will make the developer to come up with great testing scenarios by their own
Drawbacks
Teaming up individual high performers may lead to problems
It may not produce desire results, who one person take the lead and other has a laidback
attitude.
One person do not try to understand and respect each other, it may be lead to frustration and
domination.
The speed of understanding and execution does not match, result in loss of attention.
It may result in delays due to the time spent on interactions with testers.
15
Pairing up juniors with experienced one may result in the former doing tasks that the senior may
not want to do.
No accountability on who is responsible for steering the work, providing direcions, and
delivering the results.
Usage
This is more applicable where the requirements and specifications are not very clear, the team is very
new, and needs to learn the application behavior quickly.
3. Exploratory Testing
Exploratory testing is an approach to software assessment that integrates learning about the program
with designing the test and conducting the testing processes. The simultaneous process ensures that
developers have a more comprehensive understanding of how it should work and create more effective
tests and, as a result, be better equipped to find problems.
Advantages
It doesn’t require preparation for testing as we don’t have documents for testing.
In this type of testing time saves due to all task are doing simultaneously like Testing, Designing
test scenarios and executing test scenarios.
Tester can report many issues due to incomplete requirement or missing requirement document.
Disadvantages
Few issues cannot be catch in this type of testing.
There is review of test planning & designing of test cases/scenario while testing may cause
issues.
Testers have to remember the scenario what he is executing because if any bug is found then
tester should report a bug with proper steps to reproduce Difficulty to perform the exact
manner especially for new found bugs.
Techniques:
1. Guesses: It is sued to find the part of the program that is likely to have more errors. Previous
experience on working with a similar product or software or technology helps in guessing.
2. Architecture diagrams and use cases: It depicts the interactions and relationships between
different components and modules. Use cases give an insight of the product’s usage from the end
user’s perspective. It explains a set of business events, the input required, people involved in
those events and the expected output. Exploration technique may use these diagrams and use
cases to test the product.
16
3. Guesses: It is sued to find the part of the program that is likely to have more errors. Previous
experience on working with a similar product or software or technology helps in guessing.
4. Architecture diagrams and use cases: It depicts the interactions and relationships between
different components and modules. Use cases give an insight of the product’s usage from the end
user’s perspective. It explains a set of business events, the input required, people involved in
those events and the expected output. Exploration technique may use these diagrams and use
cases to test the product.
5. Past defects: Studying the defects reported in the previous releases helps in understanding of
the error phone functionality/modules in a product development environment. Defect reports of
the previous releases act as a explore an area of the product further.
6. Error handling: It is a portion of the code which prints appropriate messages or provides
appropriate actions in case of failures.
7. Discussions: It is based on the understanding of the product from discussions. Exploration may
be planned based on the understanding of the system during project discussions or meetings.
Plenty of information can be picked up during these meetings regarding implementation of
different requirements for the product.
8. Questionnaires and Checklists: The last technique uses Questionnaires and Checklists to
perform the exploration. Questions like “what, when, how, who and why” can provide leads to
explore areas in the product. To understand the implementation of functionality in a product,
open ended questions like “what does this module do” “when is it being called or used”, “how is
the input processed”, who are the users of this module” and so on can be asked. Such questions
will provide insights to what more can be tested.
4. Iterative testing
The iterative model is where the requirements keep coming and the product is developed
iteratively for each requirement. The testing associated for this process is called iterative testing.
One of the biggest challenges is to ensure that all the requirements that are tested continue to
work when a new requirement is given.
Hence, iterative testing requires repetitive testing. When a new requirement or a defect fix is
done, it may have an impact on other requirements that have already been tested.
17
As the new requirements may involve a large number of changes at the product level, the
majority of these tests are executed manually because automation in this case is very difficult. It
aims at testing the product for all requirements, irrespective of the phase they belong to in the
spiral model.
A test plan is created at the beginning of the first iteration and updated for every subsequent
iteration. This can be define the type and scope of testing to be done for each of the iterations.
This is because the product goes through a series of iterations and the testing time for the later
iterations increases substantially.
Also, some of the tests that are performed in later iterations may not be possible to perform
during earlier iterations. Since iterative testing involves repetitive test execution that were run
for the previous iterations.
XP work flow
18
There are different steps involved in following the XP methodology. It presents the process flow for a XP
product release. The different activities involved in XP work flow are a s follows:
1. Develop and understand user story
2. Prepare acceptance tests
3. Test plan and estimation
4. Code
5. Test
6. Refactor
7. Automate
8. Accepted and Delivered
Testing of OO software is different from testing software created using procedural languages.
Several new challenges are posed. In the past most of the methods for testing OO software was just a
simple extension of existing methods for conventional software. Testing is conducted at 3 levels:
Unit, Integration and System. At the system level there is no difference between the testing
techniques used for OO software and other software created using a procedural language, and hence,
conventional techniques can be used. This tool provides features for testing at Unit (Class) level as
well as Integration level. Further a maintenance-level component has also been incorporated.
Results of applying this tool to sample Rational Rose files have been incorporated, and have been
found to be satisfactory.
The objectives of developing the Testing Tool for software testers and maintainers are:
(1) to help them understand the structures of, and relations between, the components of an OO
program
(2) to give them a systematic method and guidance to perform OO testing and maintenance
(3) to assist them to find better test strategies to reduce their efforts
(4) to facilitate them to prepare test cases and test scenarios , and
(5) to generate test data and to aid them in setting up test harnesses to test specific components.
20
Differences in OO Testing
Unit Testing a Class
Putting Classes to work together
System testing
Regression testing
Tools for testing OO Systems
Steps
1. Test the constructor method first.
2. Test the get method or accessor methods.
3. Test the methods that modify the object variables.
4. Finally, the object has to be destroyed and when the object is destroyed.
21
(ii) Putting Classes to work together- Integration testing
OO systems are designed to be made up of a number of smaller components or classes that are meant to
be reused. Testing the classes work together becomes the next step, once the basic classes themselves
are found to be tested thoroughly. It is not an individual class that is tested individually as a unit, but a
collection of related classes that always go together. In an OO system, the way in which the various
classes communicate with each other is through messages.
The classes and objects interoperate and work together as a system. Since, the complexity of
interactions among the classes can be substantial, it is important to ensure that proper unit and
component testing is done before attempting system testing. Thus proper entry and exit criteria should
be set for the various test phases before system testing so as to maximize the effectiveness of system
testing.
22
Use cases
A use case is a list of steps, typically defining interactions between a role (known in Unified Modeling
Language (UML) as an "actor") and a system, to achieve a goal. The actor can be a human, an external
system, or time. A use case diagram at its simplest is a representation of a user's interaction with the
system and depicting the specifications of a use case. A use case diagram can portray the different types
of users of a system and the various ways that they interact with the system. This type of diagram is
typically used in conjunction with the textual use case and will often be accompanied by other types of
diagrams as well.
Class diagrams
A class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that
describes the structure of a system by showing the system's classes, their attributes, operations (or
methods), and the relationships among objects.
The class diagram is the main building block of object oriented modelling. It is used both for general
conceptual modelling of the systematics of the application, and for detailed modelling translating the
models into programming code. Class diagrams can also be used for data modeling.[1] The classes in a
class diagram represent both the main objects, interactions in the application and the classes to be
programmed.
23
The middle part contains the attributes of the class. They are left aligned and the first letter is
lower case.
The bottom part gives the methods or operations the class can take or undertake. They are also
left aligned and the first letter is lower case.
In the design of a system, a number of classes are identified and grouped together in a class diagram
which helps to determine the static relations between those objects. With detailed modelling, the
classes of the conceptual design are often split into a number of subclasses.
Sequence diagrams
A 'Sequence diagram' is an interaction diagram that shows how processes operate with one another and
in what order. It is a construct of a Message Sequence Chart. A sequence diagram shows object
interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and
the sequence of messages exchanged between the objects needed to carry out the functionality of the
scenario. Sequence diagrams are typically associated with use case realizations in the Logical View of
the system under development. Sequence diagrams are sometimes called event diagrams, event.
State charts
The name of the diagram itself clarifies the purpose of the diagram and other details. It describes
different states of a component in a system. The states are specific to a component/object of a system.
A State chart diagram describes a state machine. Now to clarify it state machine can be defined as a
machine which defines different states of an object and these states are controlled by external or
internal events.
24
10. Usability Testing
Usability testing provides quantitative and qualitative data from real users performing real tasks
with a product. Usability professionals can evaluate some aspects of accessibility by using standard
usability testing protocols, with a few modifications for including participants with disabilities.
While usability testing evaluates how usable accessibility solutions are by some people with
disabilities, usability testing can't address all accessibility issues and doesn't evaluate conformance
to accessibility standards.
Detailed guidance on usability testing with participants with disabilities in the following sections:
Planning Usability Testing covers determining participant characteristics, recruiting
participants, choosing the best location, and scheduling the right amount of time.
Preparing for Usability Testing covers ensuring the facility is accessible, preparing test materials,
setting up and testing participants' configurations, becoming familiar with the assistive
technology, and conducting pilot testing.
Conducting Usability Testing covers setting up the room, orienting the participant, completing
paperwork, completing the tasks, collecting data, providing compensation, and specific
considerations for people with different disabilities.
Reporting Usability Testing covers distinguishing between accessibility and usability issues,
including relevant study parameters, being careful about categorizations and comparisons,
clarifying conclusions, and writing about people with disabilities.
Checklist for Usability Testing summarizes the tasks and considerations involved in planning,
preparing for, conducting, and reporting usability studies with participants with disabilities.
Recruiting Screener lists question to ask during recruiting.
27
Specific considerations for some participants who are blind or visually impaired
Don't move anything without asking first.
Record screen reader audio output.
Watch the keyboard.
Adjust video for wide-angle capture.
Take speakers and lights.
Specific considerations for some participants who are deaf or hearing impaired
Arrange seating for an interpreter.
Position seating for a direct line of sight.
Be sure the room is well-lit.
Record both participant and interpreter audio.
Specific considerations for some participants who have physical impairments
Allow enough room for a wheelchair.
Orienting the Participant
Encourage the participant to become familiar with the setup.
Specific considerations for some participants who are blind or visually impaired
Introduce yourself and others.
Describe the setting to the participant.
Explain unusual noises and your activities.
Offer your elbow to lead the participant.
Give directions about where to be seated.
Don't interact with a guide dog or service animal.
Tell the participant where there is room for the guide dog.
Specific considerations for some participants who are deaf or hearing impaired
Get the participant's attention before starting a conversation.
Take turns talking.
Be very clear that an interpreter should repeat just what you say.
Specific considerations for some participants with physical impairments
Don't move mobility aids.
Remember seating for a personal attendant.
Completing Paperwork
Specific considerations for some participants who are blind or visually impaired
Provide documents in the participant's preferred format.
Be prepared to indicate the place for signature.
Specific considerations for some participants with physical impairments
Have a clipboard available to hold documents to be signed.
28
Specific considerations for some participants who are blind or visually impaired
Request screen reader speech rate according to usability test protocol.
Specific considerations for some participants who are deaf or hard of hearing
Face the participant while speaking, and speak at eye level.
Speak clearly.
Try rewording what you are saying.
Offer to write down what you are saying.
Move closer to the participant.
Collecting Data
Consider debriefing after each task instead of after the entire test.
Specific considerations for some participants with speech impairments
Listen carefully, and ask the participant to repeat for clarification if needed.
Be prepared to offer to use written communication.
Be very clear that an attendant should repeat exactly what the participant said.
Specific considerations for some participants who are deaf or hard of hearing
Be very clear that an interpreter should repeat just what the participant signs.
Providing Compensation
Specific considerations for some participants who are blind or visually impaired
State what the currency is as you hand it to the participant, if you are paying in cash.
Verify the spelling of the participant's name, if you are paying by check.
29
Consistency
Navigation
Responsiveness
Accessibility Testing is a subset of usability testing, and it is performed to ensure that the application
being tested is usable by people with disabilities like hearing, color blindness, old age and other
disadvantaged groups.
People with disabilities use assistive technology which helps them in operating a software product.
Testing goals
Set up and use the application without sighted assistance
All task workflows in the application can be easily navigated using directional controls and
provide clear and appropriate feedback
Testing Requirements
The following tests must be completed in order to ensure a minimum level of application accessibility.
1. Directional controls: Verify that the application can be operated without the use of a touch
screen. Attempt to use only directional controls to accomplish the primary tasks in the
application. Use the keyboard and directional-pad (D-Pad) controls in the Android Emulator or
use gesture navigation on devices with Android 4.1 (API Level 16) or higher.
Note: Keyboards and D-pads provide different navigation paths than accessibility gestures.
While gestures allow users to focus on nearly any on-screen content, keyboard and D-pad
navigation only allow focus on input fields and buttons.
2. TalkBack audio prompts: Verify that user interface controls that provide information (graphics
or text) or allow user action have clear and accurate audio descriptions when TalkBack is
enabled and controls are focused. Use directional controls to move focus between application
layout elements.
3. Explore by Touch prompts: Verify that user interface controls that provide information
(graphics or text) or allow user action have appropriate audio descriptions when Explore by
Touch is enabled. There should be no regions where contents or controls do not provide an audio
description.
4. Touchable control sizes: All controls where a user can select or take an action must be a
minimum of 48 dp (approximately 9mm) in length and width, as recommended by Android
Design.
5. Gestures work with TalkBack enabled: Verify that app-specific gestures, such as zooming
images, scrolling lists, swiping between pages or navigating carousel controls continue to work
when TalkBack is enabled. If these gestures do not function, then an alternative interface for
these actions must be provided.
6. No audio-only feedback: Audio feedback must always have a secondary feedback mechanism to
support users who are deaf or hard of hearing, for example: A sound alert for the arrival of a
30
message should also be accompanied by a system Notification, haptic feedback (if available) or
another visual alert.
Keyboard Accessibility
Strictly Keys - Sticky Keys is an accessibility feature to help Windows users who have
physical disabilities, but it is also used by others as a means to reduce repetitive strain injury
essentially serializes keystrokes instead of pressing multiple keys at a time: Sticky Keys
allows the user to press and release a modifier key, such as Shift, Ctrl, Alt, or the Windows
key, and have it remain active until any other key is pressed.
Filter key - It is an accessibility function that tells the keyboard to ignore brief or repeated
keystrokes, in order to make typing easier for users with hand tremors.
Toggle key sound - Toggle Keys is turned on (check mark in "Turn on Toggle Keys") but
there is no tone when pressing Caps Lock, Num Lock or Scroll Lock.
Sound keys - Sound Keys fundamentally differs from the kframe generators that comes with
AE. They have their own palette, whereas Sound Keys is applied as a regular effect and key
frames are generated into its own output parameters and then linked with an expression.
Arrow keys to control mouse - MouseKeys enables you to use the numeric keypad to
control the movement of the mouse pointer. If you want to use the numeric keypad for data
entry as well as for navigation, you can set MouseKeys to be activated by pressing Num Lock.
Narrator - A narrative (or play) is any account of connected events, presented to a reader or
listener in a sequence of written or spoken words, or in a sequence of (moving) pictures.
Screen Accessibility
Visual Sound
Enabling captions for multimedia
Soft keyboard
Easy reading with high contrast
Typical test cases for accessibility might look similar to the following examples -
Make sure that all functions are available via keyboard only (do not use mouse)
Make sure that information is visible when display setting is changed to High Contrast modes.
Make sure that screen reading tools can read all the text available and every picture/Image have
corresponding alternate text associated with it.
Make sure that product defined keyboard actions do not affect accessibility keyboard shortcuts.
31