Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
11 views24 pages

Module 3

The document outlines a self-paced learning module for ITEC 106 at Laguna State Polytechnic University, focusing on software testing, development, and ethical/legal considerations. It details learning outcomes, objectives, student strategies, and various types of software testing, emphasizing the importance of testing in ensuring software reliability and performance. The module is scheduled for April 20 to May 30, 2025, and includes both online and offline activities for students.

Uploaded by

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

Module 3

The document outlines a self-paced learning module for ITEC 106 at Laguna State Polytechnic University, focusing on software testing, development, and ethical/legal considerations. It details learning outcomes, objectives, student strategies, and various types of software testing, emphasizing the importance of testing in ensuring software reliability and performance. The module is scheduled for April 20 to May 30, 2025, and includes both online and offline activities for students.

Uploaded by

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

Republic of the Philippines

Laguna State Polytechnic University


Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited

LSPU Self-Paced Learning Module (SLM)


Course ITEC 106 – Applications Development and Emerging Technologies
Sem/AY Second Semester / Academic Year 2024 – 2024
Module No. 3
Lesson Title Software Testing and Development and Ethical and Legal Considerations
Week
13 – 18
Duration
Date April 20 – May 30, 2025
Description This module will discuss the topics on the emerging technologies that are associated
of the with the Software Testing and Development and Ethical and Legal Considerations in
Lesson Software/Application Development

Learning Outcomes
Intended Students should be able to meet the following intended learning outcomes:
Learning  demonstrate understanding on the emerging technologies on software testing
Outcomes and development in the context of software/application development;
 distinguish between the ethical and legal considerations in software/application
development; and
 develop solutions which implements the concepts of software testing and
development and the ethical and legal consideration in the context of
software/application development.
Targets/ At the end of the lesson, students should be able to:
Objectives  identify the emerging technologies on software testing and development;
 enumerate the ethical and legal considerations in software/application
development;
 discuss the concept of software testing and development; and
 develop solutions that addresses the ethical and legal consideration in
software/application development.

Student Learning Strategies

Online Activities 1. Online Discussion via Google Meet / Zoom


(Synchronous/ You will be directed to attend in a Two-Hour class discussion on the
Overview of Software and Hardware Technologies and the Requirement
Asynchronous)

40 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Analysis and Modeling for Software / Application Development. To have
access to the Online Discussion, refer to this link: ____________________.
The online discussion will happen between April 21 – May 31, 2024 from
8:00AM - 11:00AM PST and/or 1:00PM - 3:00PM PST.

(For further instructions, refer to your Google Classroom and see the
schedule of activities for this module)

2. Learning Guide Questions:


1. What are the emerging technologies on software testing and
development?
2. What are ethical and legal consideration in software/application
development?
3. How are the software testing and development and the ethical and legal
consideration implemented in the context software / application
development?
Lecture Guide

1. What is Software Testing?

Software Testing is a method to check whether the actual software product


matches expected requirements and to ensure that software product is
Defect free. It involves execution of software/system components using
manual or automated tools to evaluate one or more properties of interest.
The purpose of software testing is to identify errors, gaps or missing
requirements in contrast to actual requirements.

Some prefer saying Software testing as a White Box and Black Box Testing.
Offline Activities In simple terms, Software Testing means the Verification of Application
Under Test (AUT).
(e-Learning/Self-
Paced) White Box Testing is software testing technique in which internal
structure, design and coding of software are tested to verify flow of input-
output and to improve design, usability and security. In white box testing,
code is visible to testers so it is also called Clear box testing, Open box
testing, Transparent box testing, Code-based testing and Glass box
testing.

Black Box Testing is a software testing method in which the


functionalities of software applications are tested without having
knowledge of internal code structure, implementation details and
internal paths. Black Box Testing mainly focuses on input and output of
software applications and it is entirely based on software requirements
and specifications. It is also known as Behavioral Testing.

41 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
2. Why Software Testing is Important?

Software Testing is Important because if there are any bugs or errors in the
software, it can be identified early and can be solved before delivery of the
software product. Properly tested software product ensures reliability,
security and high performance which further results in time saving, cost
effectiveness and customer satisfaction.

Testing is important because software bugs could be expensive or even


dangerous. Software bugs can potentially cause monetary and human loss,
and history is full of such examples:

 In April 2015, Bloomberg terminal in London crashed due to software


glitch affected more than 300,000 traders on financial markets. It
forced the government to postpone a 3bn pound debt sale.
 Nissan cars recalled over 1 million cars from the market due to
software failure in the airbag sensory detectors. There has been
reported two accidents due to this software failure.
 Starbucks was forced to close about 60 percent of stores in the U.S and
Canada due to software failure in its POS system. At one point, the
store served coffee for free as they were unable to process the
transaction.
 Some of Amazon's third-party retailers saw their product price is
reduced to 1p due to a software glitch. They were left with heavy
losses.
 Vulnerability in Windows 10. This bug enables users to escape from
security sandboxes through a flaw in the win32k system.
 In 2015 fighter plane F-35 fell victim to a software bug, making it
unable to detect targets correctly.
 China Airlines Airbus A300 crashed due to a software bug on April 26,
