You are on page 1of 28

Test and Integration

1
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.

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.
3
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 accident
due to this software failure.
• 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.
• And many more …
4
What are the benefits of Software Testing?
• Here are the benefits of using software testing:
• 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

5
Building test environments
• A testing environment is a setup of software and hardware on which the
testing team is going to perform the testing of the newly built software
product.
• This setup consists of the physical setup which includes hardware, and
logical setup that includes Server Operating system, client operating
system, database server, front end running environment, browser (if web
application), IIS (version on server side) or any other software
components required to run this software product.
• This testing setup is to be built on both the ends – i.e. the server and
client.

6
• Here let us try to understand five essentials to be adhered to while
building a test environment for software testing:
• 1. Customer’s Environments: 
• Understand clearly the environment in which the customer is going to run
this software.
• This has to be checked not only for server but also for the user’s machines.
• The environments factors could be the hardware, OS, Database, Front end
tools, browsers etc.
• Take care of all the versions of OS, browser the customer machines that
are going to run this application.

7
• 2. Test Server:
• Build your test environment as much as possible a replica of customer
environment. This is to be applicable to Server and client machines as
well.

• 3. Separate Test Server:


• Build the test environment on a separate server free from development and
dedicated exclusively for testing purposes.

8
• 4. Understand business requirements well:
• The testers and test lead should be very much clear about the customer
requirements based on which the test cases are to be built. More
understanding, more coverage. Much clearer understanding, wider
coverage.

5. Documentation: 
• Aesthetically document each and every test that the testers perform for a
unit, module or integration testing of the product.

9
What is Test Harness?
• Test harness enables the automation of tests. It refers to the system test
drivers and other supporting tools that requires to execute tests.
• It provides stubs and drivers which are small programs that interact with
the software under test.
• Test harness execute tests, by using a test library and generates a report.
• It requires that your test scripts are designed to handle different test
scenarios and test data.

10
Why use Test Harness?
• Automate the testing process
• Execute test suites of test cases
• Generate associated test reports
• Support for debugging
• To record the test results for each one of the tests
• Increase the productivity of the system thorough automation
• Enhance the quality of software components and application
• To handle the complex condition that testers are finding difficult to
simulate

11
• There are two context where Test Harness is used
• Automation testing: It contains the test scripts, parameters necessary to run
these scripts and gather results to analyze it
• Integration testing: It is used to put together two units of code or module that
interact with each other to check whether or not the combined behavior is as
expected or not

• Test Harness Tools


• Junit: Tool used while using Java
• Nunit: Tool used for using .Net framework

12
Black Box Testing
• BLACK BOX TESTING, also known as Behavioral Testing, is a 
software testing method in which the internal structure/design/implementation
of the item being tested is not known to the tester. These tests can be
functional or non-functional, though usually functional.

13
Black Box Testing
• This method is named so because the software program, in the eyes of the
tester, is like a black box; inside which one cannot see. 

• This method attempts to find errors in the following categories:


• Incorrect or missing functions
• Interface errors
• Errors in data structures or external database access
• Behavior or performance errors
• Initialization and termination errors

14
White Box Testing
• Also known as Clear Box Testing, Open Box Testing, Glass Box Testing,
Transparent Box Testing, Code-Based Testing or Structural Testing)
• Is a software testing method in which the internal
structure/design/implementation of the item being tested is known to the
tester.
• The tester chooses inputs to exercise paths through the code and determines
the appropriate outputs.

15
White Box Testing
• This method is named so because the software program, in the eyes of the
tester, is like a white/transparent box; inside which one clearly sees.

16
What is Incremental Testing?
• Incremental testing is a way of integration testing. In this type of testing
method, you first test each module of the software individually and then
continue testing by appending other module to it then another and so on.

• Incremental integration is the contrast of the big bang approach. The program
is constructed and tested in small segments, where errors are easier to isolate
and correct. Interfaces are more likely to be tested completely, and a
systematic test approach may be applied.

17
• There are two types of Incremental testing
• Top down approach
• In this type of approach, individual start by testing only the user interface, with the
underlying functionality simulated by stubs, then you move downwards integrating lower
and lower layers as shown in the image below.

• Bottom down approach


• Bottom-up integration begins construction and testing with modules at the lowest level in
the program structure. In this process, the modules are integrated from the bottom to the
top.
• In this approach processing required for the modules subordinate to a given level is
always available and the need for the stubs is eliminated.

18
19
Acceptance Testing
• Is a level of software testing where a system is tested for acceptability. The
purpose of this test is to evaluate the system’s compliance with the business
requirements and assess whether it is acceptable for delivery
• Formal testing with respect to user needs, requirements, and
business processes conducted to determine whether or not a system satisfies
the acceptance criteria and to enable the user, customers or other authorized
entity to determine whether or not to accept the system..

20
Changeover strategies
• System changeover is concerned with the smooth shift from one way of doing
things to another and the mitigation of disruption to business activities during
the changeover.

• There are three main methods used:


• phased implementation,
• direct changeover
• parallel running.

21
• Phased implementation: 
• A staged method whereby one part of the overall system that need changing is
changed. If any problems arise, they are limited in scope and therefore non-
critical.
• Once the system has been successfully changed in one area, the other areas
can follow suit, with any lessons learned during the initial changeover used to
ensure the success of the changeover as a whole.

22
• Parallel running: 
• Both the old and the new systems run side-by-side, using live data, so that
project managers can compare the efficiency and reliability of the new system.
• Once they’re satisfied, the old system is taken offline and the new system
becomes fully active and utilised across the organisation.

23
• Direct changeover: 
• there’s a single, fixed point where one system stops being used and
the new one becomes live.
• This is the cheapest, quickest and easiest form of system changeover
but is also the riskiest – if the system is broken or inefficient, the
whole organisation suffers.

24
Go-Live prerequisites
• The following 10 points should be part of your readiness assessment before
management gives its blessing to convert and go live:

• Modification process: All testing of modifications need to be done first


by IT and then by department management.

• Testing: Complete end-to-end testing and conference room pilot testing


from origination of orders, returns, receipts and shipping through to
systems processes.

25
• File conversion: Have the necessary files been successfully converted on a test basis and
visually spot checked to the files on the current system

• More testing: Do volume testing with website and call center phone orders to get a feel
for how the system will respond when processing actual transaction volumes.

• Check the interfaces: Have you tested all the interfaces with vendors, ASN(Advanced
Shipping Notification) and EDI(Electronic Data Interchange) services, marketing
services, credit processors, etc.?

• Training: Have all the employees in various departments been trained? Are new standard
operating procedures in place?

26
• IT readiness: Is IT ready to support the company with knowledge of the daily processes,
and is all equipment installed in IT and user departments?

• Who does what: Have agreement on the conversion process and everyone’s go live
responsibilities.

• OK from the top: Senior management and department management should sign off only
after they’ve reviewed their respective processes and testing results and agree that all
critical processes are ready.

27
• Allow critical feedback from the rank and file: Most importantly, create an open
communication environment where your employees are empowered and have the courage
to say, “No, we’re not ready.”

• For sure, there is intense pressure when you miss a go live date, as this
means incurring additional project costs and taxing limited resources.

• But the situation becomes much worse when the switch is flipped
before you’re ready, in the process risking the company’s profitability,
reputation and customer relationships.

28

You might also like