0% found this document useful (0 votes)
159 views8 pages

NURSING INFORMATICS. System and Functional Testing

Functional testing verifies that each function of software operates as specified. It involves identifying functions, creating test cases with input and expected output, executing tests, and comparing actual vs expected output. Functional testing examines an application's ability to perform tasks without considering internal structure. Non-functional testing examines performance, reliability, scalability, and other non-functional aspects. Software testing has evolved over time from a debugging focus to emphasizing prevention and quality evaluation. Functional testing techniques include positive and negative testing, with various subcategories. Common types of functional testing include unit, integration, system, regression, user acceptance, and smoke testing.

Uploaded by

Dustin Dela Cruz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
159 views8 pages

NURSING INFORMATICS. System and Functional Testing

Functional testing verifies that each function of software operates as specified. It involves identifying functions, creating test cases with input and expected output, executing tests, and comparing actual vs expected output. Functional testing examines an application's ability to perform tasks without considering internal structure. Non-functional testing examines performance, reliability, scalability, and other non-functional aspects. Software testing has evolved over time from a debugging focus to emphasizing prevention and quality evaluation. Functional testing techniques include positive and negative testing, with various subcategories. Common types of functional testing include unit, integration, system, regression, user acceptance, and smoke testing.

Uploaded by

Dustin Dela Cruz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

NCM 110: NURSING INFORMATICS

System and Functional Testing

CHAPTER I: INTRODUCTION
1.1 Definition
a) Functional Testing
Testing is an integral part of the software's development process since
it improves its reliability. Various software testing methods are available,
each of which employs a distinct strategy for finding faults and has its own
set of requirements and outcomes. Based on the study of Bå ngerius &
Frö berg (2017), a collection of tests on a mobile application built for the
Android platform, the thesis opens with a section on theory, which outlines
the majority of the fundamental terms used in software testing. The author's
application and test cases are then displayed. These tests' results and
personal experiences are investigated and compared to contemporary
testing research and literature. The test cases helped uncover several
previously undiscovered issues in the source code. The researchers
discovered that while automated testing for Android has many powerful
features, it is rarely used in practice. The researchers believe that regularly
running software using automated testing techniques will significantly
improve the app development process.
According to Choudary, A. (2019), Functional Testing (FT) is defined
as a type of testing that verifies that each function of the software application
operates in conformance with the requirement specification. This testing
mainly consists of black-box testing and is unconcerned with the
application's source code. It concentrates on both manual and automated
testing.
Meanwhile, in FT, each software function, or feature, is compared with
an organization's specifications to ensure that the software provides the
output that an end-user or business requires. Based on Bernstein, C. (2021),
in general, the software is fed input, and the outcome is examined to test
individual functions or features. More specifically, the steps typically involve
identifying the functions the software is expected to perform, creating input
data based on functions' specs, determining the desired output based on the
specs, executing the test case, and comparing actual output with anticipated
output.
FT examines an application's ability to carry out a specific task. FT is
concerned with the consequences of processing rather than the process
itself. Although functional testing simulates actual system use, it makes no

1
NCM 110: NURSING INFORMATICS
System and Functional Testing

assumptions about its structure. Non-Functional Testing (NFT), on the other


hand, examines the app's overall performance, including scalability, stability,
security, and compatibility. 
Furthermore, among the different types of testing techniques, functional
testing has a vital role in software quality improvement as it complements other
methods. Thus, it is relevant to: (i) know how functional testing criteria are
employed; (ii) identify weak and strong points; and(iii) describe scenarios in
which they are used. (Arantes, 2021)

b) Non-functional Testing
NFT is executed to check an application's performance, reliability,
scalability, and other non-functional aspects. (Paul, 2020) It is generally
performed after FT. It also requires automation tools for effective testing and
focuses on user expectations. Moreover, NFT determines how effectively the
product works. Some examples of NFT include Performance Testing, Load
Testing, Stress Testing, Security Testing, Installation Testing, and Cross
Browser Compatibility Testing.

1.2 History
Testing is an essential and required aspect of the software and online
development process, from sickness detection to rocket/satellite launch. The
software industry has recognized the necessity for more process-oriented
testing in a phased approach as it has evolved. Testing is responsible for
many of today's processes. Because of the testing in place, online stores
deploy millions of lines of code.
Software testing didn't evolve in a single day; it took time and sweat
to get it today. According to Ullah, S. (2019), in 1988, testing gurus like David
Gelperin and Bill Hetzel divided testing into five significant eras.
Debugging-oriented era. During this time, there was no distinction
between testing and debugging in the early 1950s. The focus was on bug
fixes. When presented with an error, developers wrote code and analyzed
and troubleshot the problem. There was no such thing as testing or testers
back then. However, in a 1957 review of Dan McCracken's book Digital
Computer Programming, Charles L Baker distinguished program testing from
debugging.
Demonstration-oriented era. Between 1957 and 1978, a separation
was formed between debugging and testing, and testing was seen as a

