Software Engineering
(Common for CSE, CSE with Specialization in Data Science, CSE
with specialization in Cloud Technology & Information Security)
BCSE-504 (Software Engineering & Testing Tools)
![]() |
Software Engineering and Testing Tool Lab | IndianTechnoEra |
Course Objectives:
- To impart necessary and practical knowledge of software engineering and testing and develop skills required as a software tester to test real-life projects.
- To provide an idea of using various process models in the software industry.
- Be successful professionals in the field with solid fundamental knowledge of software engineering and testing
- To study fundamental concepts in software testing, including software testing objectives, process, criteria, strategies, and methods.
- To discuss various software testing issues and solutions in software unit test; integration, regression, and system testing.
- To learn how to plan a test project, design test cases and data, conduct testing operations, manage software problems and defects, generate a testing report.
- To understand software test automation problems and solutions.
- To learn how to write software testing documents, and communicate with engineers in various forms.
- To gain the techniques and skills on how to use modern software testing tools to support software testing projects.
Unit-1: Introduction & Planning a Software project
- Introduction to software and software engineering, Software characteristics, Software engineering paradigms (SDLC Models Waterfall model, Incremental Model, Spiral, Prototype, Big Bang, V model, Agile Model-DevOps), Comparison of all SDLC models, Software failure & crisis.
- Planning a Software project: Software cost estimation, Project scheduling, Personal planning, Team structure, Software configuration management, quality assurance, project monitoring, risk management.
Unit-2: Requirement Analysis, Design & UML
- Software Requirement Analysis: Structured Analysis, Object-Oriented Analysis, Software requirement specification, Validation.
- Design and Implementation of Software: Software design fundamentals, design methodology (structured design and object-oriented design), Design verification.
- Introduction to UML: USE Case Diagrams, Object Diagrams, Class Diagrams.
Unit-3: Software testing and its strategies
- Software Testing - Importance & As a Career: Testing Fundamentals, Software Testing Life Cycle (STLC), Aligning testing with the project, Cyclomatic complexity. Software testing types: Static testing (Reviews, Inspection, Walkthroughs), Dynamic Testing, White box testing, Black box testing, Risk based testing.
- Software Testing Strategies: Unit testing, Integration testing, Validation testing, System testing, Performance testing, Regression testing, Stress testing, Smoke testing, Mutation testing, Regular expression based testing, Debugging.
Unit-4: Test phases and quality management
- Test Phases, Test Scenarios, Requirement Traceability Matrix (RTM), ETVX Model (Entry, Task, Verification and Exit model). Test cases: Introduction, creating test cases using white box, black box techniques. Flow graphs & Transaction flow. Test Plan and estimation Techniques: Introduction to Test Plan, Test Environment and Schedule, Staffing and test deliverables, Software test estimation Techniques. Test oracle, Concurrency & Transaction Analysis.
- Quality management, CMMi, TMMi Model and comparison. Test Automation: Need for Automation, Categorization of testing tools, Selection of testing tools. Testing Tools: Introduction to various testing tools: Junit, Jira, Mantis, Bugzilla, Test complete, and Generation of test cases and simulation of test cases.
Course Outcome:
After the completion of this course, the students will be able to:
- Gather and specify requirements of the software projects.
- Design software requirements with existing tools.
- Identify complex engineering problems by applying principles of software engineering and testing.
- Create various documents, and deliverables related to software testing.
- Differentiate between different types of testing.
- Acquire and apply new knowledge as needed, using appropriate learning strategies.
- Work as an individual and as part of a multidisciplinary team to develop and deliver quality software.
Text Books:
- Software Engineering by Pressman S. Roger, Tata McGraw-Hill.
- Software Engineering by K.K Aggarwal, New Age.
- An integrated approach to software engineering by Jalote Pankaj, Narosa Publishing House.
- Software Testing: Principles and Practices by Srinivasan Desikan.
- Software Automation Testing Tools for Beginners by Rahul Shende.
- Foundations of Software Testing ISTQB Certification by Rex Black, Erik van Veenendaal, Dorothy Graham.
Reference Books:
- Software, Software Engineering Concepts by Fairley Richard, Tata McGraw-Hill.
- Software Engineering by Somerville lan, 5th ed., Addison Wesley-2000.
- The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons! (ACM Books) by Ivar Jacobson, Harold "Bud" Lawson, Pan-Wei Ng.
- Automated Software Testing: Foundations, Applications and Challenges (Services and Business Process Reengineering) by by Ajay Kumar Jena, Himansu Das, Durga Prasad Mohapatra.
- Software Quality and Testing: A Concise Study by Kelkar S.A.
- Foundations of Software Testing by Dorothy Graham, Isabel Evans.
Software Engineering Notes
Software Engineering & Testing Tools Lab
B. Tech. (3rd Sem)
(Common for CSE, CSE with Specialization in Data Science, CSE with
specialization in Cloud Technology & Information Security)
BCSE-504L (Software Engineering & Testing Tools Lab)
Course Objectives:
- Identify complex engineering problems by applying principles of software engineering, and testing.
- To gain software testing experience by applying software testing knowledge and methods to practice-oriented software testing projects.
- To provide an idea of using various testing techniques in the software industry.
- To analyze the processes and products to be tested and use engineering judgment to draw conclusions.
List of Practical
- Create Software Requirement Specification (SRS) of Bank Application Management.
- Create Use Case, Class and object diagram of Bank Application Management.
- Implement Activity, Sequence Diagram for Bank Application System.
- Create RTM (Requirement Traceability Matrix) for the given scenario.
- Create ETVX model for the given scenario.
- Create test cases for ATM transactions using any White Box technique.
- Create test cases for ATM transactions using any Black Box technique.
- Tool Installation: 1) JIRA 2) MANTIS 3) Bugzilla
- Task : Analysis Report : As you have gone through all the three tools you need to now compare and contrast the similarities and the differences between these tools and find which tool will be relevant for which kind of projects .You need to create the analysis report based on your research and tool knowledge you have gained.
- Unit Testing Tools - Junit : Create a program of sum of numbers. Create test cases for the same using junit. Get the result with the help of test runner.
- Defect Management Tools – Mantis /Bugzilla /Zira : Do the following using MantisBT / Bugzilla
- Create a Project named Prj<Toolname><YourName>
- Create four users - Administrator, Tester 1, Tester 2 & Developer1 and add to the project created.
- Create a custom field and link it to the project created.
- Create 4 bugs (of different severity & priority) using the tool in the project created.
- Assign these bugs to the administrator and/or developer.
- TESTING PROJECT : ATM Simulator Project
Project Instructions:
Download "ATM Simulation Project.zip" and load on your Eclipse.
- 1. You will work as a Testing team in an organization.
- 2. Pick a name for your Team
- 3. Each one of you in the team would be playing one of the 3 roles in a Testing Project - Test Manager, Test Analyst and Tester.
- 4. Find a set of Test Plan Templates. Use them to create your deliverables.
- 5. You will also be required to give a presentation at the end of your project as a team.
Overview:
The Project has a four-phase exercise work that consists of the followingassignments:
- 1. Phase 1: Test case design (individual assignment)
- 2. Phase 2: Test execution and reporting (individual assignment)
- 3. Phase 3: Test planning (group assignment)
- 4. Phase 4: Presentation (group assignment)
Exercise phases:
Exercise phases are briefly described below:
- Phase 1: Test case design (individual assignment): In the first and second phase you will do system level functional testing for the ATM Simulator Project. In the first phase the test cases are designed using several test design techniques that you have learned. You will create 10 Test cases and log them in the Testcase template. You have to create and run any 5 test cases using JUnit.
- Phase 2: Test execution and Reporting (individual assignment): In the second phase the tests are executed and test results reported. Use the template for Defect Log and Test Summary Report to submit these.
- Phase 3: Test planning (group assignment): In this phase, the system testing of the ATM Simulator project is planned in groups. At this point you should have adequate skills and knowledge of testing techniques and tools as well as experience of using the software under test in order to do the planning work. In this phase you will use this knowledge to write a Test plan document. In this phase, we have a fictional case description that outlines the context where the testing project is conducted and gives background information to assist you in test planning. You will also create RACI matrix and Requirements Traceability Matrix in this phase.
- Phase 4: Presentation (group assignment): In phase 4, student groups perform a formal presentation of a selected document and how the group went about performing the exercise. In the presentation session, only 15 minutes is reserved per team.
Tools Required:
In Exercise Phases 1-2, the program to be tested is the ATM Simulator. ATM Simulator is an applet written in Java. JUnit should be used for creating any 5 test cases in exercise phase 1.MantisBT should be used for reporting defects in exercise phase 2. Test plans and reports should be written using standard word processing and spreadsheet software (e.g. Word and Excel). Accepted document delivery formats are Word (doc), pdf, and Excel formats.
Automation Testing:
Install Test Automation Tool - TestCompletePick a Desktop application (of your choice) and perform the following Automation tutorial.
TEST AUTOMATION PROJECT : Web Automation Test Project
Test Scenario
For this project, you need to use TestComplete automation tool to test the dummy web app accessible at https://www.phptravels.net. This website is a travel portal that allows customers to book hotels, flights, tours etc.
Note: The demo usernames and passwords are below:
- Url
- Demo Username
- Demo Password
- Homepage Front-End
- https://www.phptravels.net
- user@phptravels.com
- demouser
- Administrator Back-End
- https://www.phptravels.net/admin
- admin@phptravels.com
- demoadmin
- Supplier back-End
- https://www.phptravels.net/supplier
- supplier@phptravels.com
- demosupplier
In this project, you have to create test cases to test the following flows:
1. Scenario 1
• Login as a Customer
• Book a hotel
• Confirm booking
2. Scenario 2
• Login as an
Administrator
• Go
to “Manage Offers”
•
Add an Offer
•
Logout as Administrator
3. Scenario 3
• Login as an Supplier
• Choose a workflow of your
choice and create a test
4. Scenario 4
• Pick any one scenario from above and create Cross-Browser Tests for that scenario
Course Outcomes:
- After the completion of this course, the students will be able to:
- Formulate, solve and test complex engineering problems by applying principles of software engineering, and testing.
- Conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions.
- Demonstrate an ability to use the tools necessary for engineering practice.
- Apply different types of testing for real-life engineering-based projects.
Download software engineering practical lab