1994, killing 264 innocents live
 In 1985, Canada's Therac-25 radiation therapy machine
malfunctioned due to software bug and delivered lethal radiation
doses to patients, leaving 3 people dead and critically injuring 3
others.
 In April of 1999, a software bug caused the failure of a $1.2 billion
military satellite launch, the costliest accident in history
 In May of 1996, a software bug caused the bank accounts of 823
customers of a major U.S. bank to be credited with 920 million US
dollars.

3. What are the benefits of Software Testing?

Here are the benefits of using software testing:

42 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
 Cost-Effective: It is one of the important advantages of software
testing. Testing any IT project on time helps you to save your money
for the long term. In case if the bugs caught in the earlier stage of
software testing, it costs less to fix.
 Security: It is the most vulnerable and sensitive benefit of software
testing. People are looking for trusted products. It helps in removing
risks and problems earlier.
 Product quality: It is an essential requirement of any software
product. Testing ensures a quality product is delivered to customers.
 Customer Satisfaction: The main aim of any product is to give
satisfaction to their customers. UI/UX Testing ensures the best user
experience.

4. Testing in Software Engineering

As per ANSI/IEEE 1059, Testing in Software Engineering is a process of


evaluating a software product to find whether the current software product
meets the required conditions or not. The testing process involves evaluating
the features of the software product for requirements in terms of any missing
requirements, bugs or errors, security, reliability and performance.

5. Types of Software Testing

Typically Testing is classified into three categories.

 Functional Testing
 Non-Functional Testing or Performance Testing
 Maintenance (Regression and Maintenance)

Testing Category Types of Testing


Functional Testing Unit Testing
Integration Testing
Smoke
UAT (User Acceptance Testing)
Localization

43 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Globalization
Interoperability
So on
Non-Functional Testing Performance
Endurance
Load
Volume
Scalability
Usability
So on
Maintenance Regression
Maintenance

Note: This is not the complete list as there are more than 150 types of testing
types and still adding. Also, note that not all testing types are applicable to
all projects but depend on the nature & scope of the project. To know more
about the types of tea

6. Testing Strategies in Software Engineering

Here are important strategies in software engineering:

 Unit Testing: This software testing approach is followed by the


programmer to test the unit of the program. It helps developers to know
whether the individual unit of the code is working properly or not.
 Integration testing: It focuses on the construction and design of the
software. You need to see that the integrated units are working without
errors or not.
 System testing: In this method, your software is compiled as a whole and
then tested as a whole. This testing strategy checks the functionality,
security, portability, amongst others.

7. Program Testing

Program Testing in software testing is a method of executing an actual


software program with the aim of testing program behavior and finding
errors. The software program is executed with test case data to analyze the
program behavior or response to the test data. A good program testing is one
which has high chances of finding bugs.

8. What is a Software Testing Type?

Software Testing Type is a classification of different testing activities into


categories, each having, a defined test objective, test strategy, and test

44 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
deliverables. The goal of having a testing type is to validate the Application
Under Test (AUT) for the defined Test Objective.

List of 105 types of Software Testing Types along with definitions.

1. Acceptance Testing: Formal testing conducted to determine


whether or not a system satisfies its acceptance criteria and to enable
the customer to determine whether or not to accept the system. It is
usually performed by the customer.
2. Accessibility Testing: Type of testing which determines the usability
of a product to the people having disabilities (deaf, blind, mentally
disabled etc.). The evaluation process is conducted by persons having
disabilities.
3. Active Testing: Type of testing consisting in introducing test data and
analyzing the execution results. It is usually conducted by the testing
team.
4. Agile Testing: Software testing practice that follows the principles of
the agile manifesto, emphasizing testing from the perspective of
customers who will utilize the system. It is usually performed by the
QA teams.
5. Age Testing: Type of testing which evaluates a system's ability to
perform in the future. The evaluation process is conducted by testing
teams.
6. Ad-hoc Testing: Testing performed without planning and
documentation - the tester tries to 'break' the system by randomly
trying the system's functionality. It is performed by the testing team.
7. Alpha Testing: Type of testing a software product or system
conducted at the developer's site. Usually, it is performed by the end
users.
8. Assertion Testing: Type of testing consisting in verifying if the
conditions confirm the product requirements. It is performed by the
testing team.
9. API Testing: Testing technique similar to Unit Testing in that it
targets the code level. API Testing differs from Unit Testing in that it
is typically a QA task and not a developer task.
10. All-pairs Testing: Combinatorial testing method that tests all
possible discrete combinations of input parameters. It is performed
by the testing teams.
11. Automated Testing: Testing technique that uses Automation Testing
tools to control the environment set-up, test execution and results
reporting. It is performed by a computer and is used inside the testing
teams.
12. Basis Path Testing: A testing mechanism which derives a logical
complexity measure of a procedural design and use this as a guide for

45 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
defining a basic set of execution paths. It is used by testing teams
when defining test cases.
13. Backward Compatibility Testing: Testing method which verifies the
behavior of the developed software with older versions of the test
environment. It is performed by testing team.
14. Beta Testing: Final testing before releasing application for
commercial purpose. It is typically done by end-users or others.
15. Benchmark Testing: Testing technique that uses representative sets
of programs and data designed to evaluate the performance of
computer hardware and software in a given configuration. It is
performed by testing teams.
16. Big Bang Integration Testing: Testing technique which integrates
individual program modules only when everything is ready. It is
performed by the testing teams.
17. Binary Portability Testing: Technique that tests an executable
application for portability across system platforms and
environments, usually for conformation to an ABI specification. It is
performed by the testing teams.
18. Boundary Value Testing: Software testing technique in which tests
are designed to include representatives of boundary values. It is
performed by the QA testing teams.
19. Bottom-Up Integration Testing: In bottom-up Integration Testing,
module at the lowest level is developed first and other modules which
go towards the 'main' program are integrated and tested one at a time.
It is usually performed by the testing teams.
20. Branch Testing: Testing technique in which all branches in the
program source code are tested at least once. This is done by the
developer.
21. Breadth Testing: A test suite that exercises the full functionality of a
product but does not test features in detail. It is performed by testing
teams.
22. Black box Testing: A method of software testing that verifies the
functionality of an application without having specific knowledge of
the application's code/internal structure. Tests are based on
requirements and functionality. It is performed by QA teams.
23. Code-driven Testing: Testing technique that uses testing
frameworks (such as x Unit) that allow the execution of unit tests to
determine whether various sections of the code are acting as expected
under various circumstances. It is performed by the development
teams.
24. Compatibility Testing: Testing technique that validates how well a
software performs in a particular hardware/software/operating
system/network environment. It is performed by the testing teams.

46 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
25. Comparison Testing: Testing technique which compares the product
strengths and weaknesses with previous versions or other similar
products. Can be performed by tester, developers, product managers
or product owners.
26. Component Testing: Testing technique similar to unit testing but
with a higher level of integration - testing is done in the context of the
application instead of just directly testing a specific method. Can be
performed by testing or development teams.
27. Configuration Testing: Testing technique which determines
minimal and optimal configuration of hardware and software, and the
effect of adding or modifying resources such as memory, disk drives
and CPU. Usually, it is performed by the Performance Testing
engineers.
28. Condition Coverage Testing: Type of software testing where each
condition is executed by making it true and false, in each of the ways
at least once. It is typically made by the Automation Testing teams.
29. Compliance Testing: Type of testing which checks whether the
system was developed in accordance with standards, procedures and
guidelines. It is usually performed by external companies which offer
"Certified OGC Compliant" brand.
30. Concurrency Testing: Multi-user testing geared towards
determining the effects of accessing the same application code,
module or database records. It usually done by performance
engineers.
31. Conformance Testing: The process of testing that an
implementation conforms to the specification on which it is based. It
is usually performed by testing teams.
32. Context Driven Testing: An Agile Testing technique that advocates
continuous and creative evaluation of testing opportunities in light of
the potential information revealed and the value of that information
to the organization at a specific moment. It is usually performed by
Agile testing teams.
33. Conversion Testing: Testing of programs or procedures used to
convert data from existing systems for use in replacement systems. It
is usually performed by the QA teams.
34. Decision Coverage Testing: Type of software testing where each
condition/decision is executed by setting it on true/false. It is
typically made by the automation testing teams.
35. Destructive Testing: Type of testing in which the tests are carried
out to the specimen's failure, in order to understand a specimen's
structural performance or material behavior under different loads. It
is usually performed by QA teams.
36. Dependency Testing: Testing type which examines an application's
requirements for pre-existing software, initial states and

47 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
configuration in order to maintain proper functionality. It is usually
performed by testing teams.
37. Dynamic Testing: Term used in software engineering to describe the
testing of the dynamic behavior of code. It is typically performed by
testing teams.
38. Domain Testing: White box testing technique which contains
checking that the program accepts only valid input. It is usually done
by software development teams and occasionally by automation
testing teams.
39. Error-Handling Testing: Software testing type which determines
the ability of the system to properly process erroneous transactions.
It is usually performed by the testing teams.
40. End-to-end Testing: Similar to system testing, involves testing of a
complete application environment in a situation that mimics real-
world use, such as interacting with a database, using network
communications, or interacting with other hardware, applications, or
systems if appropriate. It is performed by QA teams.
41. Endurance Testing: Type of testing which checks for memory leaks
or other problems that may occur with prolonged execution. It is
usually performed by performance engineers.
42. Exploratory Testing: Black box testing technique performed without
planning and documentation. It is usually performed by manual
testers.
43. Equivalence Partitioning Testing: Software testing technique that
divides the input data of a software unit into partitions of data from
which test cases can be derived. it is usually performed by the QA
teams.
44. Fault injection Testing: Element of a comprehensive test strategy
that enables the tester to concentrate on the manner in which the
application under test is able to handle exceptions. It is performed by
QA teams.
45. Formal verification Testing: The act of proving or disproving the
correctness of intended algorithms underlying a system with respect
to a certain formal specification or property, using formal methods of
mathematics. It is usually performed by QA teams.
46. Functional Testing: Type of black box testing that bases its test cases
on the specifications of the software component under test. It is
performed by testing teams.
47. Fuzz Testing: Software testing technique that provides invalid,
unexpected, or random data to the inputs of a program - a special area
of mutation testing. Fuzz testing is performed by testing teams.
48. Gorilla Testing: Software testing technique which focuses on heavily
testing of one particular module. It is performed by quality assurance
teams, usually when running full testing.