2
NCM 110: NURSING INFORMATICS
System and Functional Testing

separate activity. During this time, software testing's primary purpose was to
ensure that software requirements were met. For instance, the condition may
have stated, "We need a web application that only displays a list of ten
products." Only ten products were presented at a time, according to the
testers. This failed because the likelihood of a software's function decreasing
as testing grows, i.e., the more testing you do, the more likely you are to
uncover a bug. Negative testing (or breaking the application) was not used in
this period.
Destruction-oriented era. From 1979 through 1982, the emphasis
was cracking the code and identifying the flaws. Although his focus was on
breakage testing, Glenford J. Myers was the first to suggest the separation of
debugging and testing in 1979. A successful test case discovers an error that
has yet to be discovered. It exemplified the software engineering
community's goal to isolate core development processes like debugging from
verification. For example, a tester might test software to fail. During this time,
there was no attempt to prevent defects. On the other hand, the destruction-
oriented strategy failed because the software would never be deployed. After
all, one flaw would lead to another.
Evaluation-oriented era. From 1983 to 1987, the emphasis was on
software quality evaluation and measurement—the confidence index in how
the software worked improved as a result of the testing. The testers tested
until the number of defects discovered was decreased to an acceptable level.
This was primarily useful for colossal software.
Prevention-oriented era. From 1988 to 2000, a new strategy was
adopted, with testing focusing on demonstrating that software matched its
specifications and detecting and preventing errors. The code was separated
into testable and non-testable sections. Code that was easy to test had fewer
bugs than code that was difficult to test. Identifying testing methodologies
was crucial in this era. Exploratory testing, in which a tester explores and
extensively understands the software to identify more defects, was also
widespread in the latter decade of the twentieth century.

3
NCM 110: NURSING INFORMATICS
System and Functional Testing

CHAPTER II: THE SYSTEM AND FUNCTIONAL TESTING AS A WHOLE


1.1 Techniques
Functional testing is separated into two basic categories: positive and
negative testing, further subdivided into subcategories. Paul, H. (2020) states that
FT incorporates specific methodologies. First is Positive Testing; this type of testing
ensures that the product meets users' basic requirements and work efficiently as
expected. It can be divided into three subcategories: end-user-based tests, Decision-
based tests, and Alternate path tests. The second is Negative Testing; this type of
testing ensures that the application usually behaves, even if it is subjected to
unexpected data or continuous changes in the source code. It can be divided into
three subcategories: Equivalence tests, Boundary value tests, and Ad-hoc tests.

1.2 Testing Types


The big picture frequently takes precedence over the finer points in software
testing. Teams must grasp the various functional and specialty testing forms to
effectively optimize quality assurance efforts. Once the team captures these
functional testing types, it can invest time and resources where necessary. Even
when the team uses automated and manual testing, achieving a high test coverage
percentage is difficult. These forms of functional tests assist organizations in
ensuring that digital goods meet requirements at all levels, from the code to the
system as a whole. To create high-quality products that provide a great user
experience, spread testing throughout the software development life cycle – and
apply it consistently. According to the study of Bose, S. (2021), FT types include the
following:
a) Unit Testing: Developers do this by writing scripts that check if individual
components/units of an application meet the requirements. This usually
entails building tests that call each unit's methods and verify that they
produce values that fit the needs. Code coverage is required in unit testing.
Ascertain that test cases for line coverage, code path coverage, and method
coverage exist.
b) Smoke Testing: This is done when each build is released to ensure that
software stability is maintained and no abnormalities exist.

4
NCM 110: NURSING INFORMATICS
System and Functional Testing

c) Sanity Testing: This test is usually done after conducting smoke testing to
ensure that all of an application's primary functions are running correctly,
both alone and in conjunction with other aspects.
d) Regression Testing: This test verifies that modifications to the codebase
(new code, debugging strategies, etc.) do not break or cause instability in
existing functions.
e) Integration Testing: Integration testing is performed when a system
requires many functional modules to function correctly. It ensures that
individual modules work as expected when used in conjunction with one
another. It certifies that the system's end-to-end result meets these
requirements.
f) Beta/Usability Testing: Actual customers test the product in a production
environment at this level. This stage is required to determine a customer's
comfort level with the interface. The feedback they provide is used to
improve the code in the future.
Software testing necessitates that testers pay close attention to the minor
details and complete the job effectively. This makes the process extremely difficult
and time-consuming. As a result, testing is carried out in stages to make the flow and
documentation more accessible.

