Software Testing

From SOBAC Wiki
Revision as of 19:17, 8 April 2019 by BobJonkman (talk | contribs) (Still more meeting notes)
Jump to navigation Jump to search

Software Testing

Date
Monday, 8 April 2019 Year from 7:00pm to 9:00pm
Meetup Event
https://www.meetup.com/NetSquared-Kitchener-Waterloo/events/260073069/
Location
Room 1300 -- Conrad Grebel University College, 140 Westmount Rd. N., Waterloo, Ontario Map

If you work in software development, how much of your job involves testing? If you're a project manager, do you work closely with the testers to keep an eye on their results and bug reports as a project progresses? If you are a developer, do you do your own unit testing and work with testers on test plan reviews and fix the bugs they find when they do integration and regression testing? If you are a software tester, how do you balance the need to be thorough with the need to deliver on time? How does that affect writing test plans? When a project team has to deal with a lot of changes in the middle of development and testing, how do you cope with updating test plans with limited time? Since you should be considerate when reporting bugs in software, especially when people have worked hard on it, how can you do this tactfully? How do testers work with people like technical writers who use test plans as a reference when writing documentation like user manuals?

Nicholas Collins, a long-time member of KWNSPA and a professional software tester will give us an overview of the deep art of testing software.


--Bob Jonkman & Marc Paré


Resources

TechSoup Canada catalogue: Developer Software


Meeting Notes

  • Introductions


  • Nicholas Collins
    • Software tester for a few years, knowledge of how his company works
    • But two years isn't a long time compared to some software testers
    • Nick has prepared notes, will be presenting slightly differently from other KWNPSA sessions
    • SysAdmin in insurance industry; laid off (as are many of us); back to school to upgrade IT skills
    • Uses Visual Studio, C#, other languages
    • People he's met were developers, or business-specific skills; when software testers are needed these people are thrust into the role
    • This might change as more universities offer software testing as a major
    • There are very few courses or certificates in software testing, more prevalent in the US
      • but Fanshawe college in London has a certificate program
    • Some institutions have a couple of courses in tech writing, project management, quality management; maybe a night course in software quality testing
    • Without academic rigour, different people use different terminology, nomenclature
      • "Should I know what all these different terms mean?" But it's fairly common with other software testers Nick has spoken to
    • At Microsoft, developers use their development skills to write tests. Needs more skills than just coding
      • Microsoft has internal courses to train testers how to test software
      • Get promoted to full developer once you've proven you can write tests
    • people use Terminology like "Post-mortem" (although nobody dies), mix up "Milestone" and "Benchmark", &c.
    • Software testing is the start for a developer's career, then to DevOps
      • Does this mean the most junior, inexperienced programmers are responsible for testing software?
    • Nick: large companies use junior testers to run tests, senior testers to supervise
    • During an upgrade Nick (a programmer at the time) did testing for the Database Analyst
      • But a junior intern was assigned to that role as well, just to gain experience.
      • Worked out details at a high level, then applied tests to get results


  • Project Managers take different approaches


  • You can always think of more tests
    • It's a fine balance between staying on schedule and being thorough
    • Walkthroughs and working in a team can be helpful


  • Some testing instructors do not like teaching from texts
    • eg. "Software Testing" by Yogesh Singh
    • But Nicholas gets good ideas from texts, doesn't agree with those testing instructors
    • THe problem is that the authors suffer from "Perfect Worldism"
      • A world where there is unlimited time and money, and the perfect tests can be developed
    • Nicholas has experience with sticky problems, gets ideas from texts to adapt to his problem


  • Party talk: Software tester does not lead to stimulating conversation
    • YouTube presenter on software testing is not dull! (**********Need link!***********)


  • Even the simplest test "is A < 70 ?" can have seven or eight tests
    • Test results, but also overflows, boundaries, different data types
    • Input validation can require many tests


  • Working with other people, eg. technical writers
    • For them to understand the software they'll play with the software, and may create unanticipated conditions
    • Everyone can be a software tester to some degree: Project manager, developer, writer. Even sales?
    • Sometimes testers find problems with usability as they're running tests; not part of the test suite


  • How effective are some of these ad-hoc testers?
    • Is there a bias? Do they have some incentive to pass tests even when there are problems?
      • Sometimes a QA will hold back tests that would have been better to give to the developer in the first place
    • Accessibility testing is a new skill for QA, may become a testing requirement
    • Business Analyst (BA), developer and tester make a good team
      • Sometimes the process of testing will identify the need for more testing


  • Reporting bugs
    • Requires consideration, tact


  • Test plans may need to be developed quickly
    • But near the end of a project when time is tight there may not be time to develop tests
    • So quality of code may suffer near the end of the project
      • Breaking things during testing that no-one has time to fix


  • Automated testing?
    • Nick has experience with automated regression testing
    • Automated regression testing reduces the introduction of new bugs


  • Open Broadcaster Software
    • Used to catch all activity during user testing
    • Also use Virtual Box recorder uses host to capture all the output on the VM screen


  • "Monkey Testing"
    • Also "fuzz testing" or "fuzzing"
    • Fill all fields, try to overflow, pound on the keyboard, click as fast as possible
      • But this this does not lead to reproducible errors (fine timing errors)
      • Although some testers claim they can reproduce


  • Pride in finding bugs?
    • Nick finds that the "high five" time should occur only after the entire team has identified, reported, documented, and fixed the error, and re-tested


  • Load testing
    • Hitting a system with a large number of transactions, &c.
    • But a bogged down system may not be writing to logs, making analysis difficult


  • Nick has written a test for XML testing
    • But the code Nick wrote was not well tested at all! Oh, the irony!