To be able to pass the TESDA NC II Computer Servicing Exam you need also to learn about Various Testing procedure performed on a computer System. System testing of
software or hardware is testing conducted on a complete, integrated system to
evaluate the system's compliance with its specified requirements. As a rule,
system testing takes, as its input, all of the integrated software components
that have successfully passed integration testing and also the software system
itself integrated with any applicable hardware system(s). The purpose of
integration testing is to detect any inconsistencies between the software units
that are integrated together (called assemblages) or between any of the
assemblages and the hardware.
The following examples
are different types of testing that should be considered during System testing:
GUI SOFTWARE TESTING
Is the process of testing a product that uses a graphical user interface, this is to ensure that it meet its written specifications. This is normally done through the use of a variety of test cases. Most clients in client/server and web-based systems deliver system functionality using a GUI. When testing complete systems, the tester must grapple with the additional functionality provided by the GUI. GUIs make testing systems more difficult for many reasons: the event-driven nature of GUIs, unsolicited events, many ways in/many ways out and the infinite input domain problems make it likely that the programmer has introduced errors because he could not test every path.
Graphical user
interface is a type of user interface which allows people to interact with
electronic devices such as computers; hand-held devices such as MP3 Players,
Portable Media Players or Gaming devices; household appliances and office
equipment with images rather than text commands. A GUI offers graphical icons,
and visual indicators, as opposed to text-based interfaces, typed command
labels or text navigation to fully represent the information and actions
available to a user. The actions are usually performed through direct
manipulation of the graphical elements.
USABILITY TESTING
Is a technique used to evaluate a product by testing it on users. This can be seen as an irreplaceable usability practice, since it gives direct input on how real users use the system. This is in contrast with usability inspection methods where experts use different methods to evaluate a user interface without involving users.
Goals of usability testing:
Usability testing is a black-box testing technique. The aim is to observe people using the product to discover errors and areas of improvement. Usability testing generally involves measuring how well test subjects respond in four areas: efficiency, accuracy, recall, and emotional response. The results of the first test can be treated as a baseline or control measurement; all subsequent tests can then be compared to the baseline to indicate improvement.
- Performance - How much time, and how many steps, are required for people to complete basic tasks? (For example, find something to buy, create a new account, and order the item.)
- Accuracy - How many mistakes did people make? (And were they fatal or recoverable with the right information?)
- Recall - How much does the person remember afterwards or after periods of non-use?
- Emotional response - How does the person feel about the tasks completed? Is the person confident, stressed? Would the user recommend this system to a friend?
PERFORMANCE TESTING
Software performance testing is used to determine the speed or effectiveness of a computer, network, software program or device. This process can involve quantitative tests done in a lab, such as measuring the response time or the number of MIPS. (millions of instructions per second) at which a system functions. Qualitative attributes such as reliability, scalability and interoperability may also be evaluated. Performance testing is often done in conjunction with stress testing.
Compatibility testing
Is part of software non-functional tests, is testing conducted on the application to evaluate the application's compatibility with the computing environment. Computing environment may contain some or all of the below mentioned elements:
- Computing capacity of Hardware Platform (IBM 360, HP 9000, etc.)..
- Bandwidth handling capacity of networking hardware
- Compatibility of peripherals (Printer, DVD drive, etc.)
- Operating systems (MVS, UNIX, Windows, etc.)
- Database (Oracle, Sybase, DB2, etc.)
- Other System Software (Web server, networking/ messaging tool, etc.)
- Browser compatibility (Firefox, Netscape, Internet Explorer, Safari, etc.)
Users have the same
visual experience irrespective of the browsers through which they view the web
application.
In terms of functionality, the application must
behave and respond the same way across different browsers.LOAD TESTING
It is used in different ways in the professional software
testing community. Load testing generally refers to the practice of modelling
the expected usage of a software program by simulating multiple users accessing
the program concurrently. As such, this testing is most relevant for multi-user
systems; often one built using a client/server model, such as web servers.
However, other types of software systems can also be load tested. For example,
a word processor or graphics editor can be forced to read an extremely large
document; or a financial package can be forced to generate a report based on
several years' worth of data. The most accurate load testing occurs with
actual, rather than theoretical, results. When the load placed on the system is
raised beyond normal usage patterns, in order to test the system's response at
unusually high or peak loads, it is known as stress testing. The load is
usually so great that error conditions are the expected result, although no
clear boundary exists when an activity ceases to be a load test and becomes a
stress test.
Various tools are also available to find out the causes for
slow performance which could be in the following areas:
- Application
- Database
- Network
- Client side processing
- Load balancer
VOLUME TESTING
A test belongs to the
group of non-functional tests, which are often misunderstood and/or used
interchangeably. Volume testing refers to testing a software application with a
certain amount of data. This amount can, in generic terms, be the database size
or it could also be the size of an interface file that is the subject of volume
testing. For example, if you want to volume test your application with a
specific database size, you will expand your database to that size and then
test the application's performance on it. Another example could be when there
is a requirement for your application to interact with an interface file (could
be any file such as .dat, .xml); this interaction could be reading and/or
writing on to/from the file. You will create a sample file of the size you want
and then test the application's functionality with that file in order to test
the performance.
STRESS TESTING
IT industry - software
testing, stress test refers to tests that put a greater emphasis on robustness,
availability, and error handling under a heavy load, rather than on what would
be considered correct behavior under normal circumstances. In particular, the
goals of such tests may be to ensure the software doesn't crash in conditions
of insufficient computational resources (such as memory or disk space),
unusually high concurrency, or denial of service attacks.
Examples:
A web server may be
stress tested using scripts, bots, and various denial of service tools to
observe the performance of a web site during peak loads.
Hardware - When
modifying the operating parameters of a CPU, such as in overclocking,
underclocking, overvolting, and undervolting, it may be necessary to verify if
the new parameters (usually CPU core voltage and frequency) are suitable for
heavy CPU loads. This is done by running a CPU-intensive program (usually
Prime95) for a long time, to see if the computer hangs or crashes. CPU stress
testing is also referred to as torture testing. Software that is suitable for
torture testing should typically run instructions that utilise the entire chip
rather than only a few of its units.
Security Testing - Is a
Process to determine that an IS (Information System) protects data and
maintains functionality as intended.The six basic security concepts that need
to be covered by security testing are: confidentiality, integrity,
authentication, authorization, availability and non-repudiation.
Six Basic Security Concepts
Confidentiality - A
security measure which protects against the disclosure of information to parties
other than the intended recipient that is by no means the only way of ensuring
the security.
Integrity - A measure
intended to allow the receiver to determine that the information which it
receives has not been altered in transit or by other than the originator of the
information. Integrity schemes often use some of the same underlying
technologies as confidentiality schemes, but they usually involve adding
additional information to a communication to form the basis of an algorithmic
check rather than the encoding all of the communication.
Authentication - A
measure designed to establish the validity of a transmission, message, or
originator.Allows a receiver to have confidence that information it receives
originated from a specific known source.
Authorization - The
process of determining that a requester is allowed to receive a service or
perform an operation. Access control is an example of authorization.
Availability - Assuring
information and communications services will be ready for use when expected.
Information must be kept available to authorized persons when they need it.Also
authority to operate.
Non-repudiation - A
measure intended to prevent the later denial that an action happened, or a
communication that took place etc. In communication terms this often involves
the interchange of authentication information combined with some form of
provable time stamp.
RECOVERY TESTING
It is the activity of
testing how well an application is able to recover from crashes, hardware
failures and other similar problems.Recovery testing is the forced failure of
the software in a variety of ways to verify that recovery is properly
performed. Recovery testing should not be confused with reliability testing,
which tries to discover the specific point at which failure occurs.
Examples of recovery testing:
- While an application is running, suddenly restart the computer, and afterwards check the validness of the application's data integrity.
- While an application is receiving data from a network, unplug the connecting cable. After some time, plug the cable back in and analyze the application's ability to continue receiving data from the point at which the network connection disappeared.
- Restart the system while a browser has a definite number of sessions. Afterwards, check that the browser is able to recover all of them.
ACCESSIBILITY TESTING
It is a general term
used to describe the degree to which a product (e.g., device, service,
environment) is accessible by as many people as possible. Accessibility can be
viewed as the "ability to access" the functionality, and possible
benefit, of some system or entity. Accessibility is often used to focus on
people with disabilities and their right of access to entities, often through
use of assistive technology. Several definitions of accessibility refer
directly to access-based individual rights laws and regulations. Products or
services designed to meet these regulations are often termed Easy Access or
Accessible.Accessibility is not to be confused with usability which is used to
describe the extent to which a product (e.g., device, service, environment) can
be used by specified users to achieve specified goals with effectiveness,
efficiency and satisfaction in a specified context of use.Accessibility is
strongly related to universal design when the approach involves "direct
access." This is about making things accessible to all people (whether they
have a disability or not). However, products marketed as having benefited from
a Universal Design process are often actually the same devices customized
specifically for use by people with disabilities.An alternative is to provide
"indirect access" by having the entity support the use of a person's
assistive technology to achieve access (e.g., screen reader).
Maintenance testing -
is that testing which is performed to either identify equipment problems,
diagnose equipment problems or to confirm that repair measures have been
effective.
Types of maintenance
for which testing can be used. Maintenance falls into the following four
categories:
- Preventive maintenance - Changes to the existing system so as to reduce the risk of failure while operating.
- Corrective maintenance - correcting problems that arise while using the system.
- Perfective maintenance - Enhancements (modifications) to improve the safety, reliability, efficiency or cost-effectiveness of operation.
- Adaptive maintenance - Adaptations to address requirements that crop up due to changes in the environment or new regulations.