Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

L8 – Software Testing

Monday, May 08, 2023 1:14 PM

• Verification and Evaluation will be discussed here

• The 4 critical steps of SE


○ Specification
○ Design
○ Evaluation
▪ Software Testing is a subset of Evaluation
• Inspection
• Review
○ Evolution

• Testing is a dynamic process


• For testing must have a fully working product and can only done when
built

• Testing can be done at different levels


○ Like compiling
○ Or by breaking system to parts
○ Or the overview
○ Or the integrated process of the overall life cycle

• Testing is done by checking whether it meets the requirements


• Validation checks if the user gets the product they requested and
whether the developer built the correct device
○ Checks if the customer accepts the product provides the
requirements it needs
• Verification checks internally are the developers followed the process
correctly
○ Like the correct steps in conducting the process
○ Checks if following the standards and quality

• Defects are the easiest things to identify


○ When fixing these defects the overall quality improves

• There can be inputs that causes errors in the system with invalid
outputs
• In testing, we give an input to the system and check if the system gives
an output.
○ Through the outputs we can detect the presence of defects
○ A bad programming sample will have the system closing down or
shutting down when receiving faulty inputs

• Inspections are static processes


○ Checks the documents and so
• We can interpret it and check if there are going to be errors rather than
running it like testing

• Reports will indicate the results of the testing


○ And will indicate why these errors in output caused
• We can make sure using if-else and check if the program has received
valid input for the program

• A unit is like use case of some inputs (a subset of all possible inputs)
• Unit testing is the start of the testing process
○ We check for each small components and a subset of inputs
possible
• Here we check for the functionality

• Even though the individual objects are tested correctly, we have to test
for all components together
• Here we test the interfaces between the multiple components
○ We test the emerging properties between the multiple objects
together
○ Also known as the non-functional requirements
○ We call them emerging since they only appear when combining
different objects and not for the individual object testing

• Testing Strategy is the different ways of entering input with common


features and process them in the same way

• Partition testing is a simple but intelligent way of handling the large


input spaces
○ We can reduce the inputs that have to use for the testing

• Most of the errors come at the boundaries due to loop checking and
indexing issues
• In equivalent classes the input space can be reduced
• We start with the smallest subset of components to integrate and
check
○ And then we add more to integrate and test
○ If we start with the largest one and then go to smallest one then it
will be redundant
• We don't go to the individual component level of testing and now we
check for the whole system
• The testing process is finished with user acceptance test

• The use cases are what relates to the functional requirements


• And what we check for the device's functionality
• Testing Policy gives the rule for limiting factor for stopping the testing
and checking if it is enough

• Developing the test cases we can generate using the customer input at
the start of the development
○ Something about giving the test cases we wish to see happening at
the start and then we develop to be able to answer it eventually in
the end

• The regression testing checks the changes we did and what


dependencies affected
○ And then we can reduce the number of test cases we need to do
without doing all of them
○ Like only the test cases necessary and not those redudant

• Made in the mid of releasing the product and then testing through it
• But some cases of tests may not be identified

• Performance testing is a form of overall system testing


• Universally some requirements are high priority and generally always
required – essential
○ Such as security, performance, usability etc.
There are different types of user testing

• Alpha testing is done together with developers and users to figure out
the testing
• Beta testing is done by the users alone without help of the developers

• It can be a rigorous process going through all the pages

• Once the version is signed off, then further changes that are needed to
make can be considered as "change requests"
• There are tool frameworks that can done for the testing

You might also like