48 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
49. Gray Box Testing: A combination of Black Box and White Box testing
methodologies: testing a piece of software against its specification but
using some knowledge of its internal workings. It can be performed
by either development or testing teams.
50. Glass box Testing: Similar to white box testing, based on knowledge
of the internal logic of an application's code. It is performed by
development teams.
51. GUI software Testing: The process of testing a product that uses a
graphical user interface, to ensure it meets its written specifications.
This is normally done by the testing teams.
52. Globalization Testing: Testing method that checks proper
functionality of the product with any of the culture/locale settings
using every type of international input possible. It is performed by the
testing team.
53. Hybrid Integration Testing: Testing technique which combines top-
down and bottom-up integration techniques in order leverage
benefits of these kind of testing. It is usually performed by the testing
teams.
54. Integration Testing: The phase in software testing in which
individual software modules are combined and tested as a group. It is
usually conducted by testing teams.
55. Interface Testing: Testing conducted to evaluate whether systems or
components pass data and control correctly to one another. It is
usually performed by both testing and development teams.
56. Install/uninstall Testing: Quality assurance work that focuses on
what customers will need to do to install and set up the new software
successfully. It may involve full, partial or upgrades install/uninstall
processes and is typically done by the software testing engineer in
conjunction with the configuration manager.
57. Internationalization Testing: The process which ensures that
product's functionality is not broken and all the messages are
properly externalized when used in different languages and locale. It
is usually performed by the testing teams.
58. Inter-Systems Testing: Testing technique that focuses on testing the
application to ensure that interconnection between application
functions correctly. It is usually done by the testing teams.
59. Keyword-driven Testing: Also known as table-driven testing or
action-word testing, is a software testing methodology for automated
testing that separates the test creation process into two distinct
stages: a Planning Stage and an Implementation Stage. It can be used
by either manual or automation testing teams.
60. Load Testing: Testing technique that puts demand on a system or
device and measures its response. It is usually conducted by the
performance engineers.

49 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
61. Localization Testing: Part of software testing process focused on
adapting a globalized application to a particular culture/locale. It is
normally done by the testing teams.
62. Loop Testing: A white box testing technique that exercises program
loops. It is performed by the development teams.
63. Manual Scripted Testing: Testing method in which the test cases are
designed and reviewed by the team before executing it. It is done by
Manual Testing teams.
64. Manual-Support Testing: Testing technique that involves testing of
all the functions performed by the people while preparing the data
and using these data from automated system. it is conducted by
testing teams.
65. Model-Based Testing: The application of Model based design for
designing and executing the necessary artifacts to perform software
testing. It is usually performed by testing teams.
66. Mutation Testing: Method of software testing which involves
modifying programs' source code or byte code in small ways in order
to test sections of the code that are seldom or never accessed during
normal tests execution. It is normally conducted by testers.
67. Modularity-driven Testing: Software testing technique which
requires the creation of small, independent scripts that represent
modules, sections, and functions of the application under test. It is
usually performed by the testing team.
68. Non-functional Testing: Testing technique which focuses on testing
of a software application for its non-functional requirements. Can be
conducted by the performance engineers or by manual testing teams.
69. Negative Testing: Also known as "test to fail" - testing method where
the tests' aim is showing that a component or system does not work.
It is performed by manual or automation testers.
70. Operational Testing: Testing technique conducted to evaluate a
system or component in its operational environment. Usually it is
performed by testing teams.
71. Orthogonal array Testing: Systematic, statistical way of testing
which can be applied in user interface testing, system testing,
Regression Testing, configuration testing and Performance Testing. It
is performed by the testing team.
72. Pair Testing: Software development technique in which two team
members work 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.

50 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
73. Passive Testing: Testing technique consisting in monitoring the
results of a running system without introducing any special test data.
It is performed by the testing team.
74. Parallel Testing: Testing technique which has the purpose to ensure
that a new application which has replaced its older version has been
installed and is running correctly. It is conducted by the testing team.
75. Path Testing: Typical white box testing which has the goal to satisfy
coverage criteria for each logical path through the program. It is
usually performed by the development team.
76. Penetration Testing: Testing method which evaluates the security of
a computer system or network by simulating an attack from a
malicious source. Usually, they are conducted by specialized
penetration testing companies.
77. Performance Testing: Functional testing conducted to evaluate the
compliance of a system or component with specified performance
requirements. It is usually conducted by the performance engineer.
78. Qualification Testing: Testing against the specifications of the
previous release, usually conducted by the developer for the
consumer, to demonstrate that the software meets its specified
requirements.
79. Ramp Testing: Type of testing consisting in raising an input signal
continuously until the system breaks down. It may be conducted by
the testing team or the performance engineer.
80. Regression Testing: Type of software testing that seeks to uncover
software errors after changes to the program (e.g., bug fixes or new
functionality) have been made, by retesting the program. It is
performed by the testing teams.
81. Recovery Testing: Testing technique which evaluates how well a
system recovers from crashes, hardware failures, or other
catastrophic problems. It is performed by the testing teams.
82. Requirements Testing: Testing technique which validates that the
requirements are correct, complete, unambiguous, and logically
consistent and allows designing a necessary and sufficient set of test
cases from those requirements. It is performed by QA teams.
83. Security Testing: A process to determine that an information system
protects data and maintains functionality as intended. It can be
performed by testing teams or by specialized security-testing
companies.
84. Sanity Testing: Testing technique which determines if a new
software version is performing well enough to accept it for a major
testing effort. It is performed by the testing teams.
85. Scenario Testing: Testing activity that uses scenarios based on a
hypothetical story to help a person think through a complex problem