1.3 Tools
The use of software testing tools is necessary to improve an application or
software. That is why there are so many tools on the market, some of which are free
and others that are not. The main distinction between open-source and paid tools is
that open-source tools have limited functionalities, whereas paid or commercial
tools have no restrictions. The choice of tools is based on the user's needs,
regardless of whether they are paid or free. Software testing tools can be classified
based on the license, technology used, type of testing, and other factors. We can
increase the performance of our software, create a high-quality product, and reduce
the time spent on manual testing with the help of testing tools.
Although manual testing is an option, most testers prefer to use an
automated FT tool to save time. Several tools are available, and picking which one to
use might be challenging. According to Paul, H. (2020) there, are some of the best
tools for automated FT.
a) LambdaTest – It's a fantastic cloud-based Selenium Grid that allows
you to automate the testing of your web app across numerous

5
NCM 110: NURSING INFORMATICS
System and Functional Testing

platforms. This tool also has several valuable capabilities, such as


screen capture, video recording, and live interactive testing.
b) Ranorex Studio – It's an all-in-one automated FT solution with built-
in Selenium WebDriver for desktop, web, and mobile apps.
c) Selenium – This is an open-source web browser automation tool. This
tool provides a single interface for writing test scripts in various
programming languages, including Ruby, Java, NodeJS, PHP, Perl,
Python, and C#.
d) JUnit – Businesses that need to test the functionality of their Java
applications can use JUnit, which was created specifically for unit and
system testing.
e) SoapUI - is another extensively used open-source FT tool for web
service testing. It also supports HTTP, SOAP, and JDBC, among other
protocols.
There are more automatic FT products on the market than the ones
listed above. Therefore, before deciding, do some research to get the most
excellent tool for your needs. On the other hand, Selenium is still the most
used tool for automated FT.

6
NCM 110: NURSING INFORMATICS
System and Functional Testing

CHAPTER III: APPLICATION

As stated by Bose, S. (2021), in this example, given the use case scenario for
FT. "An online HRMS portal on which the user logs in with their user account and
password. The login page has two text domains for username and password. It also
has two regulators – Login and Cancel. When successful, the login page leads the user
to the HRMS home page. The cancel button cancels the login. Specifications includes;
first, the user ID field demands minimum of 6 characters, maximum of 10 characters,
numerals (0-9), notes (a-z, A-z), special symbols (only underscore, period, hyphen
allowed). It cannot be left blank. User id must start with a digit/character. It cannot
include certain characters. Second, the password field requires a minimum of 6
characters, a maximum of 8 characters, numbers (0-9), letters (a-z, A-Z), all special
characters. It cannot be blank."

Aside from the two techniques mentioned in Chapter 2, the use-case scenario
can also be tested through various FT techniques. According to Bose, S. (2021), the
following are the other techniques in FT that can also be used in applying the
scenario.
a) End-user-based/System Tests: Test the system to see if all parts are
operating together flawlessly. In this case, testing the customer journey would
comprise loading the HRMS application, entering valid credentials, redirecting to the
home page, doing tasks, and logging out of the system. This test guarantees that the
workflow runs smoothly and without mistakes.
b) Equivalence Tests: Equivalence data cases are divisions in which test
data is partitioned. Each partition's data must respond in the same way in this test.
As a result, you only need to test one condition across all divisions. The condition
will not operate in any other sections if it does not work in one. Because the user id
field may only hold a maximum of 10 characters in our example, it should react if
data more significant than ten is provided.

7
NCM 110: NURSING INFORMATICS
System and Functional Testing

c) Boundary Value Tests: These tests intend to witness how the system
responds when applied data restrictions. Because the user-id requires at least six
characters in this example, this test will be used to see how the system reacts when
less than six characters are entered.
d) Decision-based Tests: When a specific condition is met, these tests are
started to check for probable system outcomes.
e) Ad-hoc Tests: These tests reveal previously undetected discrepancies by
the other tests. Ad hoc tests are designed to break the system and see how it
responds. While a user is still logged in, the administrator deletes their account
while still completing tasks. The test would see if the program handled the situation
gracefully.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy