Software Quality and Test:
Concepts, Tools and Job Market
Mehdi Shokoohi
What is Software quality?
● Software quality refers to the overall characteristics of
software that meet the needs of its users.
● It encompasses various attributes like functionality,
reliability, usability, efficiency, and maintainability.
● It’s all about requirements.
● A software requirements specification (SRS) is a
document that describes what the software will do and
how it will be expected to perform.
Business requirement vs Technical requirement
● Business requirements define what the organization wants or needs to
be able to do once the project is completed.
● Technical requirements, define solutions for how Business
requirements will be satisfied.
● Example for Netflix:
○ BR: New users can use our service for free for 30 days
○ TR:
■ User Registration and activation
■ Adding accepted Credit card
■ Access to service from day 0 to 29
■ User can cancel, no charge of CC
■ If not canceled CC will be charged on day 30 with default plan
cost
What is Software Testing?
● Software testing is the process of evaluating a software
product to identify bugs, defects, and any deviations from its
intended functionality.
● It involves creating test cases, executing them, and analyzing
the results to ensure the software meets specific
requirements.
● Testing plays a crucial role in delivering high-quality
software.
Types of Software
● Applications (majority of the market):
○ Desktop applicants
○ Web Applications
○ Mobile Applications
○ APIs (Application Programming Interface)
● System Software (less popular but gem!):
○ OS
○ Device drivers
○ Firmware
○ low level services, etc
● Games:
○ Console
○ Mobile
○ Web
○ Steam
○ Windows
Types of Software Testing
● Unit testing: Tests individual units of code (functions,
modules)
● Integration testing: Tests how different units interact
together
● System testing: Tests the entire software system as a whole
● Manual, Automated and Semi-Automated Testing
Automation Test Tools for Web Applications
● Codeless/Semi: Katalon Studio, Applitools,
Ranorex Studio, Robot Framework, etc
● Needs coding: Selenium, Playwright, Cypress,
WebdriverIO, Puppeteer, TestComplete, Testim
Technical skills
● Testing Fundamentals:
A strong understanding of software testing concepts, methodologies (like black-box
testing, white-box testing), and the Software Development Life Cycle (SDLC) is
essential.
● Test Case Design and TCMS: The ability to create comprehensive and
well-designed test cases that effectively cover different functionalities and potential
scenarios is crucial.
● Defect Management: Proficiency in using bug tracking tools to document, report,
track, and manage software defects is important.
● Automation Testing Skills: While not always mandatory, knowledge of automation
testing tools and scripting languages (like Selenium, Python) is increasingly
valuable.
● API Testing: Understanding of API (Application Programming Interface) testing
principles and tools is becoming a plus as many applications rely on APIs.
Non-Technical skills
● Analytical and Problem-Solving Skills:
The ability to analyze test results, identify root causes of defects, and think critically
to solve problems is essential.
● Communication Skills: Effective communication is key for collaborating with
developers, product managers, and other stakeholders. Testers need to clearly
document issues, explain technical concepts to non-technical audiences, and
advocate for quality.
● Attention to Detail: A keen eye for detail is crucial for spotting potential bugs and
inconsistencies in software.
● Teamwork: Testers often collaborate with developers, designers, and other team
members. The ability to work effectively within a team is important.
● Learning Agility: The software development landscape is constantly evolving.
Testers need to be adaptable and willing to learn new technologies and testing
methodologies.
More and nice to have:
● Understanding of Agile Methodologies
● Database Knowledge (SQL, NoSql)
● Working with Linux and command line
● Working with containerized technology (Docker)
● Working with CI/CD pipelines
● Working with Git
● Working with Test case management systems (qTest, xray, TestRail, etc)
● Experience with specific domains: knowledge in a specific domain (e.g.,
healthcare, finance, music, etc)
More to read
● https://www.guru99.com/software-testing.html
● https://www.softwaretestinghelp.com
● https://asq.org/quality-resources/software-quality
● https://www.w3schools.com/
● https://www.youtube.com/channel/UCpG5A4PZHTmdHnq23dmSEVg
● https://shokoohi.ca
Business Intelligence Developers Association Registered
لینک اینستاگرام:
https://www.instagram.com/p/C6Jss-4BacP/
لینک توییتر:
https://twitter.com/bidar_ca/status/1783178843383099529
2024/04/22

اپیزود ۱۲۳ رادیو بیدار : جلسه گفتگوی گروهی با موضوع: از افسانه تا هوشواره.
اپیزود۱۲۲ رادیو بیدار – جلسه گفتگوی گروهی با موضوع از دنیای تکنولوژی و هوشواره چه خبر؟
اپیزود شماره 121 رادیو بیدار – از اپلای تا قبولی در گرنت دولتی SBEC با مهرنوش چوبندیان
اپیزود شماره ۱۲۰ رادیو بیدار با موضوع Building AI Agents that ship همراه با رضا احمدی
اپیزود شماره ۱۱۹ رادیو بیدار – استقرا-استدلال و دیوانگی ناشی از هوش مصنوعی با رضا مصطفوی
اپیزود ۱۱۸ رادیو بیدار – نشست ایده پروری پروژه آموزش پایتون با محمود هوش سادات