51 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
or system for a testing environment. It is performed by the testing
teams.
86. Scalability Testing: Part of the battery of non-functional tests which
tests a software application for measuring its capability to scale up -
be it the user load supported, the number of transactions, the data
volume etc. It is conducted by the performance engineer.
87. Statement Testing: White box testing which satisfies the criterion
that each statement in a program is executed at least once during
program testing. It is usually performed by the development team.
88. Static Testing: A form of software testing where the software isn't
actually used it checks mainly for the sanity of the code, algorithm, or
document. It is used by the developer who wrote the code.
89. Stability Testing: Testing technique which attempts to determine if
an application will crash. It is usually conducted by the performance
engineer.
90. Smoke Testing: Testing technique which examines all the basic
components of a software system to ensure that they work properly.
Typically, smoke testing is conducted by the testing team,
immediately after a software build is made.
91. Storage Testing: Testing type that verifies the program under test
stores data files in the correct directories and that it reserves
sufficient space to prevent unexpected termination resulting from
lack of space. It is usually performed by the testing team.
92. Stress Testing: Testing technique which evaluates a system or
component at or beyond the limits of its specified requirements. It is
usually conducted by the performance engineer.
93. Structural Testing: White box testing technique which takes into
account the internal structure of a system or component and ensures
that each program statement performs its intended function. It is
usually performed by the software developers.
94. System Testing: The process of testing an integrated hardware and
software system to verify that the system meets its specified
requirements. It is conducted by the testing teams in both
development and target environment.
95. System integration Testing: Testing process that exercises a
software system's coexistence with others. It is usually performed by
the testing teams.
96. Top-Down Integration Testing: Testing technique that involves
starting at the top of a system hierarchy at the user interface and using
stubs to test from the top down until the entire system has been
implemented. It is conducted by the testing teams.
97. Thread Testing: A variation of top-down testing technique where the
progressive integration of components follows the implementation of

52 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
subsets of the requirements. It is usually performed by the testing
teams.
98. Upgrade Testing: Testing technique that verifies if assets created
with older versions can be used properly and that user's learning is
not challenged. It is performed by the testing teams.
99. Unit Testing: Software verification and validation method in which a
programmer tests if individual units of source code are fit for use. It
is usually conducted by the development team.
100. User Interface Testing: Type of testing which is performed to
check how user-friendly the application is. It is performed by testing
teams.
101. Usability Testing: Testing technique which verifies the ease with
which a user can learn to operate, prepare inputs for, and interpret
outputs of a system or component. It is usually performed by end
users.
102. Volume Testing: Testing which confirms that any values that may
become large over time (such as accumulated counts, logs, and data
files), can be accommodated by the program and will not cause the
program to stop working or degrade its operation in any manner. It is
usually conducted by the performance engineer.
103. Vulnerability Testing: Type of testing which regards application
security and has the purpose to prevent problems which may affect
the application integrity and stability. It can be performed by the
internal testing teams or outsourced to specialized companies.
104. White box Testing: Testing technique based on knowledge of the
internal logic of an application's code and includes tests like coverage
of code statements, branches, paths, conditions. It is performed by
software developers.
105. Workflow Testing: Scripted end-to-end testing technique which
duplicates specific workflows which are expected to be utilized by the
end-user. It is usually conducted by testing teams.

9. Software Testing as a Career Path

Skills required to become a Software Tester

Non-Technical Skills

 Analytical skills: A good software tester should have sharp


analytical skills. Analytical skills will help break up a complex
software system into smaller units to gain a better understanding
and create test cases.
 Communication skill: A good software tester must have good
verbal and written communication skill. Testing artifacts (like test

53 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
cases/plans, test strategies, bug reports, etc.) created by the
software tester should be easy to read and comprehend. Dealing
with developers (in the event of bugs or any other issue) will
require a shade of discreetness and diplomacy.
 Time Management & Organization Skills: Testing at times
could be a demanding job especially during the release of code. A
software tester must efficiently manage workload, have high
productivity, exhibit optimal time management, and organization
skills.
 GREAT Attitude: To be a good software tester you must have a
GREAT attitude. An attitude to 'test to break', detail orientation,
willingness to learn and suggest process improvements. In the
software industry, technologies evolve with an overwhelming
speed, and a good software tester should upgrade his/her
technical Software testing skills with the changing technologies.
Your attitude must reflect a certain degree of independence where
you take ownership of the task allocated and complete it without
much direct supervision.
 Passion: To Excel in any profession or job, one must have a
significant degree of the passion for it. A software tester must have
a passion for his / her field. BUT how do you determine whether
you have a passion for software testing if you have never tested
before? Simple TRY it out and if software testing does not excite
you switch to something else that holds your interest.

Technical Skills

 Basic knowledge of Database/ SQL: Software Systems have a


large amount of data in the background. This data is stored in
different types of databases like Oracle, MySQL, etc. in the
backend. So, there will be situations when this data needs to be
validated. In that case, simple/complex SQL queries can be used
to check whether proper data is stored in the backend databases.
 Basic knowledge of Linux commands: Most of the software
applications like Web-Services, Databases, Application Servers
are deployed on Linux machines. So, it is crucial for testers to have
knowledge about Linux commands.
 Knowledge and hands-on experience of a Test Management
Tool: Test Management is an important aspect of Software
testing. Without proper test management techniques, software
testing process will fail. Test management is nothing but
managing your testing related artifacts.
 Knowledge and hands-on experience of any Defect Tracking
tool: Defect Tracking and Defect life cycle are key aspects of

54 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
software testing. It is extremely critical to managing defects
properly and track them in a systematic manner. Defect tracking
becomes necessary because the entire team should know about
the defect including managers, developers, and testers. Several
tools are used to log defects including QC, Bugzilla, Jira, etc.
 Knowledge and hands-on experience of Automation tool: If
you see yourself as an "Automation tester" after a couple of years
working on manual testing, then you must master a tool and get
in-depth, hands-on knowledge of automation tools.

10. What Does a Software Tester do?

On any typical work day, you will be busy understanding requirement


documents, creating test cases, executing test cases, reporting and re-testing
bugs, attending review meetings and other team building activities.

11. Software Tester Career Path

Your Software Testing career growth as a software tester (QA Analyst) in


typical Capability Maturity Model Integration (CMMI) level 5 company will
look like following but will vary from company to company

1. QA Analyst (Fresher)
2. Sr. QA Analyst (2-3 years' experience)
3. QA Team Coordinator (5-6 years' experience)
4. Test Manager (8-11 years' experience)
5. Senior Test Manager (14+ experience)

12. Alternate Career Tracks as a Software Tester

Once you have got your hand dirty in manual testing, you can pursue
following specializations

 Automation Testing: As an Automation Test Engineer, you will be


responsible for automating manual test case execution which
otherwise could be time-consuming. Tools used IBM Rational Robot,
Silk performer, and QTP
 Performance Testing: As a performance test engineer, you will be
responsible for checking application responsiveness (time is taken to
load, maximum load application can handle), etc. Tools used
WEBLoad, Loadrunner.
 Business Analyst: A major advantages Testers have over Developers
is that they have an end-to-end business knowledge. An obvious
Testing career progression for testers is to become a Business

55 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
Analyst. As a Business Analyst, you will be responsible for analyzing
and assessing your company's business model and workflows. As a
BA, you will integrate these models and workflows with technology.

13. Distinction Between Ethics and Law

Ethics
 A branch of philosophy
 Deals with values relating to human conduct
 Concerned with “rightness” and “wrongness” of actions
 Self-legislated and self-enforced
 Sometimes difficult to determine because of competing, equally-valid
possible choices

Law
 Derived from ethical values in a society
 Formally / institutionally determined and enforced through courts
and law enforcement officials
 Easily determined because it is a matter of statute and the legality of
action and consequences for not adhering to the law is spelled out

Consideration meaning in law in the legal system, the term consideration in


contract law refers to something of value given to someone in return for
goods, services, or some other promise. A valid contract must include
consideration for every party involved. In simple terms, consideration is the
basic reason a party enters into a legal contract.

14. What is Consideration

Consideration is the benefit that each party receives, or expects to receive,


when entering into a contract. Consideration is often monetary, but it can be
a promise to perform a specific act, or a promise to refrain from doing
something. In order for a contract or agreement to be legally binding, every
party to the contract must receive some type of consideration. In other
words, a contract is a two-way street, so each party must receive something
of value from the other party or parties. Illegal or immoral acts are not legally
considered to serve as consideration.

15. Ethical Issues and the Web

Ethics are a set of standards governing the conduct of members of a


profession. Ethics establish basic values for responsible actions and practices
within a professional community. Although there may be no punishment for

56 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
violating ethical standards, some practices (such as spamming and sending
viruses) are being written or will be written into law.

The generally agreed-upon ethical standards for Web professionals have


developed from years of experience, and many have been inherited from
other professions. Examples of ethical behavior for Web professionals
include the following:

 Do not send unsolicited bulk e-mail, or spam.


 Do not buy domain names that you do not intend to use (a practice
also known as domain squatting or cyber-squatting).
 Do not knowingly spread malicious program code such as viruses or
worms.
 Do not pass along chain e-mail messages, especially those that imply
threats.
 Be honest with your customers, and do not overcharge for technical
services that they may not understand.

16. Code of Ethics

IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and


Professional Practices

Short Version

PREAMBLE

The short version of the code summarizes aspirations at a high level of the
abstraction; the clauses that are included in the full version give examples
and details of how these aspirations change the way we act as software
engineering professionals. Without the aspirations, the details can become
legalistic and tedious; without the details, the aspirations can become high
sounding but empty; together, the aspirations and the details form a cohesive
code.

Software engineers shall commit themselves to making the analysis,


specification, design, development, testing and maintenance of software a
beneficial and respected profession. In accordance with their commitment to
the health, safety and welfare of the public, software engineers shall adhere
to the following Eight Principles:

1. PUBLIC – Software engineers shall act consistently with the public


interest.

57 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
2. CLIENT AND EMPLOYER – Software engineers shall act in a manner
that is in the best interests of their client and employer consistent
with the public interest.

3. PRODUCT – Software engineers shall ensure that their products and


related modifications meet the highest professional standards
possible.

4. JUDGMENT – Software engineers shall maintain integrity and


independence in their professional judgment.

5. MANAGEMENT – Software engineering managers and leaders shall


subscribe to and promote an ethical approach to the management of
software development and maintenance.

6. PROFESSION – Software engineers shall advance the integrity and


reputation of the profession consistent with the public interest.

7. COLLEAGUES – Software engineers shall be fair to and supportive of


their colleagues.

8. SELF – Software engineers shall participate in lifelong learning


regarding the practice of their profession and shall promote an ethical
approach to the practice of the profession.

17. How to Handle Ethics Issues When You’re Starting Off in Software
Development

Progress brings complexity. Think about the introduction of cars – yes, faster
and more efficient travel time, but what about pollution and car accidents?
Because software development proceeds at such a rate, there are many
ethical issues, some more complicated than others, that arise over time. This
piece will mention a number of key ethical issues in software development
and then we’ll consider some strategies for dealing with these issues.

Ethical Issues in Software Development: What to Expect

InfoWorld mentions a number of important software ethical issues


including:

1. How to deal with Log Files

At its simplest, a log file is an automatically produced and time-


stamped documentation of various events. An access log, on a web

58 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
server for example, lists all the individual files a person has requested
from that website. These log files can also be used in workplace
surveillance. Deleting an email or a file is also not sufficient to erase
the trail. Now when it comes to ethics, who has access to those log
files? Think about how Facebook can get access to your private life via
these log files. How long should Facebook be allowed to keep these
files? These are just some of the ethical issues in software
development that programmers and companies come into contact
with on a daily basis.

2. Protecting Customers’ Data

We all know many website services are just there to collect your data.
Take Google for example, here’s the data it’s got on you, states The
Guardian: where you’ve been, everything you’ve ever searched (and
deleted), an advertisement profile of you, all the apps you’ve used and
with whom you use them, your YouTube history. Google actually has
an option where you can download all the information about yourself
– believe it or not, it would fill millions of Word documents!

What happens if the government or another legal entity requests data


on customers from the data you’ve collected? Where does your ethical
obligation lie? Have you communicated your policies clearly with
your customers, and how have you protected their data?

3. Your Software Makes Use of the Work of Others

Many apps serve up content without paying the creators. Do content


aggregators, for example, merely spread content or do they steal the
news? Often elaborate rationalizations are employed to defend this
rather shaky ethical decision – e.g., these apps are merely ‘sharing’
information. Do ethical software developers need to ask themselves
how their code will support everyone in the food chain? If you’re not
asking this question, you may be just ignoring potential piracy issues.

These are some specific ethical issues in software development, as


discussed above, but here are some other broader, but important,
ethical issues to consider, via CodingDojo:

 Who plans to use your software or system?


 What will it be used for?
 What are some of the worst-case scenarios if people bent on
foul play get their hand on the technology?

59 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
 What safety controls can you put into place to mitigate against
this?
 Could your software potentially hurt, control or profile others?
 If you were born a different gender or race, might you feel
differently about the system or app you have created?
 Will there be any global effects on the planet?
 Is your system susceptible to bias?

18. Legal Issues to Consider in Drafting Software Development Agreements

A software development agreement is between a customer and a developer,


by which the customer contracts for the developer to create and deliver a
specified piece of software. It is essential to give each of the parties what they
need and avoid disputes. If a legal dispute should arise, the agreement
illustrates what the parties’ terms to the agreement were. The following is a
gives a non-exhaustive overview of five important issues that this kind of
contract should address.

 Scope of Work: Scope of work encompasses the project’s objectives and


is the most important part of the agreement. It should address the time
frame, tasks, deliverables, quality of work, fees and payment schedule. It
also determines the specifications of a project including the coding
language used and the precise technical functions of the software.

 Representations and Warranties: The developer will make various


representations to the customer regarding the performance of the
product and the accuracy and completeness of the documentation.
Warranties are used to allocate risk between the parties to the customer
and the developer. Software performance warranties give a promise to
the customer that the software will work the way the developer
promised, and the developer will fix it for free if it does not. Since
software development agreements involve a lot of bargaining between
the parties, warranty provisions may vary.

The developer will commonly agree to provide additional support and


troubleshooting for the product for some period of time following the end
of the development period. The developer will also agree to maintain the
confidentiality of any trade secret information created during the
development period or received from the customer to assist the
developer with its work.

Because of the complexity of software, it is not uncommon for delivered


software to not conform perfectly to the specifications. The developer
will want more leniency in the consequences for delivering software that

60 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
fails to perfectly conform to expectations. The agreement should allow
the developer the opportunity to cure any mistakes or errors, within a
reasonable time. If a problem cannot be overcome during the cure period,
the customer will generally have the option to either extend the cure
period, terminate the agreement and demand a refund from the
developer of any development fees previously received from the
customer, or make the corrections itself and charge the developer for
costs associated with fixing the problem.

 Ownership of Intellectual Property Rights: Rights in software code


and other work product created under a software development
agreement are typically protected under copyright. Rights in software
may also be protected under patent law for software-implemented
processes and devices, and trade secrets for the software’s source code
and related confidential documents and materials.

Depending on the needs of the customer, the agreement can culminate in


either an outright assignment of the developed software from the
developer to the customer — including any copyright and patent rights
in the software — or simply a non-exclusive license to the customer, with
the developer retaining ownership. For example, it may be that the
customer has an idea for software to improve its own internal systems,
but the customer has no intent, or capability, to produce and
commercialize the software. If the customer does not care about whether
other businesses, in the customer’s industry or otherwise, can use the
software, it may make more sense for the customer to simply get a non-
exclusive license from the developer, leaving the developer free to
commercialize the developed software. Which party ends up owning the
software should affect the consideration given to the developer.

 Open-Source Software: The developer will, invariably, use open-source


software. Open-source software is computer software that has the source
code made available to the public with a license from the copyright
holder. It permits users to study, change, and distribute the software to
anyone and for any purpose. The client may seek a full list of all open-
source software used by the developer. It is important to seek warranties
from the developer that the developer has read, understood and
complied with the requirements for using that open-source software.
This should include that the developer has followed the open-source
software license requirements to include copyright notices and
permission notices.

 Non-Infringement Indemnities: With a large number of patents already


protecting the details of software, and strict liability for patent

61 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited
infringement, there is a real risk that the developed software could
infringe on an existing patent. There is also the risk of copyright
infringement. Still, the potential for infringement, especially patent
infringement, makes the indemnity clause particularly important in a
software development agreement. The customer should be confident it is
receiving a non-infringing piece of software, and the developer, rather
than the customer, should be liable for damages incurred by any
infringement claims by third parties. Generally, the developer will agree
to indemnify the customer for any claims that the software breaches
third-party intellectual property rights. The customer will however be
required to notify the developer of any such third-party claims promptly
and cede control of the defense and any settlement related negotiations.

Engaging Activities

Please login to Google Classroom to see the complete instructions for the
following engaging activities:

a. Define Software Testing


b. Define Program Testing
c. Enumerate the Eight Principles that Software Engineers Shall
Adhere

Performance Tasks
Please login to Google Class to see the complete instructions for the following performance tasks:

a. Distinguish between White Box and Black Box Testing


b. What are the Benefits of Software Testing?
c. Distinguish between Technical and Non-Technical Skills required to become a Software Tester
d. Distinguish between Ethics and Law

62 | P a g e
Republic of the Philippines
Laguna State Polytechnic University
Province of Laguna
ISO 9001:2015 Certified
Level I Institutionally Accredited

Understanding Directed Assessment


Please login to Google Class to see the complete instructions for the following performance
tasks:

UDA5  10 Software Testing Types


UDA6  Legal Issues to Cover for Software Development Agreement

Learning Resources
https://www.tutorialspoint.com/software_engineering/software_testing_overview.htm
https://www.atlassian.com/continuous-delivery/software-testing
https://www.guru99.com/software-testing-introduction-importance.html
https://usersnap.com/blog/software-testing-basics/
https://www.360logica.com/blog/difference-between-software-testing-and-software-development/
https://performancelabus.com/software-test-life-cycle-stlc-importance/
https://techbeacon.com/app-dev-testing/5-key-software-testing-steps-every-engineer-should-perform
Software Testing Methodologies For Robust Software Delivery (softwaretestinghelp.com)
https://www.softwaretestingmaterial.com/software-testing/
https://www.guru99.com/white-box-testing.html
https://www.guru99.com/black-box-testing.html
https://youtu.be/TDynSmrzpXw
https://www.guru99.com/types-of-software-testing.html
https://www.guru99.com/software-testing-career-complete-guide.html
https://legaldictionary.net/consideration/
https://psu.pb.unizin.org/comm370/chapter/chapter-8-ethical-and-legal-copnsiderations/
https://www.okaloosaschools.com/fwb/sites/okaloosaschools.com.fwb/files/users/anthonybryant/wds_v1.1
_ssg_l11.pdf
https://www.computer.org/education/code-of-ethics
https://www.sqa.org.uk/e-learning/ProfIssues03CD/page_04.htm
https://blog.hyperiondev.com/index.php/2018/07/17/how-to-handle-ethics-issues-when-youre-starting-off-
in-software-development/
https://entrepreneurship.law.umich.edu/legal-issues-to-consider-in-drafting-software-development-
agreements/
https://mikeyounglaw.com/software-development-agreement/

63 | P a g e

You might also like